flutter 클래스, 객체, 인스턴스, 생성자

Joey Hong·2020년 11월 10일
0

flutter

목록 보기
1/4

class, 객체, 인스턴스

class Person {
	String name;
    int age;
    String sex;
}
  • class: 객체가 가져야 하는 속성과 기능을 정의한 내용을 담고 있는 설계도
  • 객체: 클래스가 정의된 후 메모리상에 할당된 것
  • 인스턴스: 클래스를 기반으로 생성된 것으로 클래스의 속성과 기능을 똑같이 가지고 있으며 프로그래밍 상에서 사용되는 대상
void main() {
  Person p1 = new Person();	//Person 클래스로 p1이라 불리우는 인스턴스를 생성
  p1.age = 30;
  p1.sex = 'male'
}

생성자

매번 변수값을 만들어주는 번거로움을 해결해주는 것
다트가 기본적인 투명 생성자를 만들어줌

//함수
int addNumber(int num1, int num2){
	return num1 + num2;
}
addNumber(3, 4)
//7
  • 변수 type을 지정하지 않아도 돌아는 간다. 하지만 정수만 받고 싶은 변수에 실수를 넣었을 때 실수로 계산해버리는 등 원치 않는 상황이 생길 수 있으니 지정해주는게 좋다.
//dart 생성자
class Person{
  String name;
  int age;
  String sex;
  
//인스턴스를 생성하기 위해 아규먼트를 받는다
//name, age, sex는 멤버 변수다
Person(String name, int age, String sex) {
    //this.name이 멤버변수라고 알려준다
    //age라는 아규먼트를 받으면 this.age변수에 넣어줌
    this.name = name;
    this.age = age;
    this.sex = sex;
  }
}

void main() {
  //생성자에 아규먼트를 넣어 인스턴스 생성하기
  Person p1 = new Person('Tom', 30, 'male');
  Person p2 = new Person('Jane', 27, 'female');
}

named argument

아규먼트가 여러개일 경우, 아규먼트 중 일부만 입력하고 싶은 경우 사용하는 것

//argument를 {}로 묶으면 이제 선택사항으로 바뀜. 아예 하나도 입력 안 해도 됨
Person({String name, int age, String sex})
//원하는 아규먼트만 입력하기
Person p1 = new Person(age:30);

//우리가 썼던 위젯들이 다 생성자로 만든 인스턴였던 것!! 위젯은 인스턴스다
//Dart2.0이후부터는 new를 생략해도 됨
Scaffold (
  appBar: AppBar(
    title: Text('First app'),
  ), //AppBar
  body: Center(
  	child: Column()
  ) //appBar
), //Scaffold
profile
개발기록

0개의 댓글