인터페이스란?인터페이스는 공통으로 필요한 기능을 정의만 해두는 역할을 한다.상속이 공유되는 기능을 이어받는 개념이라면, 인터페이스는 "이런 기능이 필요하다"라고 선언만 하는 것이다. Dart에서의 인터페이스 특징별도의 키워드 없음: Dart에는 인터페이스를 지정하는 별도의 키워드(예: Java의 interface)가 없다.클래스로 정의: Dart에서는 모든 클래스가 암묵적으로 인터페이스로 사용될 수 있다.다중 구현 가능: 상속은 단 하나의 클래스만 가능하지만, 인터페이스는 여러 개를 구현할 수 있다.모든 메서드 구현 필요: 인터페이스를 구현하는 클래스는 해당 인터페이스의 모든 메서드를 반드시 구현해야 한다. Dart에서의 인터페이스 구현예를 들어, Idol 클래스를 인터페이스로 사용하는 GirlGro..
오버라이드란?오버라이드(override)는 부모 클래스 또는 인터페이스에 정의된 메서드를 자식 클래스에서 재정의할 때 사용된다.이를 통해 자식 클래스는 부모 클래스의 메서드를 자신의 필요에 맞게 변경하거나 확장할 수 있다. Dart에서의 오버라이드 구현Dart에서는 override 키워드를 사용하여 메서드 오버라이드를 명시적으로 표시할 수 있다.그러나 Dart의 특징 중 하나는 override 키워드를 생략할 수 있다는 점이다.이전에 사용했던 Idol 클래스를 상속받아 메서드 오버라이드를 구현해 보겠다:여기서 주목해야 할 점:@override 어노테이션 사용:부모 클래스에 이미 존재하는 메서드를 자식 클래스에서 재정의할 경우, @override 어노테이션을 사용한다.이를 "메서드 재정의"라고도 한다. ..
상속의 기본 개념상속은 어떤 클래스의 기능을 다른 클래스가 사용할 수 있게 하는 기법이다.기능을 물려주는 클래스를 부모 클래스 (또는 슈퍼 클래스, 기본 클래스)라고 한다.기능을 물려받는 클래스를 자식 클래스 (또는 서브 클래스, 파생 클래스)라고 한다.Dart에서는 extends 키워드를 사용하여 상속을 구현한다. Dart에서의 상속 구현예를 들어, 다음과 같은 Idol 클래스가 있다고 가정해보자:이제 Idol 클래스를 상속하는 BoyGroup 클래스를 만들어 보겠다: class라고 하고서 상속을 받고 있는 클래스의 이름을 짓고, extends 한 다음에 부모 클래스로 모든 속성들을 상속받고 싶은 클래스를 오른쪽에다 넣어주면 된다.그러면은 BoyGroup에서 벌써 에러가 나는데, 이 에러는 뭐냐면은 ..
게터와 세터의 정의게터(getter)는 말 그대로 값을 가져올 때 사용되고, 세터(setter)는 값을 지정할 때 사용된다.게터와 세터를 사용하면 클래스의 내부 구현을 숨기면서도 속성에 대한 접근을 제공할 수 있다.이는 캡슐화의 원칙을 지키면서도 유연한 인터페이스를 제공할 수 있게 해준다. Dart 프로그래밍 언어에서 게터(getter)와 세터(setter)는 객체 지향 프로그래밍의 중요한 개념이다.이들은 클래스의 속성에 접근하고 수정하는 방법을 제어하는 데 사용된다. 게터(Getter)란?게터는 객체의 특정 속성 값을 읽을 때 사용되는 특별한 메서드이다."get"이라는 단어에서 알 수 있듯이, 게터는 값을 "가져오는" 역할을 한다. 게터의 특징:값을 반환한다.매개변수를 받지 않는다.읽기 전용 속성을..
Private 변수의 정의Dart에서 private 변수는 다른 언어와 정의가 약간 다르다.일반적으로 객체 지향 프로그래밍에서 private 변수는 클래스 내부에서만 사용할 수 있는 변수를 의미한다. 그러나 Dart 언어에서는 이 개념이 조금 다르다:Dart언어에서는 private 변수가 같은 파일에서만 접근 가능한 변수이다.이는 Dart가 모듈 시스템을 파일 단위로 관리한다는 특성 때문이다. Private 변수 선언 방법Dart에서 private 변수를 선언하는 방법은 간단하다:① private 변수는 변수명을 _ 기호로 시작해 선언할 수 있다.예를 들어: 이 예제에서 _name은 private 변수이고, age는 public 변수이다. Private 변수의 접근 범위일반적으로 클래스 선언과 사용하..
생성자 존재 이유위 이미지 처럼 클래스를 통해 인스턴스를 만들었다고 가정해본다. 현재 위 이미지의 Idol 클래스에는 문제가 있다.클래스를 통해 여러 인스턴스를 만드는 것처럼, 블랙핑크 뿐만 아니라 BTS도 만들 수 있고 레드벨벳도 만들 수 있고 굉장히 많은 수많은 무한하게 인스턴스를 생성할 수 있다고 하였다. 하지만 위 코드 이미지 처럼, 지금 현재 지금 현재 이 Idol 클래스로는 블랙핑크란 이름으로 인스턴스를 생성할 수 밖에 없다. 하지만, 파라미터를 받아 가지고 함수의 반복적인 코드를 제거할 수 있었던 것처럼 클래스에서도 파라미터를 받을 수 있는 방법이 있다. 어떻게 받냐면은 constructor(생성자) 라는 것으로 받을 수 있게 가능하도록 만들어준다. 생성자 개념생성자(constructo..
OOP란?OOP 같은 경우는 영어로 Object Oriented Programming의 약어로, 클래스를 가지고 프로그래밍을 하느 것을 OOP라고 애기를 한다. 클래스 키워드를 사용하면은 여러가지 정의를 넣을 수가 있다. 어떤 걸 할 수 있냐면은 예를 들어서 Idol이라는 클래스를 위 이미지 처럼, 만들었다고 한번 가정해본다. 그러면 Idol 클래스에는 변수인 이름이 있고 멤버들이 있으며, 함수로서 기능인 인사하는 기능 그리고 멤버 소개하는 기능 뭐 이런 것들이 있을 것이다. 객체지향 프로그래밍의 중요성객체지향 프로그래밍(OOP)은 현대 소프트웨어 개발에서 핵심적인 패러다임이다.OOP의 주요 장점은 다음과 같다:코드 구조화: 관련 있는 데이터와 기능을 하나의 단위(클래스)로 묶어 관리한다.재사용성:..
함수형 프로그래밍의 개념함수형 프로그래밍은 "레고 블록 조립"에 비유할 수 있다. 각 함수는 독립적인 기능을 가진 블록과 같으며, 이들을 조합하여 복잡한 연산을 수행할 수 있다. 순수 함수의 개념은 부작용 없이 동일한 입력에 대해 항상 같은 결과를 반환하는 것을 의미한다. Dart에서의 함수 선언Dart에서 함수를 선언하는 일반적인 형식은 다음과 같다:리턴타입 함수이름(파라미터타입 파라미터) { // 함수 본문 return 리턴값;}예를 들어: return 키워드와 void 반환 타입return 키워드는 함수에서 값을 반환하고 함수의 실행을 종료한다.void 반환 타입은 함수가 값을 반환하지 않음을 나타낸다. 익명 함수와 화살표 함수화살표 함수는 단일 표현식을 포함하는 간결한 함수 표현 방식이다..
반복문 개요반복문은 특정 코드 블록을 여러 번 실행할 수 있게 해주는 프로그래밍 구조이다.Dart에서는 주로 for, while, do-while 문을 사용하여 반복 작업을 수행한다. for 문for 문은 정해진 횟수만큼 반복을 수행할 때 사용된다.실행 결과:12345678910이 예제에서 i는 0부터 시작하여 9까지 증가하며, 각 반복에서 i + 1을 출력한다. for...in 문for...in 문은 컬렉션의 각 요소를 순회할 때 사용된다.실행 결과:AppleBananaOrange이 예제는 fruits 리스트의 각 요소를 순회하며 출력한다. while 문while 문은 조건이 참인 동안 반복을 수행한다.실행 결과:Count: 0Count: 1Count: 2Count: 3Count: 4이 예제에서는..
조건문 개요조건문은 프로그램의 흐름을 제어하는 핵심 요소이다.특정 조건에 따라 코드의 실행 여부를 결정하며, 이를 통해 프로그램의 로직을 구현할 수 있다. if 문if 문은 가장 기본적인 조건문으로, 주어진 조건이 참일 때만 코드 블록을 실행한다.실행 결과:물이 얼 수 있는 온도입니다. if-else 문if-else 문은 조건이 참일 때와 거짓일 때 각각 다른 코드 블록을 실행한다.실행 결과:성인입니다. else if 문else if 문을 사용하면 여러 조건을 순차적으로 검사할 수 있다.실행 결과:주의하세요 조건 표현식Dart는 두 가지 형태의 조건 표현식을 제공한다. 삼항 연산자: 조건 ? 표현식1 : 표현식2실행 결과:성인null 조건 연산자: 표현식1 ?? 표현식2실행 결과:환영합니다, 게스..
