본 포스팅의 내용은 [깡샘의 코틀린 프로그래밍]을 공부하고 작성자가 생각을 정리하기 위해서 작성한 글이므로 더욱 자세한 내용을 알고 싶으신 분은 [깡샘의 코틀린 프로그래밍]을 강력 추천합니다!! 1. 추상 클래스 1.1. 추상 클래스 선언(abstract) 추상 함수는 미완성 함수 혹은 실행 영역이 없는 함수를 의미한다. 추상 클래스는 추상 함수를 포함하는 클래스를 의미한다. 추상 프로퍼티란 선언부만 있는 프로퍼티를 말한다. abstract 예약어를 활용하여 추상 함수, 추상 프로퍼티와 추상 클래스를 명시할 수 있다. 1.2. 추상 클래스 이용 추상 클래스는 그 자체로는 객체를 생성할 수 없고 하위 클래스에서 추상 멤버들을 구현하여 생성해야 한다. 추상 클래스는 공통 코드(라이브러리, 프레임워크)를 작성..
객체 지향 프로그래밍을 처음 접하는 사람은 물론이고, 이미 사용하고 있는 사람들도 추상 클래스와 인터페이스의 사용 형태가 비슷하여 목적을 명확하게 구분하지 못 하는 경우가 허다하다. (물론 나도) 사용 목적을 파악하면 사용 방법 또한 자연스럽게 터득하게 되기 때문에 이번 포스팅에서는 추상 클래스와 인터페이스의 사용 목적을 다뤄볼 것이다. 추상 클래스와 인터페이스의 사용 목적 우선 핵심적인 부분은 추상 클래스는 클래스이고 인터페이스는 클래스가 아니다. 뭔 당연한 소리를 대단한 것 마냥 얘기하나 싶겠지만, 각각의 정체성을 나타내는 부분이기 때문에 짚고 넘어갈 필요가 있었다. 흔히 객체지향에서 클래스와 인터페이스를 구분할 때는 "is a", "has a"라는 말로 설명을 하곤 한다. 추상 클래스는 클래스이기 ..
본 포스팅의 내용은 [깡샘의 코틀린 프로그래밍]을 공부하고 작성자가 생각을 정리하기 위해서 작성한 글이므로 더욱 자세한 내용을 알고 싶으신 분은 [깡샘의 코틀린 프로그래밍]을 강력 추천합니다!! 1. 코틀린에서의 상속 1.1. Any 클래스 코틀린의 모든 클래스는 Any 클래스의 서브 클래스이다. 코틀린에서 클래스를 선언할 때 상위 클래스를 명시하지 않으면 기본으로 Any 클래스를 상속받는다. Any 클래스는 자바의 java.lang.Object 클래스와는 다르다. Any 클래스는 equals( ), toString( ) 이외의 다른 멤버들은 제공하지 않는다. 1.2. 상속을 통한 클래스 정의 코틀린에서 어떤 클래스를 상속받으려면, 해당 클래스 선언부에 상속 허용 여부를 결정하는 open 예약어를 사용해..
본 포스팅의 내용은 [깡샘의 코틀린 프로그래밍]을 공부하고 작성자가 생각을 정리하기 위해서 작성한 글이므로 더욱 자세한 내용을 알고 싶으신 분은 [깡샘의 코틀린 프로그래밍]을 강력 추천합니다!! 1. 코틀린에서 프로퍼티 이용 1.1. 프로퍼티란? 코틀린에서는 클래스의 변수를 프로퍼티라고 부른다. val이나 var로 선언되는 변수들이 프로퍼티다. 프로퍼티는 getter와 setter 함수가 내장되어 있다. 프로퍼티를 선언할 때 초깃값과 getter, setter는 선택사항이다. // 프로퍼티 형식 var [: ] [=
본 포스팅의 내용은 [깡샘의 코틀린 프로그래밍]을 공부하고 작성자가 생각을 정리하기 위해서 작성한 글이므로 더욱 자세한 내용을 알고 싶으신 분은 [깡샘의 코틀린 프로그래밍]을 강력 추천합니다!! 1. 클래스 선언 및 생성 1. 1. 클래스 선언 class MyClass { } class MyClass // 중괄호 생략 가능 클래스를 선언할 때 클래스 몸체가 없다면 중괄호는 생략. 일반적으로 파일 안에 파일명과 같은 클래스를 정의해 사용하지만 강제 규칙이 아니며 코틀린 파일에 파일명과 같은 이름의 클래스가 없어도 상관 없다. 1. 2. 객체 생성 객체 생성은 클래스를 이용하기 위해 메모리를 할당하는 작업이며, 할당된 메모리를 객체명으로 참조해서 이용하는 개념이다. 2. 생성자 코틀린에서는 생성자를 주 생성..
본 포스팅의 내용은 [깡샘의 코틀린 프로그래밍]을 공부하고 작성자가 생각을 정리하기 위해서 작성한 글이므로 더욱 자세한 내용을 알고 싶으신 분은 [깡샘의 코틀린 프로그래밍]을 강력 추천합니다!! 1. 조건문 1. 1. if 표현식 코틀린에서 일반적인 if 문과 비교해 차이점이 있는데 if 문이 표현식(expression)이라는 것이다. 표현식(expression) : 변수, 상수, 연산ㅅ자, 함수로 구성되어 무언가 값을 만드는 문장 구문(statement) : 특정 단어나 기호의 조합으로 무언가가 실행되도록 명령을 지시하는 문장 간단하게 말하자면 결괏값을 만드는지 아닌지의 차이로 인식하면 된다. 다음과 같이 작성이 가능하다. val result = if (isNight) "Good Bye" else "G..
본 포스팅의 내용은 [깡샘의 코틀린 프로그래밍]을 공부하고 작성자가 생각을 정리하기 위해서 작성한 글이므로 더욱 자세한 내용을 알고 싶으신 분은 [깡샘의 코틀린 프로그래밍]을 강력 추천합니다!! 1. 기초데이터 타입 1. 1. 숫자타입 코틀린에서 모든 것은 객체!! C나 자바는 int, double 기초 타입과 Integer, Double 래퍼 클래스를 구분해서 사용하지만 코틀린에서는 기초 타입 자체가 없다. 숫자 타입에 값을 대입할 때는 다음과 같은 규칙이 있다. Decimals(10진수), Hexadeicmals(16진수, 0x), Binaries(2진수, 0b) 값 대입 가능 Long 형은 값 뒤에 'L' 사용 실수 기본형은 Double 실수형은 10.0e2로도 표현 가능 Float 형은 값 뒤에 ..
본 포스팅의 내용은 [깡샘의 코틀린 프로그래밍]을 공부하고 작성자가 생각을 정리하기 위해서 작성한 글이므로 더욱 자세한 내용을 알고 싶으신 분은 [깡샘의 코틀린 프로그래밍]을 강력 추천합니다!! 1. 변수 선언 및 초기화 // 형식 val(혹은 var) 변수명 : 타입 = 값 // 예시 val data1: Int = 10 val value(값)의 줄임말. 한 번 초기화되면 더는 변경할 수 없다. 읽기 전용 변수를 선언하는 데 사용된다. var variable(변수)의 줄임말. Mutable 변수로 선언한다. 변수 선언에 대해 알게 된 것 읽기 전용 변수라는 뜻으로 val을 선언하고 Mutable 변수라는 뜻으로 var을 입력한다. 변수를 선언할 때 데이터 타입을 명시하지 않으면 대입하는 초깃값에 따라 적..