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] Card GameKotlin 2022. 9. 14. 16:24
-kind 와 number 를 멤버변수로 만들고 생성자에 전달된 값으로 멤버변수의 값을 대입하는 기본(대표)생성자를 이용. -전달인수가 없는 보조 생성자도 생성. -그 외 사항은 코틀린 코드를 이용하여 이전클래스와 같은 동작(toString의 오버라이드)을 할 수 있게 적절히 처리. -spade, diamond, heart, clover 변수는 자바의 static 처럼 생성 // Class - Card.kt class Card constructor( var kind:Int, var number:Int){ constructor():this( 4 , 1){} companion object{ val spade = 4 val diamond = 3 val heart = 2 val clover = 1 } overr..
-
[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. 부모 클래스 참조변수에 자식 클래스의 인스턴스를 저장 // 스..