일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kotlin
- 프로그래머스
- lateinit
- class
- kotlin addview
- 코틀린 내부 클래스
- Kotlin Generic
- 코틀린 제너릭
- kotlin collection
- 코틀린 lateinit
- 해시
- kotlin recyclerview
- collection function
- 코틀린 람다함수
- 코틀린 data class
- kotlin listview
- isNullOrBlank
- 코틀린 컬렉션함수
- 코틀린 문자열
- 프로그래머스 #탐욕법 #큰수만들기 #join #python
- 내용의동일성
- 컬렉션함수
- add view
- kakao blind
- programmers # 프로그래머스 #큰수비교 #cmp_to_key()
- 코틀린 중첩클래스
- 객체의 동일성
- 컬렉션 함수
- 코틀린
- 카카오 순위검색
- Today
- Total
엔지니어 규의 IT 프로그래밍 다이어리
[Kotlin]7. 클래스의 기본 구조 본문
클래스
클래스란 '값' 과 그 값을 사용하는 '기능' 들을 묶어놓은것이다.
우리가 지금까지 배운 여러가지 자료형 들 역시 Kotlin 내부에서는 모두 class 로 이루어져 있다.
클래스 = 속성(고유의 특징값) + 함수(기능의 구현)
또한 클래스는 '인스턴스' 를 만드는 틀이라는 점을 이해 해야 한다.
인스턴스란 클래스를 이용해서 만들어 내는 서로 다른 속성의 객체를 지칭하는 용어 이다.
갑자기 객체, 인스턴스, 클래스 라는 용어가 등장해서 햇갈릴수 있다.
쉽게 생각하면 속성이 있으며, 행위를 할 수 있는 것들은 객체라고 할 수 있다.
자동차는 객체다.
자동차는 핸들,바퀴,창문 등등.. 의 속성이 있고,
이동,창문내리기,에어컨, 음악틀기, 네비게이션 등등 의 기능이 있다.
신용카드 역시 객체다.
신용카드는 마그네틱, 숫자, 생성일, 카드주인.. 등등의 속성이 있고
결제 기능이 있다.
인스턴스란 무엇일까?
클래스에 의해 객체가 선언되어 실체가 되면 이것을 인스턴스라고 한다.
너무 어렵다면 객체 = 인스턴스 라고 생각하면 편하다.
정리하자면
객체(Object)는 소프트웨어 세계에 구현할 대상이고,
이를 구현하기 위한 설계도가 클래스(Class)이며,
이 설계도에 따라 소프트웨어 세계에 구현된 실체가 인스턴스(Instance)이다.
이해가 안될수 있으니 간단하게 사람의 이름과 출생년도를 관리하는 클래스를 생성해보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
fun main(){
var a = Person("박보영",1994)
var b = Person("김종국",1990)
var c = Person("이나영",1998)
println(a.name) //박보영
println("안녕하세요 저의 이름은 ${a.name}이고 ${a.birthyear} 년생입니다.")
// 안녕하세요 저의 이름은 박보영이고 1994 년생입니다. b.introduce() // 안녕하세요 저의 이름은 김종국 이고 1990 년생입니다.
}
class Person(var name: String, var birthyear: Int){
fun introduce(){
return println("안녕하세요 저의 이름은 ${name} 이고 ${birthyear} 년생입니다.")
}
}
|
cs |
위에서 박보영, 김종국, 이나영 을 Person class 로 세사람의 인스턴스를 만들었다.
var a = Person("name", "birthyear") 처럼 Person class 에 속성을 넣으면, var a 에는 Person class 의 인스턴스가 할당된다.
변수 = class 이름( class 속성1, 속성2,...) 순으로 클래스의 인스턴스를 생성한다.
println("안녕하세요 저의 이름은 ${a.name}이고 ${a.birthyear} 년생입니다.")
와 같이 자기소개를 하는 기능이 필요하다고 가정할때, 이것을 매번 반복해서 적는것이 굉장히 귀찮은 일이다.
그래서
변수명.속성명 (a.name) 으로 인스턴스의 속성을 불러올 수 있으며
변수명.메소드(b.introduce()) 으로 인스턴스의 메소드를 불러 올 수 있다.
코틀린은 객체지향 언어를 기반으로 함수형 언어의 장점을 흡수한 실용적 언어이다.
객체지향의 기본이 되는 클래스를 이해하는것은 프로그래밍 에서 굉장히 중요하다.
'프로그래밍 언어 > 코틀린' 카테고리의 다른 글
[Kotlin]9. 클래스의 상속 (0) | 2022.05.10 |
---|---|
[Kotlin]8. 클래스의 생성자 (0) | 2022.05.09 |
[Kotlin]6. 흐름제어와 논리 연산자 (0) | 2022.05.04 |
[Kotlin]5. 반복문과 증감연산자 (0) | 2022.05.04 |
[Kotlin]4. 조건문과 비교 연산자 (0) | 2022.05.01 |