정적 메서드와 정적 속성 접근
Dart/OOP2024. 9. 7. 21:08정적 메서드와 정적 속성 접근

static 글 참고: https://codejunh-develop.tistory.com/73 Dart 프로그래밍 언어에서 정적 메서드와 정적 속성은 객체 지향 프로그래밍의 중요한 개념이다.이들은 클래스 레벨에서 정의되며, 클래스의 인스턴스를 생성하지 않고도 직접 접근할 수 있다.  정적 메서드 (Static Methods)정적 메서드는 클래스의 인스턴스가 아닌 클래스 자체에 속한 메서드이다. 이들은 static 키워드를 사용하여 선언된다. 특징:클래스의 인스턴스를 생성하지 않고 호출할 수 있다.클래스 이름을 통해 직접 접근한다.인스턴스 변수에 접근할 수 없다.  예제:이 예제에서 add 메서드는 정적 메서드이므로 MathOperations 클래스의 인스턴스를 생성하지 않고도 직접 호출할 수 있다.  정..

Dart 메서드의 매개변수 타입으로 클래스 사용하기
Dart/OOP2024. 8. 31. 19:12Dart 메서드의 매개변수 타입으로 클래스 사용하기

Dart에서는 메서드의 매개변수 타입으로 클래스를 사용할 수 있다.이를 통해 메서드가 특정 클래스의 인스턴스를 매개변수로 받도록 지정할 수 있다.이 글에서는 일반 클래스와 열거형 클래스를 메서드의 매개변수 타입으로 사용하는 방법과 이점에 대해 알아보겠다.  일반 클래스를 매개변수 타입으로 사용하기다음은 Idol 클래스와 introduce 메서드를 사용한 예제이다:실행 결과:안녕하세요, 제 이름은 제니이고 28살입니다.위 예제의 주요점:위 예제에서 Idol 클래스는 name과 age 속성을 가지고 있다.introduce 메서드는 Idol 클래스를 매개변수 타입으로 받아 해당 인스턴스의 name과 age 속성을 사용하여 소개 문장을 출력한다.main 함수에서는 Idol 클래스의 인스턴스 '제니'을 생성하고,..

Dart 문법 OOP - enum
Dart/OOP2024. 8. 21. 16:04Dart 문법 OOP - enum

enum의 기본 개념enum은 상수 데이터들의 집합이다.주로 특정한 상태나 옵션 값들을 한정적인 선택지로 제공할 때 사용된다.  Dart에서 enum 사용하기다음은 Dart에서 enum을 정의하고 사용하는 기본적인 예제이다:이 예제에서:enum 선언: enum Color { red, green, blue }Color라는 enum 타입을 선언한다.enum은 클래스의 일종이므로 함수나 다른 클래스 안에 정의될 수 없다.enum 타입의 color 클래스: Color enum 키워드를 클래스 앞에 선언하면, 해당 클래스는 Enum(열거형) 클래스가 된다.enum의 모든 값 조회: Color.valuesEnum 값을 사용하려면 Enum 클래스 이름과 값 이름을 . 연산자로 연결한다.enum의 모든 열거값 목록을 ..

Dart 문법 OOP - 메서드 호출, 캐스케이드 연산자
Dart/OOP2024. 8. 21. 15:59Dart 문법 OOP - 메서드 호출, 캐스케이드 연산자

메서드 호출메서드 호출 방법은 두가지가 있다. 하나는 인스턴스화된 변수에 (.)점을 붙여서 호출하는 방법과, 다른 하나는 인스턴스화된 객체뒤에 (.)점을 붙여 호출하는 방법이 있다. 다음과 같은 클래스가 선언되어있다.  일반적인 메서드 호출은 다음과 같다:두번째 방법을 사용하면 다음과 같이 작성할 수 있다:두 방법의 실행결과는 다음과 같이 모두 같다:안녕하세요, 저는 Alice이고 20살입니다. 여기서 주의할점은 두번쨰 방법 같은 경우는 하나의 메서드만 점(.)을 붙여서 호출할 수 있다. 호출한 메서드 뒤에 다른 메서드를 점(.)을 이어 붙이면 오류가 난다.  캐스케이드 연산자란?캐스케이드 연산자는 인스턴스에서 해당 인스턴스의 속성이나 메서드를 연속해서 사용하는 기능이다.표기법: .. (두 개의 점)목적..

Dart 문법 OOP - static
Dart/OOP2024. 8. 21. 15:51Dart 문법 OOP - static

static 기본 개념static 키워드를 사용하면 변수나 메서드가 클래스 자체에 귀속된다.이는 해당 클래스의 모든 인스턴스가 공유하는 요소를 만들 때 유용하다.  주요 특징:클래스의 모든 인스턴스가 공유한다.인스턴스를 생성하지 않고도 접근할 수 있다.메모리 효율성을 높일 수 있다.  static 변수 (정적 변수) 예제static 변수는 클래스의 모든 인스턴스가 공유하는 변수다. 클래스의 인스턴스를 생성하지 않고도 접근할 수 있다.이 예제에서 count는 static 변수이므로 모든 Counter 인스턴스가 공유한다. 주의: static 변수는 클래스에 직접 귀속되기 때문에 생성자에서 this.count와 같은 방식으로 초기화할 수 없다.  static 메서드static 메서드도 클래스 레벨에서 동작한..

Dart 문법 OOP - 제네릭
Dart/OOP2024. 8. 21. 13:52Dart 문법 OOP - 제네릭

제네릭이란?제네릭은 클래스나 함수 정의를 선언할 때가 아니라 인스턴스화하거나 실행할 때로 타입 결정을 미루는 프로그래밍 기법이다. 주요 특징:특정 변수의 타입을 하나로 제한하지 않고 유연하게 사용할 수 있다.코드 중복을 줄이고 재사용성을 높인다.컴파일 시점에 타입 체크를 할 수 있어 런타임 오류를 줄일 수 있다.  Dart에서의 제네릭 사용 예사실 우리는 이미 많은 곳에서 제네릭을 사용하고 있다:여기서 , , 이 바로 제네릭 표현이다.  제네릭 클래스 만들기직접 제네릭 클래스를 만들어 보겠다:이 예제에서:T는 타입 파라미터로, 실제 Box 객체를 생성할 때 구체적인 타입으로 대체된다.Box 클래스는 어떤 타입의 값이든 저장할 수 있다.  제네릭 함수함수에도 제네릭을 적용할 수 있다:이 getFirst 함..

Dart 문법 OOP - 추상
Dart/OOP2024. 8. 21. 13:46Dart 문법 OOP - 추상

추상 클래스란?추상(abstract)은 상속이나 인터페이스로 사용하는 데 필요한 속성만 정의하고 인스턴스화할 수 없도록 하는 기능이다. 추상 클래스의 주요 특징:직접 인스턴스화할 수 없다.메서드의 선언만 있고 구현은 없을 수 있다 (추상 메서드).일반 메서드와 추상 메서드를 모두 포함할 수 있다.하위 클래스에서 구현해야 할 메서드를 정의한다.  Dart에서의 추상 클래스 구현Dart에서 추상 클래스를 만드는 방법을 살펴보겠다.앞서 사용했던 Idol 클래스를 추상 클래스로 변경해 보겠다:여기서 주목해야 할 점:① abstract 키워드 사용: 클래스 선언 앞에 abstract 키워드를 붙여 추상 클래스임을 명시한다.② 생성자 정의: 추상 클래스도 생성자를 가질 수 있다. 이는 주로 하위 클래스에서 supe..

Dart 문법 OOP - 믹스인
Dart/OOP2024. 8. 21. 13:35Dart 문법 OOP - 믹스인

믹스인이란?믹스인(mixin)은 특정 클래스에 원하는 기능들만 골라 넣을 수 있는 기능이다.이는 다중 상속의 일부 이점을 제공하면서도, 다중 상속의 복잡성을 피할 수 있게 해준다.  Dart에서의 믹스인 특징선택적 기능 추가: 특정 클래스에 필요한 기능만을 선택적으로 추가할 수 있다.다중 적용 가능: 하나의 클래스에 여러 개의 믹스인을 적용할 수 있다.상속과의 호환성: 특정 클래스를 상속하는 클래스에서도 믹스인을 사용할 수 있다.코드 재사용: 여러 클래스 간에 공통 기능을 쉽게 공유할 수 있다.  Dart에서의 믹스인 구현예를 들어, Idol 클래스와 관련된 몇 가지 믹스인을 만들어 보겠다:여기서 주목해야 할 점:mixin 키워드 사용: Singable과 Danceable은 mixin 키워드를 사용하여 ..

Dart 문법 OOP - 인터페이스
Dart/OOP2024. 8. 20. 21:08Dart 문법 OOP - 인터페이스

인터페이스란?인터페이스는 공통으로 필요한 기능을 정의만 해두는 역할을 한다.상속이 공유되는 기능을 이어받는 개념이라면, 인터페이스는 "이런 기능이 필요하다"라고 선언만 하는 것이다.  Dart에서의 인터페이스 특징별도의 키워드 없음: Dart에는 인터페이스를 지정하는 별도의 키워드(예: Java의 interface)가 없다.클래스로 정의: Dart에서는 모든 클래스가 암묵적으로 인터페이스로 사용될 수 있다.다중 구현 가능: 상속은 단 하나의 클래스만 가능하지만, 인터페이스는 여러 개를 구현할 수 있다.모든 메서드 구현 필요: 인터페이스를 구현하는 클래스는 해당 인터페이스의 모든 메서드를 반드시 구현해야 한다.  Dart에서의 인터페이스 구현예를 들어, Idol 클래스를 인터페이스로 사용하는 GirlGro..

Dart 문법 OOP - 오버라이드
Dart/OOP2024. 8. 20. 21:03Dart 문법 OOP - 오버라이드

오버라이드란?오버라이드(override)는 부모 클래스 또는 인터페이스에 정의된 메서드를 자식 클래스에서 재정의할 때 사용된다.이를 통해 자식 클래스는 부모 클래스의 메서드를 자신의 필요에 맞게 변경하거나 확장할 수 있다.  Dart에서의 오버라이드 구현Dart에서는 override 키워드를 사용하여 메서드 오버라이드를 명시적으로 표시할 수 있다.그러나 Dart의 특징 중 하나는 override 키워드를 생략할 수 있다는 점이다.이전에 사용했던 Idol 클래스를 상속받아 메서드 오버라이드를 구현해 보겠다:여기서 주목해야 할 점:@override 어노테이션 사용:부모 클래스에 이미 존재하는 메서드를 자식 클래스에서 재정의할 경우, @override 어노테이션을 사용한다.이를 "메서드 재정의"라고도 한다. ..

image