728x90
반응형
안녕하세요
이번 포스팅은 코틀린에서의 클래스 사용에 대해 다뤄보겠습니다
클래스를 사용할 때는 먼저 객체 지향 프로그래밍(OOP)에 대해 알아야합니다
객체란? --> 이름이 있는 모든 것을 의미하죠
객체 지향 프로그래밍의 반댓말이 있죠
절차 지향 프로그래밍인데요, 코드를 위에서부터 아래로 실행하여 순차적으로 진행되는 프로그래밍입니다.
객체 지향 프로그래밍은 객체를 만들어서 객체에게 일을 시켜서 해결하는, 절대적인 순서에 상관없이 객체로 프로그래밍을 하는 방식입니다
ex) 선수, 심판, 경기장, 관중 -> 축구 게임 등
클래스를 선언하는 방법은 여러가지가 있습니다.
1. 클래스 내에 어떠한 필드나 메서드가 없이 선언하는 방법입니다.
//클래스(설명서) 만드는 방법 (1)
class Car constructor(var engine: String, var body: String) {
}
2. 클래스 내에 필드가 있고, 필드를 초기화하는 생성자가 있는 방법입니다.
class SuperCar {
var engine : String
var body : String
var door : String
// 생성자
constructor(engine: String, body: String, door : String) {
this.engine = engine
this.body = body
this.door = door
}
}
3. 생성자를 부분적으로 초기화하는 방법입니다.
class Car1 constructor(engine: String, body: String) {
var door : String = "" // 초기화 해줘야 에러가 안남
// 생성자
constructor(engine: String, body: String, door: String) : this(engine, body) {
this.door = door
}
}
4. 생성자를 오버로딩하여 초기화하는 방법입니다.
class Car2 {
var engine : String = ""
var body : String = ""
var door : String = ""
constructor(engine: String, body: String) {
this.engine = engine
this.body = body
}
constructor(engine: String, body: String, door: String) {
this.engine = engine
this.body = body
this.door = door
}
}
5. 클래스 내에 메서드를 쓰는 방법입니다.
class RunableCar(engine: String, body: String) {
fun ride() {
println("탑승 하였습니다")
}
fun drive() {
println("달립니다!")
}
fun navi(destination : String) {
println("$destination 으로 목적지가 설정되었습니다.")
}
}
6. init을 사용하여 인스턴스 생성 시 제일 먼지 실행하는 문장을 만든 방법입니다.
class RunableCar2 {
var engine : String
var body : String
constructor(engine: String, body: String) {
this.engine = engine
this.body = body
}
init {
println("RunableCar2가 만들어졌습니다.")
}
fun ride() {
println("탑승 하였습니다")
}
fun drive() {
println("달립니다!")
}
fun navi(destination : String) {
println("$destination 으로 목적지가 설정되었습니다.")
}
}
7. 메서드를 오버로딩할 수도 있습니다.
class TestClass() {
fun test(a : Int) {
println("up")
}
fun test(a: Int, b : Int) {
println("down")
}
}
다음은 메인함수입니다.
fun main(args : Array<String>) {
// 클래스 (설명서)를 통해서 만드는 방법
// -> 인스턴스화 -< 인스턴스(객체)
Car("v8 engine", "big")
val number : Int = 10
var bigCar = Car("v8 engine", "big")
// 우리가 만든 클래스(설명서)는 자료형이 된다.
var bigCar1 : Car = Car("v8 engine", "big")
var superCar : SuperCar = SuperCar("good engine", "big", "white")
// 인스턴스가 가지고 있는 기능을 사용하는 방법
var runableCar : RunableCar = RunableCar("simple engine", "short body")
runableCar.ride()
runableCar.navi("부산")
runableCar.drive()
// 인스턴스의 멤버 변수에 접근하는 방법
val runableCar2 : RunableCar2 = RunableCar2("nice engine", "long body")
println(runableCar2.body)
println(runableCar2.engine)
val testClass : TestClass = TestClass()
testClass.test(1)
testClass.test(1,2)
}
728x90
반응형
'모바일 > Kotlin' 카테고리의 다른 글
[Kotlin] 클래스(Class) 실습 은행 계좌 만들기 (0) | 2021.04.09 |
---|---|
[Kotlin] 클래스(Class) 실습 계산기 만들기 (0) | 2021.04.09 |
[Kotlin] 코틀린 실습(두 개의 리스트, 학점 계산기, 두 자릿수의 합, 구구단) (0) | 2021.03.31 |
[Kotlin] 코틀린 반복문 (0) | 2021.03.31 |
[Kotlin] 코틀린 Collection(List, Set, Map) (0) | 2021.03.30 |
댓글