본문 바로가기

프로그래밍 언어

(6)
[Kotlin] 정렬 1. sort() 와 sorted()sort() 는 Mutable 상태에 사용하는 메서드이다.sorted()는 Immutable 상태에 사용한다.List는 Immutable 상태이므로 List에 sort()를 사용하면 오류가 발생한다.반대로 Mutable한 Array에 sorted를 사용하면 문제 없이 정렬이 수행된다. 다만, sort()는 기존에 있던 배열 또는 ArrayList에 정렬을 수행시켜주지만sorted()는 정렬된 배열 또는 리스트를 반환한다.val array = arrayOf(4, 3, 2, 1)array.sort()// array : [1, 2, 3, 4]val array2 = arrayOf(4, 3, 2, 1)val newArray2 = array2.sorted()// array2 : ..
추상 클래스 우리가 기존에 사용하던 클래스의 구조는 다음과 같다. class A { private val a = 0 public fun method(){...} } 당연히 A 클래스에 대한 객체를 생성할 수 있고, 객체에 대한 메서드 또한 문제 없이 사용할 수 있다. 추상 클래스는? 반면 추상 클래스의 구조는 다음과 같다. 필드 일반 메서드 추상 메서드 abstract class A { // 필드 lateinit var name: String val age = 20 fun normalMethod(){...} // 일반 메서드 abstract fun method() // 추상 메서드 abstract fun method2(){...} // 오류 발생 } A를 추상 클래스, method 함수를 추상 메서드라고 한다. 추상..
[Kotlin] 배열과 리스트 복사 코딩을 하다보면 배열 또는 리스트를 복사해야할 일이 생긴다. 기존의 배열은 그대로 두고 새로운 배열을 만들어 데이터 변경을 해야하기 때문이다. 복사에는 두 가지 복사가 있다. 1. 얕은 복사 2. 깊은 복사 얕은 복사 얕은 복사란 주소값이 복사된 것을 말한다. 쉽게 말하자면 변수명만 다르고 내용물은 같은 경우이다. val list = Array(3, {0}) // [0, 0, 0] val list2 = list 위와 같은 경우 list2의 값을 변경하면 list도 같이 변한다. val list = Array(3, {0}) // [0, 0, 0] val list2 = list list2[0] = 1 println(list[0]) // 1 이는 ArrayList, List 모두 같다. 우리가 알고 싶은건 깊..
[JAVA] 인터페이스 기본 개념 자바를 사용하다보면 인터페이스를 사용할 때가 온다. 그럼 인터페이스는 무엇일까? 인터페이스는 일종의 가이드북, 설계도라고 볼 수 있다. 그렇다면 인터페이스는 왜 필요할까? 인터페이스의 필요성 자바에서는 상속이라는 기능이 있다. 상속을 통해 다양한 동작을 수행할 수 있는 장점을 갖는다. 그러나 다중 상속을 할 경우 여러가지 문제 때문에 다중 상속을 할 수가 없다. 따라서 이를 보완하기 위해 인터페이스로 다중 상속을 대체한다. 인터페이스의 구조 인터페이스의 구조는 다음과 같다. interface Example{ public static final String name = "예제"; public abstract void Test(); public abstract void Test2(int a); } 인터페이스..
[Kotlin] 문자열 String 해당 포스팅에서는 문자열을 좀 더 세부적으로 알아본다. 문자열에는 다양한 메서드들이 있다. 그 중 자주 쓰이는 메서드들을 알아보도록 하며, 그 외의 메서드들은 아래 링크를 통해 Kotlin 공식 문서에서 참조 바랍니다. https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/ init var string = "초기화" 문자열 사이에 변수 값 1. $변수 2. ${변수} 1번으로 사용하실 경우, 다음 문자열과 띄어쓰기로 구분해야 한다. val data = "20" val string = "저는 ${data}살 입니다." println(string) println("저는 $data살 입니다.") //에러 : 변수명을 data살로 인식하기에 띄어쓰기를 해주어..
[Kotlin] 코틀린 기초 문법 1. val 과 var 및 자료형 // 변하지 않는 값 val a = 0 // 변하는 값 var b = 0 a = 10 오류 발생 b = 10 Kotlin에서는 Java와 마찬가지로 자료형을 선언해 주어야 한다. 형태는 다음과 같다. val a : 자료형 = 값 값을 선언해 주었다면 자료형은 생략해도 상관없다. val a : Int = 0 val b = 0 var string : String = "test" var string = "test 2. 입·출력 및 String템플릿 입력은 readLine(), 출력은 print(), println() 메서드를 사용한다. var name = readLine() print("안녕? 나는 $name 이야!") // 줄 바꿈 x println("안녕? 나는 $name..