[Dart] Object Oriented Programming - 캡슐화

yeahsilver·2023년 6월 20일
0
post-thumbnail

캡슐화란 무엇인가?

  • 코드를 수정없이 재활용하는 것
  • 예시) A 클래스에서 읽기만 가능한 변수를 생성하여 출력은 가능하지만 업데이트와 같은 다른 기능들을 제공하지 않는 방법

Dart에서 캡슐화를 처리하는 방법

  • private 키워드를 사용하고 public getter, setter를 사용하여 값에 접근, 세팅을 가능하게 함

    class BankDetails {
       int? bankBalance;
    }
    
    void main (){
       final john = BankDetails();
       john.bankBalance = 1000;
    
       print(john.bankBalance);
    }
  • 위의 코드에서, john.bankBalance를 1000으로 세팅하고 있음

  • 메인 함수에서 bankBalance라는 값을 수정할 수 없게 처리하고 샆다면, bankBalance의 값을 접근할 수 없도록 만들면 됨

Private 변수 생성

  • Dart에는 public, private, protected와 같은 키워드가 존재하지 않음

  • 메소드 또는 변수를 private 형태로 변경하고 싶다면, _를 변수 앞에 붙히면 됨

    class BankDetails {
      BankDetails({
        required this.password,
      });
    
      int? _bankBalance;
      String password;
    
      set setBalance(int newBalance) {
        if(password == getActualPasswordFromDB())
        _bankBalance = newBalance;
      }
    
      get getBalance => _bankBalance ?? 'UnAuthorized Access';
    }
      // main.dart
      import 'test.dart';
    
      void main() {
        final john = BankDetails(password: '1234');
        john.setBalance = 1000;
    
        print(john.getBalance);
      }

Reference

profile
Hello yeahsilver's world!

0개의 댓글