kotlin
-
[Kotlin] NullExceptionKotlin 2022. 9. 14. 16:32
NullPointException - Java 언어로 소프트웨어를 개발하다 보면 NullPointerException 이라는 오류를 자주 만나게 됨. 이는 객체의 주소 값이 담겨져 있지 않는 (null 값이 들어있는) 참조 변수를 통해 객체 접근을 시도하면 발생되는 오류. Null Safe - Kotlin은 개발자가 null이 담겨 있는 참조변수를 통해 객체 접근을 시도할 때 오류가 발생되는 것을 방지하고자 다양한 방법을 제공하고 있음. 이를 통해 null 값에 대한 안정성을 확보(null safe)할 수 있음 자료형? - null을 허용하는 자료형으로 지정 변수명!! - null을 허용하지 않는 형태로 변환. 변수명?: - null이라면 지정된 기본값이 반환 변수명?. – 메서드 호출 시 변수값이 nu..
-
[Kotlin] DataClassKotlin 2022. 9. 14. 16:29
- DataClass는 매개체의 데이터를 관리하는 용도로 사용하는 클래스 - DataClass는 자바에서의 dto 에 lombok 을 적용한것과 거의 비슷. 상속될수 없고, 추상클래스로 만들수 없으며 단독으로만 사용이 가능한 클래스 - abstract, open, sealed, inner 클래스로 정의할 수 없음. 반드시 주 생성자를 가지고 있어야 함 - Data Class 는 개발자의 개발 편리성을 위해 몇 가지 메서드가 자동으로 구현됨 - equals : 객체가 가지고 있는 변수를 모두 비교하는 메서드 - hashCode : 객체를 구분하기 위한 고유한 정수값 - copy : 객체를 복제하는 메서드 - toString : 객체가 가지고 있는 변수의 값을 출력 - componentN : 객체 분해 - ..
-
[Kotlin] Ex(Product, Repairable)Kotlin 2022. 9. 14. 16:26
Product // Product.kt fun main(){ val tv = Tv() val computer = Computer() val audio = Audio() val buyer = Buyer() buyer.buy(tv) buyer.buy(computer) buyer.buy(audio) buyer.summary() buyer.refund(audio) buyer.summary() } // Product 클래스는 부모클래스 // 멤버변수 prince, bonusPoint를 대표생성자로 생성 // 보조생성자는 price 값만 전달하는 함수로 제작 open class Product constructor(val price:Int, val bousPoint:Int){ constructor( p:Int ):t..
-
[Kotlin] SetKotlin 2022. 9. 14. 16:22
Set: 중복된 객체를 담을 수 없는 컬렉션. 순서에 관계 없고 중복된 객체를 담지 않을 경우 사용 Set 생성 - setOf : 불변형 set을 생성 - mutableSetOf : 가변형 set을 생성 val set1 = setOf(1, 5, 10, 1, 5, 10) println("set1 : $set1") val set2 = mutableSetOf() println("set2 : $set2") 요소의 접근 // println("set1 0 : ${set1.get(0)}") // 순서 및 인덱스가 없으므로 에러 // println("set1 1 : ${set1[1]}") // 순서, 인덱스, 중복이 없으므로 에러 // Set 의 접근은 반복실행문으로... for(item in set1){ printl..
-
[Kotlin] MapKotlin 2022. 9. 14. 16:20
Map : Key 와 Value 로 데이터를 관리하는 컬렉션 -mapOf : 불변형 Map을 생성 -mutableMapOf : 가변형 Map을 생성 fun main(){ // : String-key 값의 자료형 Int-value 값의 자료형 val map1 = mapOf("key1" to 10, "key2" to 20, "key3" to 30) println("map1 : $map1") val map2 = mutableMapOf() println("map2 : $map2") // : String-key 값의 자료형 Any-value 값의 자료형 val map3 = mapOf("key1" to 10, "key2" to 11.11, "key3" to true) println("map3 : $map3") } ..
-
[Kotlin] ListKotlin 2022. 9. 14. 15:58
코틀린의 컬렉션 -List : 순서를 통해 관리 -Map : 이름을 통해 관리 -Set : 집합 관리 List -배열과 동일하게 인덱스 번호를 통해 객체를 관리 -배열을 크기가 정해지면 변경할 수 없지만 List는 추가, 삭제 등이 가능 List 의 생성 -listOf : 불변형 리스트 생성 -mutableListOf : 가변형 리스트 생성 -emptyList : 비어있는 불변형 리스트를 생성 -listOfNotNull : null을 제외한 나머지만으로 리스트를 생성 fun main(){ val list1 = listOf(10,20,30,40,50) val list2 = listOf( "문자열1", "문자열2", "문자열3") println("list1 : $list1") println("list2 : ..
-
[Kotlin] TypeCastingKotlin 2022. 9. 14. 15:51
기본 자료형 클래스 간의 형변환 fun main() { var a1:Int = 100 //var a2:Double = a1 -> error var a2:Double = a1.toDouble() var b1:Double = 123.12 // var b2:Int = b1 var b2:Int = b1.toInt() var c1:String = "12234" var c2:Int = c1.toInt() var d1:String = "122.34" var d2:Double = d1.toDouble() // val d3:String = "안녕하세요"; val number4:Int = d3.toInt() -> error } fun main() { // 1. 부모 클래스 참조변수에 자식 클래스의 인스턴스를 저장 // 스..
-
[Kotlin] CompanionKotlin 2022. 9. 14. 15:48
자바에서 static으로 사용되던 키워드가 companion이라는 키워도로 바꿔서 사용됨. 다만 static은 각 변수나 메서드에 각각 붙여서 사용하지만 companion은 영역을 만들고 그 안에 정적 멤버로 사용할 변수나 메서드를 다 넣음. fun main(){ // 인스턴스 멤버변수 또는 인스턴스 멤버 메서드의 가장 큰 특징은 // 객체가 생성되지 않으면, 사용할수가 없음 val obj1 = TestClass() println("obj1.a1 : ${obj1.a1}") obj1.testFun1() obj1.a1 = 200 println("obj1.a1 : ${obj1.a1}") // companion 영역에 선언된 멤버들은 객체 생성없이, '클래스 이름과 함께 바로 사용'이 가능 println("Te..