Dart 클래스 & 위젯

Gino·2023년 6월 20일
1

코딩셰프 flutter

목록 보기
6/9

class {
속성: 액정, 카메라 모듈, 홈버튼, 스크린
기능: 전화 걸기, 사진찍기, 인터넷 검색
}
이렇게 만들어진 class를 인스턴스라고 부름

클래스란?

  • 객체가 가져야 하는 속성과 기능을 정의한 내용을 담고 있는 설계도 역할

객체란?

  • 클래스가 정의된 후 메모리상에 할당되었을 때 이를 객체라고 함

인스턴스란?

  • 클래스를 기반으로 생성됨
  • 클래스의 속성과 기능을 똑같이 가지고 있고 프로그래밍 상에서 사용되는 대상
// 클래스명은 대부분 대문자로 시작
class Person {
  // 클래스에서 정의된 변수를 멤버변수라고 부름
  late String name; // var 타입추론 키워드
  late int age;
  late String sex;

  // 생성자, ()안에 아규먼트 정의시 인스턴트 생성시 아규먼트 입력 필요
  // 단, 네임드 아규먼트 설정 {} 시 아규먼트 임의 입력 가능
  Person(String name, int age, String sex) {
    // 클래스 속성의 변수명과 생성자 아규먼트의 변수명이 모두 똑같은 경우 this 붙임
    this.name = name;
    this.age = age;
    this.sex = sex;
  }
}

// dart는 타입추론언어로 앞에 자료형을 명시해주지 않을 수 있음
// addNumber 앞에 void 타입 넣으면 오류 (void는 반환하지 않는 함수타입)
addNumber(int num1, int num2) {
  return num1 + num2;
}

void main() {
  // 클래스 Person, 인스턴스 p1, 키워드 new(생략가능), 생성자 Person
  Person p1 = Person('tom', 30, 'male');
  Person p2 = Person('jenny', 27, 'female');

  // 네임드 아규먼트 설정시 아래와 같이 특정 아규먼트만 입력 가능
  // Person p1 = new Person(age:30);
  // Person p2 = new Person(sex:'male');

  print(p1.age);
  print(p2.name);

  print(addNumber(3, 4));
profile
나무를 심는 사람

0개의 댓글