분류 전체보기
-
4-4. 클래스와 객체 다루기 : 객체Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 10. 1. 22:24
4장 4-1. 클래스와 객체 다루기 : 클래스 정의하기 4-2. 클래스와 객체 다루기 : 널 가능성 4-3. 클래스와 객체 다루기 : 단순한 변수 이상의 프로퍼티 4-4. 클래스와 객체 다루기 : 객체 4-4. 객체 1) 객체(object) 선언 코틀린은 어떤 클래스에 인스턴스가 오직 하나만 존재하게 보장하는 싱글턴 패턴을 내장하고 있다. 코틀린에서는 클래스와 비슷한 방법으로 싱글턴을 선언한다. 코틀린에서의 선언 방식은 class 대신 object 키워드를 사용한다. object Application{ val name = "My App" override fun toString() = name fun exit(){ } } 위 객체 선언은 클래스를 정의하는 동시에 클래스의 인스턴스를 정의하는 것 이다. fu..
-
4-3. 클래스와 객체 다루기 : 단순한 변수 이상의 프로퍼티Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 10. 1. 00:18
4장 4-1. 클래스와 객체 다루기 : 클래스 정의하기 4-2. 클래스와 객체 다루기 : 널 가능성 4-3. 클래스와 객체 다루기 : 단순한 변수 이상의 프로퍼티 4-4. 클래스와 객체 다루기 : 객체 4-3. 단순한 변수 이상의 프로퍼티 1) 최상위 프로퍼티 클래스나 함수와 마찬가지로 최상위 수준에 프로퍼티를 정의할 수 있다. 이 경우 프로퍼티는 전역 변수나 상수와 비슷한 역할을 한다. val prefix = "hello" fun main() { val name = readLine() ?: return println("$prefix $name") } 2) 늦은 초기화 클래스를 인스턴스화할 때 프로퍼티를 초기화해야 한다는 요구 사항이 불필요하게 엄격할 때가 있다. 어떤 프로퍼티는 클래스 인스턴스가 생성된..
-
4-2. 클래스와 객체 다루기 : 널 가능성Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 10. 1. 00:12
4장 4-1. 클래스와 객체 다루기 : 클래스 정의하기 4-2. 클래스와 객체 다루기 : 널 가능성 4-3. 클래스와 객체 다루기 : 단순한 변수 이상의 프로퍼티 4-4. 클래스와 객체 다루기 : 객체 4-2. 널 가능성 코틀린에는 아무것도 참조하지 않는 경우를 나타내는 특별한 null(널)이라는 값이 있다. 그 어떠한 객체도 가리키지 않는 참조를 뜻한다. 널은 다른 참조와 비슷하게 동작하지 않는다. 코틀린 타입 시스템에는 널 값이 될 수 있는 참조 타입과 널 값이 될 수 없는 참조 타입을 확실히 구분해주는 장점이 있다. 이 기능은 널 발생 여부를 컴파일 시점으로 옮겨주기 때문에 악명높은 NullPointerException을 상당부분 막을 수 있다. 1) 널이 될 수 있는 타입 코틀린에서 기본적으로 모..
-
4-1. 클래스와 객체 다루기 : 클래스 정의하기Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 9. 29. 13:51
4장 4-1. 클래스와 객체 다루기 : 클래스 정의하기 4-2. 클래스와 객체 다루기 : 널 가능성 4-3. 클래스와 객체 다루기 : 단순한 변수 이상의 프로퍼티 4-4. 클래스와 객체 다루기 : 객체 클래스에 대해 찾아보면, 객체지향 소프트웨어 작성의 가장 기본적인 단위로써, 객체를 구현/기술하는 문법이라고 나온다. 3장의 함수, 4장의 클래스는 실제로 가장 많이 쓰면서도 관련된 내용들을 물어보면 명확하게 대답하기 어려운 내용들이 많은 것 같다. 클래스를 공부하며 자세히 알아보자. 4-1. 클래스 정의하기 1) 클래스 내부 구조 코틀린의 클래스는 class 키워드 다음에 클래스 이름이 오고, 그 다음에 클래스 본문이 오는 형태로 정의된다. 클래스 본문은 멤버 정의가 들어가있는 블록이다. 어떤 사람에 대..
-
3-4. 함수 정의하기 : 예외 처리Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 9. 26. 12:51
3장 정리 3-1. 함수 정의하기 : 함수 3-2. 함수 정의하기 : 조건문 3-3. 함수 정의하기 : 루프 3-4. 함수 정의하기 : 예외 처리 3.5 예외 처리 함수가 비정상적으로 오류가 발생한 경우 예외를 던질 수 있다(Throw Exception) 예외가 발생한 경우, 함수를 호출한 쪽에서 예외를 잡아내거나(catch), 함수 호출 스택의 위로 예외가 전달될 수 있다. 1) 예외 던지기 에외를 던질 때는 아래와 같은 일이 벌어진다. - 프로그램은 예외를 잡아내는 핸들러(excption handler)를 찾는다. 예외와 일치하는 핸들러가 있다면 그 핸들러가 에외를 처리한다. - 현재 함수 내부에서 핸들러를 찾을 수 없다면 함수 실행이 종료되고 함수가 스택에서 제거(pop)된다. 그리고 함수를 호출한..
-
3-3. 함수 정의하기 : 루프Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 9. 26. 12:51
3장 정리 3-1. 함수 정의하기 : 함수 3-2. 함수 정의하기 : 조건문 3-3. 함수 정의하기 : 루프 3-4. 함수 정의하기 : 예외 처리 3.3 루프 1) while과 do-while 루프 사용자가 입력한 값을 읽어서 0이면 루프를 끝내고 이전 입력값들의 합계를 표시하는 함수를 while문과 do-while 루프를 이용해 작성해보자. var sum = 0 var num = 0 while(num != 0){ num = readLine()!!.toInt() sum += num } println("Sum: $sum") var sum = 0 var num: Int do{ num = readLine()!!.toInt() sum += num }while(num != 0) println("Sum: $sum"..
-
3-2. 함수 정의하기 : 조건문Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 9. 26. 12:51
3장 정리 3-1. 함수 정의하기 : 함수 3-2. 함수 정의하기 : 조건문 3-3. 함수 정의하기 : 루프 3-4. 함수 정의하기 : 예외 처리 3.2 조건문 1) if문으로 선택하기 if문을 사용하면 불(boolean) 식의 결과에 따라 두 가지 대안(true/false)중 하나를 선택할 수 있다. 문법은 아래와 같다. fun min (a: Int, b: Int): Int{ return if(a b) a else b fun main(args: Array) { if(args.isNotEmpty()){ val message = "Hello :) ${args[0]}" println(message) }else{ prin..
-
3-1. 함수 정의하기 : 함수Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 9. 26. 12:50
3장 정리 3-1. 함수 정의하기 : 함수 3-2. 함수 정의하기 : 조건문 3-3. 함수 정의하기 : 루프 3-4. 함수 정의하기 : 예외 처리 코딩할때 함수없이는 작성할 수 없다고 확신할 만큼 함수는 중요하다고 생각한다. 처음 언어를 시작할 때 Hello World! 를 출력하기 위해서 벌써 두 개의 함수를 만나게 된다 일반적으로 가장 먼저 실행되는 코드인 main() 원하는 내용을 표준 입출력으로 출력하는 println() 이 두 함수를 이용해서 Hello World!를 출력하게 된다. 그럼 함수에 대해 공부해보자 3.1 함수 코틀린 함수는 어떤 입력(=파라미터)을 받아서 자신한 코드 쪽에 출력값을 반환할 수 있는 재사용 가능한 코드 블럭이다 1) 코틀린 함수의 구조 먼저 원의 둘레를 계산하는 함수..