728x90
반응형
# Class
● 절차지향 프로그래밍
코드를 위해서 아래로 실행하면서 진행한다.
● 객체지향 프로그래밍
객체를 만들어 객체에 데이터를 저장하고 일을 하게 만든다.
객체는 설명서(Class)가 꼭 있어야 한다.
● 클래스 만드는 방법
예시 1)
class Car constructor(var engine: String, var body: String){ // 필드가 두개가 존재한다.
}
fun main(array: Array<String>){
// 1. 객체(인스턴스) 생성 방법
var myCar = Car("V8 engine", "pretty")
// 2. 객체(인스턴스) 생성 방법
var bigCar: Car = Car("V8 engine", "pretty")
}
예시 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
}
}
fun main(array: Array<String>){
var superCar: SuperCar = SuperCar("good engine", "fast", "4door")
}
예시 3) 예시 1의 확장
class Car1 constructor(engine: String, body: String){
var door: String = "" // 넣어도되고 안넣어도됨
constructor(engine: String, body: String, door: String) : this(engine, body){
this.door = door
}
}
예시 4) 예시 2의 확장
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 go(){
println("앞으로 갑니다.")
}
fun navi(destination: String){
println("$destination 으로 목적지가 설정되었습니다.")
}
}
fun main(array: Array<String>){
var runableCar1: RunableCar = RunableCar("simple engine", "short body")
runableCar1.go()
runableCar1.navi("부산")
}
예시 6)
class RunableCar2 {
var engine: String
var body: String
constructor(engine: String, body: String){
this.engine = engine
this.body = body
}
// 객체가 생성될 경우 가장 먼저 실행되는 것이다.
init{
println("자동차 검사를 실행합니다.")
}
fun go(){
println("앞으로 갑니다.")
}
fun navi(destination: String){
println("$destination 으로 목적지가 설정되었습니다.")
}
}
fun main(array: Array<String>){
var runableCar2: RunableCar2 = RunableCar2("nice engine", "long body")
println(runableCar2.engine)
println(runableCar2.body)
}
예시 7) 메소드 오버로딩
class Student(){
fun regist(userid: String){
println("$userid 학생")
}
fun regist(userid: String, name: String){
println("$name 학생")
}
}
fun main(array: Array<String>){
val student1 = Student()
student1.regist("apple")
student1.regist("banana", "반하나")
}
728x90
반응형
'🎨 Programming > Android(Kotlin)' 카테고리의 다른 글
[Kotlin] 9. 변수의 접근 범위 & 접근 제한자(Access Modifier) (0) | 2020.12.01 |
---|---|
[Kotlin] 8. 은행 계좌 만들기 (예시) (0) | 2020.12.01 |
[Kotlin] 중간 점검 - 문제 풀이 (0) | 2020.12.01 |
[Kotlin] 6. Collections : Iterators (0) | 2020.12.01 |
[Kotlin] 5. 컬렉션(Collection) (0) | 2020.12.01 |