[Lecture] Kotlin 문법 종합반 KDT 실무형 Android 앱개발자 1회차 (3주차)

Minjun Kim·2023년 7월 17일
0
post-thumbnail

클래스 종류

1. 데이터 클래스 (data class)

1) 프로퍼티 만 가지고 있는 클래스
2) 기본 생성자1개 이상의 매개변수 가 변수나 상수로 존재함
3) 유용한 매소드를 자동으로 생성함
- hashCode() : 객체를 구분하기 위한 고유값을 리턴해줌
- eauals() : 동일한 객체인지 비교해서 true 또는 false를 리턴해줌
- copy() : 현재 객체의 모든 정보를 복사해서 새로운 객체를 리턴해줌
- toString() : 현재 객체의 모든 정보(프로퍼티)를 예쁘게 출려해줌
- getXXX()/setXXX(매겨변수) : 변수의 값을 리턴하거나 설정해줌

ex) data class 클래스이름 {
		정보1
    	정보2
	}

2. 실드 클래스 (sealed class)

1) 상속 과 관련된 개념
2) 상속받을 수 있는 자식클래스를 미리 정의 -> 무분별한 상속 방지
3) 컴파일 시점에 생성할 수 있는 자식을 알 수 있어 효율적으로 다형성을 구현

ex) sealed class 부모클래스 {
	class 자식클래스1 : 부모클래스생성자
	class 자식클래스2 : 부모클래스생성자
	}

3. 오브젝트 클래스 (object class)

1) 프로그램을 실행하는 동시에 인스턴스화 -> 객체명으로 매소드 사용


생성자

1. 주생성자

1) 생략 or nit() {}
2) 생성자가 단 1개 만 만들어짐 -> 이 생성자가 받는 매개변수만 사용 가능

2. 부생성자

1) constructor() {}
2) 여러 개 의 생성자를 만들어, 클래스 호출 시 원하는 생성자를 선택할 수 있음
3) 매개변수의 개수와 자료형 으로 구분됨

두 생성자의 차이?
-> 클래스가 넘겨받는 인자의 차이


3. 상속

1) 다른 언어들과 달리 생략된 final 키워드로 기본적으로 상속을 막아둠 -> 무분별한 상속 방지
2) open 키워드를 활용


4. 오버라이딩

1) 코틀린은 OOP언어이고 OOP 관점 을 지향함
2) 일관성을 유지하여 재사용과 유지보수의 효율
3) 단축키 : Ctr + O (Windows) / Cmd + O (Mac)


5. 오버로딩

1) 매개변수의 개수와 자료형 으로 구분, 반환타입은 x
2) 합을 구하는 add매소드에서 정수, 실수 모두 관리하고 싶음 -> 오버로딩 사용
2) 왜 필요한가? -> 유지보수


6. 인터페이스

1) 코틀린은 반드시 1개의 부모 클래스 만을 가짐 -> 가장 근본적인 특성만 상속해야함
2) 추가적인 기능들을 인터페이스 로 추가 가능
3) 추상 메소드만 작성하는게 원칙이지만, 최근에는 아니어도 됨

profile
응애 나 아기 뉴비

3개의 댓글

comment-user-thumbnail
2023년 7월 17일

아주 유익한 내용이네요!

1개의 답글
comment-user-thumbnail
2023년 7월 17일

아주 유익한 내용이네요!

답글 달기