본문 바로가기
  • 개발하는 곰돌이

Programming Language/Kotlin & Java28

Kotlin 기본 문법 8 : 정적 변수와 정적 메소드(feat. companion object) 목차 개요 정적 변수와 정적 메소드는 클래스에 고정된 채로 프로그램이 실행될 때 클래스와 함께 메모리에 적재되어 객체를 생성하지 않고 호출할 수 있는 변수와 메소드를 의미한다. 이러한 정적 변수와 정적 메소드는 해당 클래스의 모든 객체가 공유하여 어디서든 참조가 가능하다. 이 포스트에서는 Kotlin에서 정적 변수와 정적 메소드를 선언하고 다루는 방법에 대해 정리한다. Kotlin에는 static 키워드가 없다 Java에서는 클래스 내부의 변수나 메소드 앞에 static을 붙이기만 하면 정적 변수나 정적 메소드로 선언할 수 있다. 하지만 Kotlin에서는 static이 존재하지 않고 다른 두 가지 방법으로 정적 변수와 정적 메소드를 작성할 수 있다. companion object Kotlin에서 정적 변.. 2022. 12. 14.
Kotlin 기본 문법 7 : 추상 클래스/인터페이스와 클래스의 상속 목차 개요 Kotlin도 Java와 마찬가지로 추상 클래스와 인터페이스가 존재하고 클래스에서 다른 클래스를 상속하거나 인터페이스를 구현할 수 있다. 이번 포스트에서는 Kotlin의 추상 클래스/인터페이스와 클래스의 상속에 대해 정리한다. Kotlin의 추상 클래스 Kotlin의 추상 클래스는 Java와 마찬가지로 abstract class 키워드를 사용하여 작성한다. 추상 클래스를 작성하는 방법은 일반적인 클래스를 작성하는 것과 동일하게 작성하고 class 대신 abstract class를 사용하면 된다. 클래스를 작성하는 기본적인 방법을 제외하면 Java와 같다. // Java abstract class Animal { String name; public Animal(String name) { this.. 2022. 12. 13.
Kotlin에서 두 객체의 비교(CompareTo) 개요 Java에서는 두 객체를 비교하려면 Comparable 인터페이스의 CompareTo() 메소드를 구현하여 객체를 비교해야 했다. Kotlin에서도 마찬가지로 두 객체를 비교하려면 Comparable 인터페이스의 CompareTo() 메소드를 구현해야 하는것은 동일하지만 이 과정만 수행해놓으면 훨씬 직관적으로 두 객체를 비교할 수 있다. 이에 대해 알아보도록 하자. Comparable 인터페이스의 CompareTo() 메소드는 현재 객체와 파라미터로 받은 객체 사이의 특정 연산을 통해 결과가 양수이면 현재 객체가 더 크고, 결과가 음수이면 현재 객체가 더 작다고 판별한다. Java에서의 두 객체 비교 Java에서 두 객체를 비교하려면 객체의 클래스에서 Comparable 인터페이스의 CompareT.. 2022. 12. 9.
Kotlin에서 한 줄로 받은 입력을 여러개의 변수에 할당하는 방법(구조 분해) Java에서는 한 줄로 받은 입력을 여러개의 변수에 할당하려면 Scanner 클래스의 next()로 변수마다 하나씩 할당해주거나 BufferedReader 클래스의 readLine()으로 한 줄을 입력받은 후 split()이나 StringTokenizer로 입력을 분할하여 하나씩 할당해줘야 했다. 하지만 Kotlin에서는 똑같이 한 줄로 입력을 받았을 때, 최대 5개까지의 변수를 한 줄의 코드로 할당할 수 있다. Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int d = sc.nextInt(); int e = sc.nextInt(); BufferedReader br .. 2022. 12. 8.
Kotlin 기본 문법 6 : 클래스와 접근 지정자 목차 개요 Kotlin은 JVM 기반이면서 객체지향 프로그래밍을 추구하는 언어인 만큼 클래스를 통해 객체를 생성하여 사용한다. 클래스와 객체의 차이는 아래와 같다. 클래스 : 객체들의 공통된 특성을 정의해놓은 틀 객체 : 클래스를 이용하여 생성하여 각자의 속성을 가진 개체 클래스와 객체의 예를 들면 다음과 같다. 자동차라는 클래스가 있으면 차종, 자동차번호 등은 모든 자동차가 공통적으로 갖는 특성이다. 이렇게 공통적으로 갖는 특징적인 값을 필드(field)라고 한다. 또한 모든 자동차는 운행, 세차 등의 행위를 할 수 있는데, 이렇게 공통적으로 갖는 동작 행위를 메소드(method)라고 한다. 이러한 자동차라는 클래스로 차종, 자동차번호 등의 각각의 필드값을 갖는 개체가 바로 객체가 된다. Kotlin은.. 2022. 12. 2.
Kotlin 기본 문법 번외 : 입력과 출력 목차 개요 이번 포스트에서는 Kotlin의 기본 입력과 출력 방법에 대해 정리하고자 한다. Kotlin의 입력 Kotlin에서의 입력 방법은 크게 다음 3가지로 나뉜다. Java의 Scanner 클래스를 이용한 입력 readLine() 또는 readln()를 이용한 입력 BufferedReader 클래스를 이용한 입력 1. Java의 Scanner 클래스를 이용한 입력 Kotlin은 Java의 클래스를 그대로 가져와서 쓸 수 있기 때문에 Java가 익숙한 경우라면 그냥 Scanner 클래스로 간단하게 입력을 처리할 수 있다. 이 경우에는 사용 방법이 Java와 완전히 동일하기 때문에 Kotlin에 익숙하지 않은 경우라면 이 방법을 사용하는 게 편리할 것이다. 주의할 점은 Kotlin에서는 in이 키워드이.. 2022. 11. 28.
Kotlin 기본 문법 5 : 배열 목차 개요 전통적인 프로그래밍 언어에서의 배열은 같은 타입의 변수들을 원소로 갖는 유한집합으로 정의된다. Kotlin의 경우에는 기본적인 개념은 비슷하지만 약간의 차이가 있는데 모든 자료형이 참조 타입, 즉 클래스이기 때문에 자료형의 종류에 구애받지 않고 모든 자료형을 담을 수 있는 배열도 정의가 가능하다는 점이다. 이번 포스트에서는 Kotlin의 배열에 대해 정리하고자 한다. Kotlin에서의 배열 선언 Kotlin은 전통적인 프로그래밍 언어들이 일반적으로 사용하는 자료형이나 식별자 뒤에 대괄호를 붙이는 방식으로 배열을 선언할 수 없다. Kotlin에서는 전통적인 방식이 아닌 다른 방법으로 배열을 선언해야 하는데 이 방법으로는 크게 5가지가 있다. arrayOf() 자료형ArrayOf() ex)intA.. 2022. 11. 25.
Kotlin 기본 문법 4 : 조건문과 반복문 목차 개요 Kotlin에서도 Java와 비슷하게 조건문과 반복문을 사용할 수 있다. 다만 세부적인 사용법에서 차이가 있고, 조건문의 경우에는 Java에서는 불가능하지만 Kotlin에서는 가능한 사용법이 있으므로 이에 대해 정리하고자 한다. 조건문 조건문은 주어진 조건식의 결과에 따라 이후에 따라오는 코드 블럭의 실행 여부를 결정하는 구문을 의미한다. Kotlin의 조건문에는 아래의 두 가지가 있다. if ... else if ... else는 여러 프로그래밍 언어에서 볼 수 있는 전통적인 조건문이다. 주어진 조건 식의 결과에 따라 if 또는 else 이후의 코드 블럭이 실행된다. 여러 조건을 걸어서 조건문을 사용하고 싶다면 else if를 사용하면 된다. 이 경우에는 이전 조건식을 먼저 검사하고 그 결과.. 2022. 11. 23.