<aside> ❓ 1. 외부에서 접근을 할 수 없도록, Private하게 사용할 수 있는 멤버 변수(또는 멤버 함수 등)를 지정하는 방법이 있다. Dart에서는 Private 멤버 변수를 어떻게 설정하는지 알아보고 정리하시오.
_
' 붙이기
_privateVariable
_privateFunction()
캡슐화
클래스 외부에서 직접적으로 접근할 수 없어서 클래스 내부의 구현 세부사항을 숨길 수 있음
→ 코드의 유지 보수성을 향상시키고 외부에서 잘못된 사용으로부터 객체를 보호함
이름 충돌 방지
다른 클래스나 패키지에서 사용하는 변수와 충돌할 위험이 줄어든다
→ 네이밍 컨벤션을 통해 private 변수임을 명시함으로써 변수나 함수의 사용을 좀 더 안전하게 할 수 있음
내부 구현 변경 용이
클래스의 내부 구현을 변경할 때 외부 코드에 영향을 최소화할 수 있음
→ 외부에서 직접적으로 접근하지 않기 때문에 내부 구현을 변경해도 외부 코드는 수정할 필요가 없다
<aside> ❓ 2. 클래스에서는 부모의 힘과 기능을 사용할 수있도록 extends가 존재한다. extends를 사용하게되면 super의 키워드도 간혹볼 수 있는데, 이 때 super의 기능은 무엇인지 정리하시오.
</aside>
자식 클래스에서 부모 클래스의 생성자를 호출하거나 부모 클래스의 멤버에 접근하는 데 사용
→ 클래스 상속을 통한 기능 재사용과 확장이 가능해짐
부모 클래스의 생성자 호출
자식 클래스에서 생성자를 정의할 때 생성자의 첫 번째 줄에서 super
키워드를 사용하여 부모 클래스의 생성자를 호출할 수 있음
→ 자식 클래스는 부모 클래스의 초기화 로직을 실행하고, 상속받은 인스턴스 변수를 초기화할 수 있음
class Parent {
String name;
Parent(this.name);
}
class Child extends Parent {
int age;
// Parent 클래스의 생성자를 호출하여 name 멤버 변수를 초기화
Child(String name, this.age) : super(name);
}