상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
첫 대출, 대출 사기를 예방하는 법
대출 담보의 종류와 선택 기준
대출 담보, 소득 증대의 기회
마이너스 통장 대출, 자산 관리로의 전환
마이너스 통장 대출의 투명한 운영 원칙
금리 낮은 대출로 즉각적인 현금 유동성 확보하기
무직자 대출, 어떻게 신청해야 할까?
무직자 대출, 온라인으로 빠르게 신청하기
보험사 대출, 대출금의 흐름은?
보험사 대출, 반전의 순간은 언제?
“소상공인 위한 은행권 대출 가이드!”
대출 거절 후 어떻게 신용을 회복할까?
Previous
Next
수정하기 - 다트에서 클래스(Class)를 정의하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
다트(Dart)에서 클래스를 정의하는 방법은 객체 지향 프로그래밍의 기본 개념을 따릅니다. 클래스는 객체를 생성하기 위한 <a href='https://sangseek.com/sangseeks/청사진/ko'>청사진</a>(blueprint)으로, 속성과 메서드를 포함할 수 있습니다. 아래에서 다트에서 클래스를 정의하는 방법에 대해 자세히 설명하겠습니다. 1. 클래스 정의 기본 구조 다트에서 클래스를 정의하려면 `class` 키워드를 사용합니다. 클래스 이름은 대문자로 시작하는 것이 일반적인 <a href='https://sangseek.com/sangseeks/관례/ko'>관례</a>입니다. 기본적인 클래스 정의는 다음과 같습니다: ```dart class ClassName { // 속성 (필드) Type propertyName; // 생성자 ClassName(this.propertyName); // 메서드 void methodName() { // 메서드의 구현 } } ``` 2. 속성 (Fields) 클래스의 속성은 클래스 내부에 정의된 변수입니다. 속성은 클래스의 상태를 나타내며, 다양한 <a href='https://sangseek.com/sangseeks/데이터 타입/ko'>데이터 타입</a>을 가질 수 있습니다. 예를 들어: ```dart class Person { String name; int age; Person(this.name, this.age); } ``` 위의 예제에서 `Person` 클래스는 `name`과 `age`라는 두 개의 속성을 가지고 있습니다. 3. 생성자 (Constructors) 생성자는 클래스의 인스턴스를 생성할 때 호출되는 특별한 메서드입니다. 다트에서는 <a href='https://sangseek.com/sangseeks/기본 생성자/ko'>기본 생성자</a> 외에도 <a href='https://sangseek.com/sangseeks/명명/ko'>명명</a>된 생성자(named constructor)와 팩토리 생성자(factory constructor)를 정의할 수 있습니다. 기본 생성자 ```dart class Person { String name; int age; Person(this.name, this.age); // 기본 생성자 } ``` 명명된 생성자 ```dart class Person { String name; int age; Person(this.name, this.age); // 기본 생성자 Person.withName(String name) : this(name, 0); // 명명된 생성자 } ``` 팩토리 생성자 팩토리 생성자는 인스턴스를 반환하는 메서드로, 특정 조건에 따라 기존 인스턴스를 반환할 수 있습니다. ```dart class Singleton { static final Singleton _instance = Singleton._<a href='https://sangseek.com/sangseeks/internal/ko'>internal</a>(); factory Singleton() { return _instance; } Singleton._internal(); // 비공식 생성자 } ``` 4. 메서드 (Methods) 클래스 내에서 정의된 함수는 메서드라고 하며, 클래스의 속성을 조작하거나 특정 작업을 수행하는 데 사용됩니다. ```dart class Person { String name; int age; Person(this.name, this.age); void introduce() { print('안녕하세요, 제 이름은 $name이고, 나이는 $age세입니다.'); } } ``` 5. 상속 (Inheritance) 다트는 클래스 상속을 지원하여 기존 클래스를 기반으로 새로운 클래스를 만들 수 있습니다. 상속을 통해 코드의 재사용성을 높이고, 공통된 기능을 공유할 수 있습니다. ```dart class Employee extends Person { String position; Employee(String name, int age, this.position) : super(name, age); } ``` 6. <a href='https://sangseek.com/sangseeks/다형성/ko'>다형성</a> (Polymorphism) 다트에서는 메서드 오버라이딩을 통해 다형성을 구현할 수 있습니다. 부모 클래스의 메서드를 자식 클래스에서 재정의하여 사용할 수 있습니다. ```dart class Person { void introduce() { print('저는 사람입니다.'); } } class Employee extends Person { @override void introduce() { print('저는 직원입니다.'); } } ``` 7. 접근 제어자 (Access Modifiers) 다트에서는 클래스의 속성과 메서드에 대한 접근 제어를 위해 `public`과 `private`를 사용할 수 있습니다. 기본적으로 모든 클래스 멤버는 public이며, private 멤버는 이름 앞에 언더스코어(_)를 붙여 정의합니다. ```dart class Person { String name; // public int _age; // private Person(this.name, this._age); } ``` 8. 정리 다트에서 클래스를 정의하는 것은 객체 지향 프로그래밍의 핵심 개념을 활용하는 것입니다. 클래스는 속성, 메서드, 생성자, 상속 및 다형성을 통해 복잡한 데이터 구조와 행동을 모델링할 수 있습니다. 이러한 기능을 통해 다트는 강력하고 유연한 프로그래밍 환경을 제공합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기