본문 바로가기

# 02/코틀린

[Kotlin] 변수와 타입 3 보호되어 있는 글입니다.
[Kotlin] 변수와 타입 2 null 처리 방법 Java와 Kotlin의 처리방법 비교 - Java에서는 @NotNull과 @Nullable 어노테이션을 통해 알리지만 Kotlin에서는 기본적으로 NotNull이고 Nullable 표현에만 '?'가 사용된다. javapublic void set ( @NotNull String a, @Nullable String b ) {// Do noting} String temp = null;int size = -1;if ( temp != null ) {size = temp.length();}// or if (!TextUtils.isEmpty ( temp ) ) {size = temp.length();} kotlinfun set ( a : String, b : String? ) {// Do not..
[Kotlin] 변수와 타입 1 패키지 정의- 자바 프로젝트처럼 디렉터리와 매치 되어야 하지는 않는다.package my.demo import java.util.* // ... - 패키지를 지정하지 않으면 이름이 없는 기본(default) 패키지에 속한다.- import의 이름이 충돌하면 as 키워드로 로컬에서 사용할 이름을 변경해서 충돌을 피할 수 있다. import foo.Bar // Bar로 접근import bar.Bar as bBar // bBar는 'bar.Bar'를 의미 - import는 클래스 뿐만 아니라 다른것도 임포트 할 수 있다.- 최상위레벨 함수와 프로퍼티, 오브젝트 선언의 함수와 프로퍼티, 열거형 함수 fun main(args : Array) { val name = "jiyeon"val count = 10val c..
[Kotlin] 언어의 특징 프로그래밍적인 특징 - 확장 함수, 연산자 오버로딩을 지원한다.- int 형을 확장해 'i = 3 power 4'식으로 새 연산자를 만들 수 있다. - '==' 연산자의 경우 equals()와 똑같이 작동 하므로 i == j는 true이다.- 자바의 '==' 를 쓰려면 '===' 를 쓰고, != 의 경우 !== 이다. - static 메서드가 없다. 대신, companion object를 사용해 '클래스명.companion.메서드_혹은_get변수명()'을 사용한다. - 자바와 완전하게 상호 운용된다. NPE(NullPointerException) - 필드나 변수를 선언할 때 기본값을 강제하지 않으므로.- field, method 등이 어느 시점에 초기화 되는지 잘 알 수 없다.- 안드로이드의 Activi..
[Kotlin] super와 this의 참조 super와 this- 현재 클래스에서 참조의 기능 - 상위 클래스는 super 키워드로 현재 클래스는 this 키워드로 참조가 가능 supersuper.프로퍼티명 // 상위 클래스의 프로퍼티 참조super.메서드명() // 상위 클래스의 메서드 참조super() // 상위 클래스의 생성자의 참조 thisthis.프로퍼티명 // 현재 클래스의 프로퍼티 참조this.메서드명() // 현재 클래스의 메서드 참조this() // 현재 클래스의 생성자의 참조 super로 상위 참조- 상위 클래스의 메서드 실행open class Bird ( var name : String, var wing : Int, var beak : String, var color : String ) { fun fly () = println..
[Kotlin] 상속과 다형성 상속과 클래스의 계층 상속(inheritance) - 자식 클래스를 만들 때 상위 클래스(부모 클래스)의 속성과 기능을 물려받아 계승 - 상위(부모) 클래스의 프로퍼티와 메서드가 자식에 적용됨 Any - 상위 클래스(super class)open 클래스(상속 가능) - Bird - 기반 클래스(parent class or base class) 상속(Inheritance) 기본클래스(최종 클래스, 상속불가) - Lark, Parrot - 파생 클래스(child class or derived class) 상속 가능한 클래스와 하위 클래스 선언- open 키워드를 통한 선언 open class 기반 클래스명 { // open으로 파생 가능 (다른 클래스가 상속 가능한 상태가 됨)...}class 파생 클래스명..
[Kotlin] 생성자 생성자(Constructor)란 - 클래스를 통해 객체가 만들어질 때 기본적으로 호출되는 함수 - 객체 생성 시 필요한 값을 인자로 설정할 수 있게 한다. - 생성자를 위해 특별한 함수인 constructor()를 정의 class 클래스명 constructor(필요한 매개변수들..) { // 주 생성자의 위치...constructor(필요한 매개변수들..) { // 부 생성자의 위치// 프로퍼티의 초기화}[constructor(필요한 매개변수들..) {...}] // 추가 부 생성자...} 주 생성자(Primary Constructor) - 클래스명과 함께 기술되며 보통의 경우 constructor 키워드를 생략할 수 있다. 부 생성자(Secondary Constructor) - 클래스 본문에 기술되며 ..
[Kotlin] 클래스와 객체의 정의 객체 지향 프로그래밍 - OOP; Object-Oriented Programming- 프로그램의 구조를 객체 간 상호작용으로서 표현하는 프로그래밍 방식- 절차적 프로그래밍의 한계를 극복하고자 나온 언어의 한 가지 방법론- 객체와 관계를 표현하고 이를 통해 확장과 재사용이 용이 - 코틀린에서는 OOP를 지원 객체지향 개념상의 용어들 - 추상화 (abstraction) - 인스턴스 (instance) - 상속 (inheritance) - 다형성 (polymorphism) - 캡슐화 (encapsulation) - 메시지 전송 (message sending) - 연관 (association) 클래스(Class)란 - 분류, 계층, 등급 등의 우리말 뜻 - 특정 대상을 분류하고 특징(속성)과 동작 활동(함수) ..