꾸준히 하고싶은 개발자

5일차 class 본문

모두의연구소

5일차 class

프라우스 2023. 12. 1. 21:43

class

가상세계 : 메모리 영역

메모리에 할당이 되면 객체의 주소가 지정된다.

인스턴스 : heap 영역 안에 확보된 메모리

Dart는 모든 타입이 레퍼런스 타입이다.

컴파일시 크기가 결정 :code Data BSS(Blocked stated

실행중 메모리 할당 :heap , stack

required

공부을 더하고 정리해서올리겠습니다.

static

class 와static은 서로 관계없다.

인스턴스없어도 선언이 가능하다.

정적이다.

Top level

dart 파일 최상단에 선언 변수 ->(class 보다 위에있다.)

  1. 클래스와 static 변수 서로 관계가 없다 .

 

수업 내용 및 몰랐던 내용

1.삼항연산자

(조건) ? true : false ;

num = ( num < 10 )? true ? false

 위 코드를 if으로 아래와 같이 반환하면 

if ( num < 10) {
	true;
}else{
	false;
}

위와 같이 사용이 가능하다.

단 다중상속에서는 가독성이 떨어진다. 그래서 다른 if 문이나 witch 구문을 이용하자 

2.GPT 와 Bing

개발 시간을 줄일수있으나 너무 맹신하지 말자 

연산자 

* / + - 와 같이 우선순위 이 가 있다 . dart 에서도  우선순위 연산자14개 를 다 외우는 지 말고 GPT 물어보자 사람과 토의 해서 해도 좋다.

 

네이밍 코드 컨밴션

pperCamelCase

class enum types type defs 등등 각단어의  첫글자를 대문자로 사용해야한다 구분기호를 사용하지 않아야한다.

internationalization ⇒ I18N 

카멜

주석(comment)

주석 또는 코멘트(comment)는 프로그래밍에 있어 내용을 메모하는 목적으로 쓰인다.

 

// //한줄주석
/* */ 여러줄 주석
/// 문서화 된 주석

5.함수 Functions

Dart 객체지향언어 이므로 함수 Functionㄴ 타입을 가지는 객체로 존재한다. → 함수나 변수나 다른 함수의 인자 로 전달 수있다는 의미다.

Dart 클래스의 인스턴스를 함수인 것처럼 호출할 수 있습니다.

bool isNoble(int atomicNumber) {
  return _nobleGases[atomicNumber] != null;
}

isNoble(atomicNumber) {
  return _nobleGases[atomicNumber] != null;
}

위와 아래와 같이 타입 어노테이션을 추천하지만 타입을 생략 해도 함수 작동하며 초보자 에경우 타입 꼭 명시 하는게 좋다.

 

람다식 

복잡하지 않는 함수에서 사용한다

arrow 라고하기도 한다.

// 더하는 함수 추가하기
void addNum(int a int b){
	return a+b;
}

void addNum(int a int b) => a+b;

람다식 을 이용하면  간단한 코드에 좋다. 

 

Top level 탑 레벨

매개변수

함수에서 required Positional parameters 를 얼마든지 가질수있 있다. 이 매개변수들은 named parameters optional positional parameters 의 뒤에 나온다. 둘다 사용이 불가능하다.

Named 매개변수

Named 매개변수는 required로 표시되지 않는 이상 선택적인 매개변수입니다.

함수 정의 할때 매개변수를 사용하여 named 매개변수를 표시하고 디폴트 값이 제공이 하지 않고

named parameters 를 required 표시하지 않으면 해당하는 매개변수의 타입은 디폴트값이 null 되서 nullable을 지정해야한다.

 

플러그인 설치

Android Studio → settings → plugins → Dart Data class 설치하면 된다 적용이 안될지도 모르나 껏다 키자

확인 하기 Named Argument Constructor하면 자동으로 required 생성자 만든다.

 

heap

Heap의 경우에는 동적으로 할당된 메모리 영역이다.

힙영역에서 모든 object 타입의 데이터 가 할당이된다.참고로 모든 객체는 object 타입을 상속받는다.

모든 메모리 stack에 쌓이는 공간 이외에 전부 heap 영역에 쌓인다.

 

Stack

Stack의 경우에는 정적으로 할당된 메모리 영역이다.

Primitive type (boolean String int double )등등 데이터가 값이랑 같이 할당이 되고

Heap 영역에서 생성된 object 타입의 데이터의 참조 값이 할당 된다.

 

'모두의연구소' 카테고리의 다른 글

6일차 컬렉션  (0) 2023.12.04
Final 과 const  (1) 2023.12.03
day 4일차 클래스 개념  (0) 2023.11.30
2일차 class  (1) 2023.11.29
1일차프로그래밍이란  (0) 2023.11.29