분류 전체보기
-
[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. 부모 클래스 참조변수에 자식 클래스의 인스턴스를 저장 // 스..
-
[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..
-
[Kotlin] InterfaceKotlin 2022. 9. 14. 15:46
package days02 fun main(){ val obj31 = TestClass31() // Inter1 을 상속(구현)받은 자식클래스 val obj32 = TestClass32() // Inter2 를 상속(구현)받은 자식클래스 val obj33 = TestClass33() // Inter1, Inter2 을 상속(구현)받은 자식클래스 obj1.inter1_Method1() obj1.inter1_Method2() obj2.inter2_Method1() obj2.inter2_Method2() obj3.inter1_Method1() obj3.inter2_Method1() obj3.inter1_Method2() obj3.inter2_Method2() // 부모중 해달 인터페이스가 있는 객체만 전달인수..
-
[Kotlin] AbstractKotlin 2022. 9. 14. 15:43
package days02 fun main(){ // val obj1 = Super1() // 추상클래스만의 객체생성은 불가능 val obj1 = Sub1() obj1.method1() obj1.method2() println() val obj2 = Sub2() obj2.method1() obj2.method2() println() testFuntion(obj1) testFuntion(obj2) } // 부모클래스의 참조변수가 멤버변수로 있기때문에, 그 자식 클래스의 객체를 전달인수로 전달 가능 fun testFun1(obj1:Super1){ obj1.method1() obj1.method2() } // 추상클래스: 상속을 위한 클래스. 멤버메서드의 override에 강제성을 부여하기위해 사용 open ..