반응형

Flutter/Dart 문법 26

[Dart] Generic

Generic은 타입을 외부에서 받을 때 사용한다. class Lecture { final int id; final String name; Lecture(this.id, this name); } 이런 Class가 있다고 보면, Lecture은 class외부에서 생성자를 input으로 받게 되는데 타입은 사실 받기 어렵다. 이미 class내부에서 정의내렸기 때문이다. void main() { Lecture lecture1 = Lecture('123','lecture1'); // String이니까 잘 들어간다 } class Lecture { // 사이에 무엇을 넣어도 상관없는데 보통T넣는다. final T id; final String name; Lecture(this.id, this.name); } cla..

Flutter/Dart 문법 2023.03.22

[Dart] 인터페이스(abstract)

interface class의 구조를 강제하고 싶을 때 사용한다. class에서 선언하고 인스턴스로 만들지 않고 다른 클래스에서 사용한다. implements 키워드를 사용한다. 상속과 비슷하다 뭔 말인지 모르겠으니 형태를 직접 봐보자 abstract class IdolInterface { String name; IdolInterface(this.name); void sayName() // 메서드를 선언만하고 만들지는 않음 // 함수의 바디( {} ) 도 없어도 된다. } 쉽게 위처럼 빈 틀이 interface라고 생각하고 틀위에 구현하는 것은 다른 클래스에서 틀에 맞게 구현한다고 생각 위 인터페이스는 그야말로 틀(인스턴스로 만들 때 사용하면 안돼)이기 때문에 그 안에 어떤 값도 들어가면 안된다. 틀은 ..

Flutter/Dart 문법 2023.03.22

[Dart] Static

Static은 인스턴스에 귀속되지 않고 Class에 귀속된다. 일단 인스턴스는 현재 클래스에 속해있는 오브젝트라 할 수 있다. class Employee { //Class에 귀속. static String? building; //인스턴스에 귀속. String name; Employee( this.name, ); void printNameAndBuilding() { print('제 이름은 $name입니다 $building 건물에서 근무하고 있습니다.'); } static void printBuilding() { print('저는 $building 건물에서 근무중입니다.'); } } 위와 같은 코드를 작성했다고 하고 static인 building과 name이 어떻게 작용하는지 확인해보면 void main()..

Flutter/Dart 문법 2023.03.22

[Dart] 오버라이딩

메서드는 클래스 내부에 있는 함수 오버라이드: 덮어서 쓴다(우선 시 하다) 상속한 경우에만 오버라이드를 사용한다. void main() { TimesTwo tt = TimesTwo(2); print(tt.calculate()); } class TimesTwo { final int number; TimesTwo( this.number, ); int calculate() { // 이 메서드를 오버라이드 return number * 2; } } 위와 같이 number를 받아서 *2를 하는 메서드를 작성했고 오버라이드 하여 *4의 메서드를 상속받은 자식클래스에서 사용하고 싶다고 한다면 class TimesFour extends TimesTwo { TimesFour( int number, ) : super(num..

Flutter/Dart 문법 2023.03.22

[Dart] 상속

기본적인 클래스를 생성하자 void main() { print('--------------------'); Idol apink = Idol(name: '에이핑크', membersCount: 5); apink.sayName(); apink.sayMembersCount(); } class Idol{ String name; int membersCount; Idol({ // named파라미터로 생성 required this.name, required this.membersCount, }); void sayName(){ print('저는 ${this.name}입니다'); } void sayMembersCount(){ print('${this.name}은 ${this.membersCount}명의 멤버가 있습니다.'..

Flutter/Dart 문법 2023.03.22

[Dart] Class의 getter와 setter

getter는 데이터를 가져올 때 setter는 데이터를 설정할 때 사용 get getter 선언 class내에서 반환타입 get 이름 { return 반환인자 } **() 을 사용하지 않는다. {}만 사용한다. getter 사용 .을 이용하여 사용가능 ex void main() { Hansoom hansoom1 = Hansoom( '한숨팟', ['차', '밍', '똥', '똥철'] ); Hansoom hansoom2 = Hansoom( '한숨팟2', ['김', '정', '차', '오'] ); print(hansoom1.firstMemeber); // .을 이용하여 사용 } class Hansoom { String name; List members; Hansoom(this.name, this.member..

Flutter/Dart 문법 2023.03.22

[Dart] 생성자(constructor)

Class에 파라미터를 받는 것이 생성자 기본적으로 클래스부터 생성해보면 void main() { Hansoom hansoom = Hansoom(); } class Hansoom { String name = '한숨팟'; List members = ['차','밍','똥','똥철']; void sayHello() { print('안녕하세요 한숨팟입니다.'); } void introduce() { print('저희는 차,밍,똥,똥철 입니다.'); } } 클래스 내부에서 positional constructor부터 만들어보면 input을 받고 class내부에 저장해야한다. void main() { Hansoom hansoom = Hansoom( '한숨팟', ['차','밍','똥','똥철'], ); } class..

Flutter/Dart 문법 2023.03.22

[Dart] 함수의 선언 (parameter에 관하여)

기본적인 함수의 선언 addNumbers() { 함수 작성 } 예시 void main() { addNumbers(); } addNumbers() { int x = 10; int y = 20; int z = 30; int sum = x + y + z; print('x : $x'); print('y : $y'); print('z : $z'); if( sum % 2 == 0) { print('짝수입니다.'); } else { print('홀수입니다.'); } } paramter에 관하여 .. 함수를 외부에서 입력받아 처리하고 싶을 때 함수 이름 옆() 괄호 안에 있는 것을 파라미터라고 한다. 기본적으로 파라미터로 입력받아 로직을 처리한다. 함수이름 (파라미터1, 파라미터2) 함수의 파라미터에는 position..

Flutter/Dart 문법 2023.03.21

[Dart] while-if-break 문 / for-if-continue 문

while-if-break 문 예시 int sum1 = 0; while (sum1 < 10) { sum1 += 1; if (sum1 == 5) { break; } } print(sum1); break의 의미는 조건에 맞으면 loop자체를 나가라는 의미 합계가 5가 되고 바로 loop를 빠져나온다 for-if-continue 문 예시 for(int i = 0; i < 10; i++) { if(i == 5) { continue; } print(i); } continue는 조건에 해당하는 loop만 탈출하고 다음 loop를 진행 5만 제외되고 loop가 진행 됐음을 알 수 있다.

Flutter/Dart 문법 2023.03.21
반응형