Dart - Constructor & Getter & Private

2023. 5. 6. 03:41·📘 Frontend/Dart
목차
  1. Constructor
  2. Named Constructor
  3. Getter / Setter
  4. Private 속성

Java & Kotlin과 동일한 내용은 안쓰고 새로운 내용만 작성


Constructor

  • 생성자를 만드는 2가지 방법이 있다.
class User {
    String name = '이름';

    // Constructor 1
    User(String name): this.name = name;
}
class User {
    String name = '이름';

    // Constructor 2
    User(this.name);
}

Named Constructor

  • 클래스명.붙이고 싶은 이름()으로 Named Constructor를 생성할 수 있다.
void main() {
    User user = User.fromList(
    [
        ['a', 'b', 'c'],
        'd'
    ]);
}

class User {
    String name = '이름';
    List<String> members;

    // Named Constructor
    User.fromList(List values): this.members = values[0], this.name = values[1];
}

만약 생성자나 변수에 const 키워드를 붙이면 같은 인스턴스로 간주한다.

  • const 키워드는 런타임 시 값을 모르면 컴파일 단계에서 에러.

Getter / Setter

  • Dart에서의 Getter는 다른 동작 없이 바로 get 키워드로 선언하면 된다.
void main() {
    // Getter 호출
    User.firstMember;
}

get firstMember {
    return this.members[0];
}

// 타입 명시
String get firstMember {
    return this.members[0];
}

  • Dart에서의 Setter도 Getter와 비슷하다.
  • 하지만, 다른 점은 Setter의 파라미터는 무조건 1개만 들어가야하는 법칙이 존재한다.
void main() {
    // Setter 호출
    User.firstMember = "바꿀이름";
}

set firstMember(String name) {}

Private 속성

  • 현재 파일 내부에서만 사용 가능한 스코프를 지닌 키워드이다.
  • 외부에서 파일 전체를 불러오더라도 외부에서 사용이 불가능하게 만든다.
  • 클래스나 변수, 함수 등을 Private으로 바꾸고 싶으면,
    이름의 맨 처음에 _언더스코어를 1개 붙여주면 된다.(ex: class _User)
저작자표시 (새창열림)

'📘 Frontend > Dart' 카테고리의 다른 글

Dart - Functional Programming  (0) 2023.05.06
Dart - Inheritance & Interface & Generic  (0) 2023.05.06
Dart - Funtion  (0) 2023.05.05
Dart - Condition & Loop  (0) 2023.05.05
Dart - Operator & List & Map & Set  (0) 2023.05.05
  1. Constructor
  2. Named Constructor
  3. Getter / Setter
  4. Private 속성
'📘 Frontend/Dart' 카테고리의 다른 글
  • Dart - Functional Programming
  • Dart - Inheritance & Interface & Generic
  • Dart - Funtion
  • Dart - Condition & Loop
신건우
신건우
조용한 개발자
  • 신건우
    우주먼지
    신건우
  • 전체
    오늘
    어제
    • 분류 전체보기 (422)
      • 📘 Frontend (71)
        • Markup (1)
        • Style Sheet (2)
        • Dart (8)
        • Javascript (12)
        • TypeScript (1)
        • Vue (36)
        • React (2)
        • Flutter (9)
      • 📘 Backend (143)
        • Java (34)
        • Concurrency (19)
        • Reflection (1)
        • Kotlin (29)
        • Python (1)
        • Spring (42)
        • Spring Cloud (5)
        • Message Broker (5)
        • Streaming (2)
        • 기능 개발 (5)
      • 💻 Server (6)
        • Linux (6)
      • ❌ Error Handling (11)
      • 📦 Database (62)
        • SQL (31)
        • NoSQL (2)
        • JPQL (9)
        • QueryDSL (12)
        • Basic (4)
        • Firebase (4)
      • ⚙️ Ops (57)
        • CS (6)
        • AWS (9)
        • Docker (8)
        • Kubernetes (13)
        • MSA (1)
        • CI & CD (20)
      • 📚 Data Architect (48)
        • Data Structure (10)
        • Algorithm (8)
        • Programmers (17)
        • BaekJoon (5)
        • CodeUp (4)
        • Design Pattern (4)
        • AI (0)
      • ⚒️ Management & Tool (8)
        • Git (7)
        • IntelliJ (1)
      • 📄 Document (10)
        • Project 설계 (6)
        • Server Migration (3)
      • 📄 책읽기 (2)
        • 시작하세요! 도커 & 쿠버네티스 (2)
      • 🎮 Game (4)
        • Stardew Vally (1)
        • Path of Exile (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      React #Markdown
      GStreamer #Pipeline
      Lock #Thread #Concurrency
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    신건우
    Dart - Constructor & Getter & Private
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.