접근지정자, getter, setter

접근지정자

기본 public = 모든 파일 접근 가능

언더스코어를 붙이면 private = 해당 파일만 접근 가능 (클래스 x)

class Animal{
    String _name;
}

class Test {
    void play(){
        Animal a2 = Animal();
        a2._name = "원숭이"; // 같은 파일이기에 접근 가능
    }
}
main(){
    // new 생략 가능
    Animal a1 = Animal();
    a1._name = "호랑이"; // 같은 파일이기에 접근 가능
}

생성자, getter, setter

생성자

car.dart

class Car{
    String _name; //private

    // 초기화 생성자
    Car(this._name){}

    // 초기 생성자 필요없을때
    Car.origin()

    // getter
    String getName(){
        return _name;
    }
}

main.dart

import 'cart.dart';

main(){
    // private에 접근하기위해 초기화 생성자 필요
    Car c = Car("아반떼");
    // 초기 생성자 없이 불러오기
    Car c2 = Car.origin();
}

getter

car.dart

class Car{
    String _name; //private

    // 초기화 생성자
    Car(this._name){}

    // getter
    String getName(){
        return _name;
    }
    // getter 축약
    String get name{
        return _name;
    }
}

main.dart

import 'cart.dart';

main(){
    // private에 접근하기위해 초기화 생성자 필요
    Car c = Car("아반떼");
    // 호출
    // getter 축약법
    print(c.name); 
}

setter

car.dart

class Car{
    String _name; //private

    // 초기화 생성자
    Car(this._name){}

    //setter
    setName(String value){
        _name = value;
    }
    //setter 축약법
    set name(String value){
        _name = value;
    }
}

main.dart

import 'cart.dart';

main(){
    Car c = Car();
    // setter 축약법
    c.name = '아반떼';
}

참고

https://www.youtube.com/watch?v=mdjp2knKMeg&list=PL93mKxaRDidGEaUXprXqhNvSW02xCjLZI&index=15

 

728x90

'Study > Dart' 카테고리의 다른 글

[Dart] 상속을 쓰는 이유  (0) 2021.06.07
[Dart] 상속  (0) 2021.06.07
[Dart] 클래스  (0) 2021.06.04
[Dart] final 과 const 차이  (0) 2021.06.04
[Dart] 반복문과 깊은 복사  (0) 2021.06.04

+ Recent posts