상속

    [C# 12와 .NET 8] 6. Interface와 Class상속

    [C# 12와 .NET 8] 6. Interface와 Class상속

    이번 글을 통해서는 OOP(Object-Oriented Programming)을 사용한 하나의 개체에서 다른 새로운 type을 상속하는 기본 개념에 대해 알아볼 것입니다. 또한 generic을 사용하여 어떻게 code를 안전하게 만들고 성능을 높일 수 있는지, delegate와 event를 통해 type 간 message를 어떻게 교환할 수 있는지를 알아보고 참조와 값 type에 대한 차이점도 확인해 볼 것입니다. 공통기능에 대한 interface를 구현하고 기능을 재사용하기 위해 기반 class로부터 상속받는 파생 class를 만들 것이며 상속된 type member를 재정의하고 다형성(polymorphism)도 사용해 볼 것입니다. 또한 확장 method의 생성과 계층적으로 상속된 class간 변환에..

    [C# 11 과 .NET 7] 6. Interface와 Class상속

    [C# 11 과 .NET 7] 6. Interface와 Class상속

    OOP(Object-Oriented Programming)을 사용한 하나의 개체는 다른 새로운 type을 상속하는 기본 개념과 generic을 사용하여 어떻게 code를 안전하게 만들고 성능을 높일 수 있는지, delegate와 event를 통해 type 간 message를 어떻게 교환할 수 있는지를 알아보고 참조와 값 type에 대한 차이점도 확인해 볼 것입니다. 공통기능에 대한 interface를 구현하고 기능을 재사용하기 위해 기반 class로부터 상속받는 파생 class를 만들 것이며 상속된 type member를 재정의하고 다형성(polymorphism)을 사용해 볼 것입니다. 또한 확장 method의 생성과 계층적으로 상속된 class 간 변환에 대한 것들, 그리고 static code ana..

    [C#] 인터페이스(Interface)와 상속(Inheriting) - 6. 상속(Inheriting)

    [C#] 인터페이스(Interface)와 상속(Inheriting) - 6. 상속(Inheriting)

    7. 상속(Inheriting) 상속은 기존의 Type에서 새로운 Type을 생성하는 것을 말합니다. namespace mylibrary; public class Car { public int Speed { get; set; } public int Drive(int accelerate) { Speed += accelerate; return Speed; } public void Stop() { Speed = 0; } } Sedan에서 Car클래스를 상속받는 처리는 다음과 같이 구현할 수 있습니다. public class Sedan : Car //상속 { } 실제 Sedan은 아무런 Member도 포함하고 있지 않지만 Car의 Member를 그대로 상속 받음으로써 다음과 같이 Sedan을 활용할 수 있습니다..

    [C#] 인터페이스와 추상클래스

    [C#] 인터페이스와 추상클래스

    1. 인터페이스 (Interface) 인터페이스는 클래스를 만들 때 특정 메서드를 반드시 구현하도록 강제하는 역할을 합니다. 바꿔 말하면 어떤 인터페이스를 상속받아 만들어진 클래스는 인터페이스에 명시된 메서드가 반드시 구현되어 있다는 것을 보증할 수 있습니다. 인터페이스는 interface키워드를 사용해 아래와 같은 방법으로 구현합니다. interface ICar { void Drive(); } ICar는 인터페이스의 식별자(이름)인데 반드시 그렇게 해야 하는것은 아니지만 관례상 인터페이스의 이름은 대문자 I로 시작합니다. 인터페이스 내부를 보면 Drive()라는 메서드의 이름만을 가지고 있습니다. 이것이 인터페이스의 특징으로 실제 구현되는 내용은 포함하지 않고 특정 메서드나, 이벤트, 인덱서, 프로퍼티..

    [C#] 클래스(Class)

    [C#] 클래스(Class)

    C#은 객체지향 프로그래밍(Object Oriented Programming) 언어이고 객체지향 프로그래밍은 프로그램의 처리 대상이 되는 모든 것을 객체(Object)로서 표현합니다. 예컨대 '자동차'라는 대상을 객체로 표현한다면 '달리다.', '멈추다.'등과 같은 대상의 동작을 메서드(Method)로, '색상', '속도', '배기량'같은 대상의 특징을 속성(Property)으로 추출해 표현하면 그것이 객체가 됩니다. 클래스(Class)라는 건 이 객체를 생성하기 위한 틀을 말하는 것인데 객체를 표현하기 위해 어떤 속성과 메서드가 필요한지를 판단하고 그것을 '클래스'로 정의합니다. 객체를 만들어 내기 위한 설계도 같은 것으로 클래스로부터 객체(객체를 인스턴스(Instance)라고도 합니다.)를 생성하고 ..

    [Kotlin] 클래스(Class)

    [Kotlin] 클래스(Class)

    특정 처리를 위해 관련된 변수, 함수 등을 한꺼번에 모아놓은 프로그램의 단위를 클래스(Class)라고 합니다. Aandroid Studio에서 처음 프로젝트를 생성하고 나면 다음과 같은 코드를 볼 수 있는데 이것은 Android Studio가 onCreate라는 함수를 포함하고 있는 MainActivity라는 클래스를 자동 생성한 것입니다. class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } } 이제까지 어떠한 출력을 위해 자주 사용했던 Lod.d() ..