다른 언어에선 변수,함수,클래스와 같은 구성 요소를 선언할 때 public.private 등의 접근 제한자 access modifier를 추가해 어느 범위까지 접근할 수 있는지 지정할 수 있는데, 다트는 이러한 접근 제한자를 제공하지 않는다.

즉, public 상태다.

 

하지만 다른 다트 파일에서 사용 못하게 하는 방법이 있는데 밑줄을 사용하는 것이다.

 

아래는 'my_class.dart'라는 Dart파일 내에 있는 코드다. '_privateVariable'와 '_privateMethod()는 언더스코어로 시작하기에 외부에서 접근할 수 없다.

// my_class.dart
class MyClass {
String publicVariable = 'I am public!';
String _privateVariable = 'I am private.';

void publicMethod() {
print('This is a public method.');
}

void _privateMethod() {
print('This is a private method.');
}
}

이제 'main.dart'라는 다른 Dart 파일에서 위의 MyClass를 사용하려고 한다.

// main.dart
import 'my_class.dart';

void main() {
  var myObject = MyClass();
  
  print(myObject.publicVariable); // 출력: I am public!
  myObject.publicMethod(); // 출력: This is a public method.

  // 아래의 코드는 컴파일 에러를 발생
  // print(myObject._privateVariable); // 에러
  // myObject._privateMethod(); // 에러
}

myObject._privateVariable나 myObject._privateMethod()에 접근하려고 하면 Dart 컴파일러는 에러를 발생시킨다. 이들은 my_class.dart 파일 내에서만 접근 가능하기 때문이다.

'Flutter & Dart' 카테고리의 다른 글

Flutter 특징 살펴보기  (0) 2023.09.07

+ Recent posts