티스토리 뷰

0728_Flutter_class와 widget의 이해

class ans Widget

 

1. class = 설계 도면의 의미

객체에 대한 속성 및 기능이 들어가 있어야 함

  • 속성 : 예)액정, 카메라 모듈, 홈버튼, 스크린
  • 기능 : 예)전화 걸기, 사진찍기, 인터넷 검색 등

 

2. 인스턴스 = 설계 도면으로 만들어진 스마트폰 각각 하나를 뜻함 (예시)

class를 기반으로 생성 됨

class의 정의된 속성과 기능으로 만들어진 사물을 뜻함

 

3. 프로그래밍 상에서의 객체

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

 

4. 기본 문법

// *This is a comment.*

  • 코멘트 작성 할 때 // 사용하면 됨

void

  • 사용하지 않은 값을 나타내는 특수 형식입니다.
  • 아무것도 반환하지 않는 함수 타입
  • 값을 명시적으로 반환하지 않는 함수에는 반환 형식이 있습니다.printInteger()``main()``void

int

  • 정수를 나타냄

42

  • 숫자 리터럴. 숫자 리터럴은 컴파일 타임 상수의 일종

print()

  • 출력을 표시하는 편리한 방법입니다.

'...' (또는 "...")

  • 문자열 리터럴

$*variableName* (또는 ${*expression*})

  • 문자열 리터럴 내부에 해당하는 변수 또는 표현식의 문자열을 포함

main()

  • 앱 실행이 시작되는 최상위 기능

var

  • 형식을 지정하지 않고 변수를 선언하는 방법입니다.
  • 이 변수의 형식()은 초기 값()에 의해 결정됩니다.int``42

출처 : 언어 투어 | 뛰어가다 (dart.dev)

 

5. type 추론 기능
  • 다트 내의 모든 것은 type을 가지고 있어야 함
  • 타입 추론이 가능한데, 타입을 지정해주는 이유?
    • 오류를 잡아줄 수 있기 때문에 지정해주는 것이 좋음
class Person{
   String name = 'seeun'; // 변수명 선언 // 변수명 앞에 string으로 type을 선언해줌 
   int age ;
   String sex ;
  }

addNumber (int num1, int num2){
  return num1 + num2;
  
} //함수명 뒤에는 반드시 괄호가 등장해야 하며 {}로 함수의 body를 만들어준다. //body에는 함수가 실행할 기능 정의


void main(){//void는 아무것도 
  Person p1 = new Person(); //person클래스로 p1이라고 불리는 인스턴스를 생성한다. //person() = 생성자 //생성자가 없으면 인스턴스를 생성할 수 없음 
  
  p1.age = 30;
  print(p1.age);
  
  addNumber(3,4); //2개의 숫자를 더한 값을 구해야 함으로 3,4를 넣어줌 
  print(addNumber(3,4));
}
class Person{
  String name;
  int age;
  String sex;
  
  Person(String name, int age, String sex){
       //this : 두 변수명이 같은 경우 dart는 구분을 할 수 없기 때문에 이 경우에 this를 사용해야함
        this.name = name;
        this.age = age;
        this.sex = sex;
 }
}


void main(){
  Person p1 = new Person('seeun', 25, 'female' );
  Person p2 = new Person('Mark', 23, 'male');
  
  print(p1.age);
  print(p2.age);
  
}

 

5. named argument

1) 개념

생성자의 argument개수가 많은데, 2-3개 정도 입력 받고 싶을 경우에 현재 생성자는 argument가 몇 개 이건 순서 그대로 입력해야 하고, 필요한 argument만을 따로 불러서 입력 받을 수도 없다.

이를 해결하기 위한 방법이 named argument

2) 방법

  • 생성자 (person)이 가지고 있는 argument들을 중괄호로 묶어줌
class Person{
  String name;
  int age;
  String sex;
  
  Person({String name, int age, String sex}) 
  // 생성자가 가지고 잇는 argument들이 중괄호로 묶임 
  • 위 단계에 따라, argument들은 모두 선택사항으로 바뀜
  • 따라서 인스턴스를 생성할 때, argument 값을 입력하지 않아도 됨

  • 원하는 argument 값만 입력 가능해짐 (순서도 상관없음)
  • 즉, 선별적으로 사용 가능해짐
class Person{
   String name;
   int age;
   String sex;
  
   Person({String name, int age, String sex}){
    this.name = name;
    this.age = age;
    this.sex = sex;
  }
}


void main(){
  Person p1 = new Person(age:30); //원하는 argument 값만 입력
  Person p2 = new Person(sex;'female');
  
  print(p1.age);
  print(p2.sex);
}

 

출처 : 유튜브_코딩셰프

 

'Flutter > practice' 카테고리의 다른 글

Flutter_app bar icon button  (0) 2021.07.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함