[OSAM] DART 언어 기초(13) Class [#5] Class Static Keyword, super와 this

hello_hidi·2021년 7월 23일
0

[국소아] DART

목록 보기
13/16
post-thumbnail

> Static

static : 정적 멤버를 선언하는 키워드
=> 모든 인스턴스를 만들 때 같은 값을 넣고 싶은 멤버

  • 선언 : static 타입 변수이름
  • 값 변경은 메인함수에서, class.static변수 = 값;
class Employee {
  static String building;
  String name;

  Employee(String name) : this.name = name;
  void printInfo() {
    print("저는 ${this.name}이고 ${building}에서 일합니다."); 
    
    //this.building x => 값이 할당 x
  
  }
}
void main() {
  Employee a = new Employee('a');
  Employee.building = "아파트";
  a.printInfo();
}

> super와 this

  • 부모클래스 속성을 자식클래스가 온전히 상속
    => super.name = this.name same
  • 부모클래스의 속성을 자식클래스에서 같은 이름으로 속성을 덮으면
    => super.name(부모) != this.name(자식)
class Employee {
  final String building;
  final String name;

  Employee(String building, String name)
      : this.building = building,
        this.name = name;
}

class Engineer extends Employee {
  String name;
  Engineer(String name, String building) : super(building, name);
  void thisprintInfo() {
    print("저는 ${this.building}에서 일하는 ${this.name}입니다.");
  }

  void superprintInfo() {
    print("저는 ${super.building}에서 일하는 ${super.name}입니다");
  }
}

void main() {
  Engineer e = new Engineer("류희재","아파트");
  e.superprintInfo();
  e.thisprintInfo();
}
결과값
저는 아파트에서 일하는 류희재입니다
저는 아파트에서 일하는 null입니다.
profile
안뇽희디

0개의 댓글