[Dart]다트(4) - 클래스

July 12, 2020 ( last updated : July 12, 2020 )
Dart Flutter Web App Hybrid

https://github.com/sneakstarberry/


Abstract

다트 클래스

다트(4) - 클래스

다트에서 클래스를 어떻게 만드는 지 알아보도록 하겠습니다.

클래스 선언

일반적인 클래스 선언

일반적으로 클래스를 선언할 때 쓰는 방식입니다.

class Person {
    String name;
}

위와 같이 앞에 class를 붙여서 선언을 해주면 됩니다.

객체의 member에 접근하기

person.name

’.’을 통해 member에 접근할 수 있습니다.

생성자 이용하기

생성자를 이용하여 객체를 생성할 때 값을 넣어 줄 수 있습니다.

class Person{
    String name;
    Person(name) {
        this.name = name;
    }
}

위와 같이 this를 이용하여 객체의 값에 접근 할 수 있습니다.

간편하게 생성자를 이용하기

좀 더 간편하게 생성자를 이용해보겠습니다.

class Person{
    String name;
    Person(this.name);
}

main(){
    Person person = Person('sneakstarberry');
    print(person.name); // sneakstarberry
}

함수처럼 생겼던 생성자를 간단하게 바꾸어보았습니다.


상속 받기

extends 키워드를 이용해 익숙하게 상속받을 수 있다.

class Vehicle{
  Vehicle(this.color);
  
  final String color;
  final String definition = 'Vehicle';
}

class Car extends Vehicle {
  Car(String color) : super(color);
}

class Hatch extends Car {
  Hatch(String color);
}

main(){
  final hatch = Hatch('red');
  
  print('Result: ${hatch is Vehicle}');
}

implements 하기

class Vehicle{
  Vehicle(this.color);
  
  final String color;
  final String definition = 'Vehicle';
}

class Car implements Vehicle {
  Car(this.carColor);
  
  final String carColor;
  
  @override
  String get color => carColor;
  @override
  String get definition => '$carColor car';
}

main(){
  final car = Car('red');
  
  print('Result: ${car is Vehicle}');
}

Car는 Vehicle에 있는 모든 속성과 함수를 따로 구현 함으로서 type이 같아졌습니다.

with 쓰기

with를 씀으로서 여러 개의 클래스로 부터 상속을 받을 수 있습니다.

class Animal {}

// behaviors
class Flyer {
  void fly() => print('I can fly!');
}

abstract class Swimmer {
  void swim() => print('I can swim!');
}

class Bird extends Animal with Flyer {}

class Duck extends Animal with Swimmer, Flyer {}

main(){
  final bird = Bird();
  print(bird is Flyer);
}

감사합니다.

Originally published July 12, 2020
Latest update July 12, 2020

Related posts :

{# #}