본문 바로가기

분류 전체보기41

11장. 다양한 코틀린 클래스 11.1 데이터 클래스 11.1.1 데이터 클래스(data) - 내부에 특별한 로직의 함수 없이 데이터만 포함한 클래스, data 예약어를 통해 data 클래스를 생성할 수 있다. - 주 생성자를 선언해야 하면 주 생성자의 매개변수는 최소 하나 이상이어야 한다. - 모든 주 생성자의 매개변수는 var 혹은 val로 선언해야 한다. - 데이터 클래스는 abstract, open, sealed, inner 등의 예약어를 추가할 수 없다. 11.1.2 데이터 클래스의 함수 - equals() : 객체의 데이터가 같은지 비교하는 함수. 같은 객체 주 생성자의 프로퍼티 값을 비교한다. - toString() : 데이터 클래스의 데이터를 문자열로 반환한다. - componentN() : 데이터 클래스의 프로퍼티 값.. 2020. 1. 23.
10장. 추상 클래스와 인터페이스 10.1 추상 클래스 10.1.1 추상 클래스 선언(abstract) - 추상 함수 : 실행 영역이 없는 함수, 최상위 레벨에 선언된 함수에는 사용할 수 없다. 클래스 내부에 선언된 함수만 가능 - 추상 클래스 : 추상 함수를 포함하고 있는 클래스 - 추상 프로퍼티 : 선언만 있고 초깃값을 대입하지 않은 프로퍼티 10.1.2 추상 클래스 이용 - 추상 클래스는 그 자체로는 객체를 생성할 수 없다. 추상 클래스를 상속받는 하위 클래스를 이용해 객체를 생성한다. - 추상 클래스를 상속받는 하위 클래스는 추상 함수, 추상 프로퍼티를 모두 재정의 해야하며, 그렇지 않다면 하위 클래스도 abstract 키워드를 이용해 추상형으로 선언해야 한다. 10.2 인터페이스 10.2.1 인터페이스 선언 및 구현 - 인터페이.. 2020. 1. 21.
9장. 상속 9.1 코틀린에서 상속 9.1.1 Any 클래스 - 코틀린의 모든 클래스는 Any 클래스의 서브 클래스이다. Java.jang.Object와 다르다. equals, toString 만 제공한다. 9.1.2 상속을 통한 클래스 정의(open) - 상속하려는 상위 클래스를 open으로 명시해야 한다. 상속 허용 여부를 명시하지 않으면 기본으로 final로 적용된다. 9.2 오버라이드 - 상위 클래스에 정의된 프로퍼티나 함수를 하위 클래스에서 재정의하는 것을 말한다. 9.2.1 함수 오버라이드 - 함수를 오버라이드 하기 위해서는 함수 선언에 명시적으로 open 예약어를 추가해야 한다. - 하위 클래스에서 상위 클래스의 함수를 재정의할 때는 함수 앞에 override 예약어를 추가해야 한다. 9.2.2 over.. 2020. 1. 20.
8. 프로퍼티 8.1 코틀린에서 프로퍼티 이용 8.1.1 프로퍼티란? - 코틀린에서는 클래스의 변수를 프로퍼티(Property)라 부른다.(var, val) - 변수처럼 보이지만 함수가 내장된 변수이기 때문에 변수가 아닌 프로퍼티라 부른다. getter, setter 내장 - 프로퍼티를 이용하면 외부에서는 변수를 직접 이용하는 것처럼 보이고, 불필요한 getter/setter 함수를 만들지 않아도 된다. 8.1.2 사용자 정의 프로퍼티 - 기본 getter/setter 함수는 배킹 필드를 이용해 프로퍼티 값을 변경하거나 그대로 전달하는 역할만 한다. - 만약 개발자가 특정 작업(유효성 검증 등)에 프로퍼티 값을 이용하고자 한다면 getter/setter를 직접 정의한다. - get(), set() 함수 내부에서는 프로.. 2020. 1. 17.
7. 클래스 7.1 클래스 선언 및 생성 7.1.1 클래스 선언 - class MyClass{ } - 일반적으로는 파일 안에 파일명과 같은 이름의 클래스를 정의해 사용한다. 하지만 이는 강제 규칙이 아니며 코틀린 파일에 파일명과 같은 이름의 클래스가 없어도 상관은 없다. - 클래스 내에 클래스를 선언해서 이용할 수도 있다. - 클래스에는 프로퍼티, 메서드, 생성자, 클래스 등을 선언할 수 있다. 7.1.2 객체 생성 - 객체 생성은 클래스를 이용하기 위해 메모리를 할당하는 작업이며, 할당된 메모리를 객체명으로 참조하는 개념이다. 7.2 생성자 7.2.1 주 생성자(constructor) - 하나의 클래스에 하나만 정의할 수 있다. - 꼭 작성해야 하는 건 아니며 보조 생성자가 있다면 작성하지 않을 수 있음 - 주 생.. 2020. 1. 16.
6. 흐름 제어 구문과 연산자 6.1 조건문 6.1.1 if 표현식 - 일반적인 if 문과 차이점이 있는데 바로 코틀린에서 if 문은 표현식(expression)이라는 점이다. - if 문을 표현식으로 사용한다는 것은 if문에 의해 특정 값이 발생한다는 의미이다. - if 문을 표현식으로 사용할 때 else 문이 꼭 있어야 한다. 생략하면 컴파일 에러가 발생한다. - if 문에 중괄호{}를 명시하여 여러 줄로 작성할 때 if 표현식으로 발생하는 데이터는 맨 마지막에 작성한다. * 표현식 : 변수, 상수, 연산자, 함수로 구성되어 무언가 값을 만드는 문장을 의미한다. * 구문(문장) : 단어나 기호의 조합으로 무언가가 실행되도록 명령을 지시하는 문장을 의미한다. 6.1.2 when 표현식 - switch-case 구문과 비슷하지만, 기.. 2020. 1. 13.