[TEKHIT] Enum & SealedClass & Reflection
·
TEKHIT ANDROID SCHOOL
출처 : Tekhit Android App School / Soft campus 윤재성 강사님 🎉 열거형(Enum) 프로그램 개발 시 특정 그룹의 구성요소를 정의하는 값이 필요할 때 사용합니다. enum 지시자를 사용합니다. when과 함께 사용시 enum Class에 정의한 모든 경우에 대해 작성해주면 else를 생략 가능합니다. fun main(){ val r1 = getValue1(Direction2.SOUTH) val r2 = getValue2(Direction.EAST) println("r1 : $r1") println("r2 : $r2") } // 열거형 정의 enum class Direction{ NORTH, SOUTH, WEST, EAST } fun getValue2(a1:Direction..
[TEKHIT] 중첩 클래스 & NULL & Casting
·
TEKHIT ANDROID SCHOOL
출처 : Tekhit Android App School / Soft campus 윤재성 강사님 🎉 중첩 클래스(Inner Class) inner 지시자를 사용해 클래스안에 작성하는 클래스 내부 클래스의 객체를 생성하려면 외부 클래스를 통해 참조해야 합니다. class Outer1{ // 프로퍼티 var outerValue1 = 100 // 메서드 fun outerMethod1(){ println("Outer1의 outerMethod1") // println("innerValue : $innerValue1") // innerMethod1() } var innerValue1 = 200 fun innerMethod1(){ println("Inner1의 innerMethod1 입니다") } inner class..
[TEKHIT]Companion & Data Class & Generic
·
TEKHIT ANDROID SCHOOL
출처 : Tekhit Android App School / Soft campus 윤재성 강사님 🎉Companion Object Java의 static Kotlin에서 정적 멤버를 생성하는 클래스 프로그램 전체에서 오직 하나만 만들어 사용하는 변수 객체 생성없이 바로 사용할 수 있는 요소 객체의 멤버로 취급되지 않습니다. fun main(){ println(kotlinValue1) println(kotlinMethod()) } class TestClass2{ companion object{ var kotlinValue1 = 1000 fun kotlinMethod() = println("kotlin Method") } } 🎉 Data Class 객체의 맴버를 보다 쉽게 관리할 수 있게 만든 클래스 data ..
[TEKHIT] Any & This Super
·
TEKHIT ANDROID SCHOOL
출처 : Tekhit Android App School / Soft campus 윤재성 강사님 🎉 Any Kotlin에서 사용하는 모든 클래스의 부모 클래스입니다. 클래스 작성시 상속 관계를 설정하지 않으면 자동으로 Any Class를 상속합니다. 모든 객체는 Any Type에 담을 수 있습니다. 자바의 Object와 같은 기능을 합니다. fun main(){ val a1:Any = TestClass1() val a2:Any = TestClass2() } // 상속 관계를 설정하지 않았지만 Any를 상속받는다. class TestClass1 class TestClass2 🎉 This 객체 자기 자신을 가르키는 키워드 클래스의 프로퍼티와 매개변수의 이름이 같은 경우 이를 구분하기 위해 사용 fun main..
[TEKHIT] Abstract & Interface
·
TEKHIT ANDROID SCHOOL
출처 : Tekhit Android App School / Soft campus 윤재성 강사님 추상 클래스와 인터페이스는 가장 햇갈리기 쉬운 친구들 입니다. 닮아도 너무 닮았죠😮 이 영상의 18분 20초를 보면 설명이 너무 잘 되있어서 한번씩 보시면 너무 좋습니다. 귀찮아서 안보실 분들을 위해 설명드리겠습니다. 추상 클래스 : abstract 지시자를 사용하며 하나 이상의 추상 메소드가 존재합니다. 인터페이스 : Interface 지시자를 사용하며 모든 클래스가 추상 클래스로 구성되있습니다. 차이 : 추상 클래스는 상속을 통해 기능을 재사용하고 확장, 인터페이스는 인터페이스 추상 메소드에 구현한대로 함수의 기능을 강제하기 위해 사용합니다. 🎉 Abstact 추상 메소드 : 간단한 기능만 작성하고 실제로 ..
[TEKIT] 지연 초기화와 오버라이딩
·
TEKHIT ANDROID SCHOOL
출처 : Tekit Android App School / Soft campus 윤재성 강사님 🎉 지연 초기화란 ? 코틀린과 자바의 가장 큰 차이는 코틀린은 개발자가 값을 초기화 하지 않고 사용하는 것을 방지하기 위해 프로퍼티를 정의하면 무조건 값을 지정해 줘야 합니다. 그래서 코드를 수행해 얻은 값을 프로퍼티에 저장해야 하는 경우 프로퍼티에 일단 아무 값이나 넣어두고 이후에 저장해줘야 합니다. 이런 이유로 코틀린에선 지연 초기화를 이용해 프로퍼티를 정의할 때 초기값을 지정하지 않아도 되게 해줍니다. class TestClass1{ var a1:Int = 100 var a3:Int var a4:Int init{ a4 = 400 } constructor(){ a3 = 300 } ] a1 : 초기 값을 지정해..
[TEKHIT] 상속과 프로퍼티
·
TEKHIT ANDROID SCHOOL
출처 : Tekhit Android App School / Soft campus 윤재성 강사님 🎉 상속이란? 하나의 클래스가 다른 클래스의 기능을 물려받는 개념입니다. 클래스를 통해 객체를 생성하면 자식 클래스의 내용과 부모 클래스의 기능을 동시에 가질 수 있습니다. 기능을 물려주는 부모 클래스는 Super Class, 물려 받는 자식 클래스는 Sub Class 라고 합니다. 코틀린에서 부모 클래스의 역할을 할 수 있도록 하겠다면 open 키워드를 붙혀줘야 합니다. open class SuperClass1{ var superA1 = 100 fun superMethod1(){ println("SuperClass1의 superMethod1") } } // class 클래스이름 : 부모클래스이름() class..
[TEKHIT] Constructor
·
TEKHIT ANDROID SCHOOL
출처 : Tekhit Android App School / Soft campus 윤재성 강사님 🎉 생성자란 ? 클래스를 통해 객체를 생성하면 무조건 실행되는 요소 클래스를 통해 객체를 생상하면 무조건 동작해야 하는 코드가 있을 경우 생성자에 만들어줍니다. 생성자는 매개변수의 형태를 다르게 해 여러개를 만들 수 있지만 자동으로 호출되는 생성자는 무조건 한개 입니다 class TestClass2{ // 생성자 constructor(){ println("TestClass2의 매개 변수가 없는 생성자") } // 매개변수의 개수나 타입을 다르게 하면 여러개의 생성자를 제공할 수 있다. constructor(a1:Int, a2:Int){ println("TestClass2의 매개 변수가 있는 생성자") print..