코틀린 13

13. 클래스 - 상속

객체 지향 프로그래밍에서 설명하였듯이 부모 클래스의 변수와 함수를 자녀 클래스에서 재사용하는 것을 뜻한다. 상속을 하는 이유는?만약 동일한 코드를 100개의 클래스에서 사용한다고 가정하자. 그렇다면 수정할 때 어떻게 될까?수많은 시간과 노력이 필요할 것이며 분명 오타로 인한 프로그램 에러 상황이 발생할 것이다.이를 방지하기 위해 공통으로 사용하는 코드는 부모 클래스에서 변수나 함수로 선언해 자식 클래스에서 상속받아 사용한다. open부모 클래스에서 자녀 클래스에 코드를 물려주기(?) 위해서는 open을 선언해야 한다. open은 클래스나 함수 맨 앞에 작성한다.open class Device(val model : String, val company : String, val price : Int){// 부..

코틀린 2025.01.29

12. 클래스 - 기본

코틀린에서 클래스를 선언하는 방법은 아래와 같다.class Car(name: String, color: String, age: Int){ // 매개 변수를 바로 받을 수 있다.} 생성자객체 지향 프로그래밍에서 객체가 생성될 때 초기화 시켜주는 함수이다.Java에서는 클래스와 이름이 동일해야 하나 코틀린에서는 init으로 시작한다.init { // 주 생성자 println("Name : $name , Color : $color , Age : $age")}  클래스에서 위의 코드처럼 작성하면 메인 함수에서는 다음과 같이 작성하면 클래스를 선언할 수 있다.fun main() { val c1 = Car("Toyota", "Red", 10) // Name : Toyota , Color : Red , A..

코틀린 2025.01.29

11. 객체 지향 프로그래밍

클래스를 본격적으로 시작하기 전에 객체 지향 프로그래밍을 간략하게 정리해 보았다. 정의OOP(Object-Oriented Programming)는 프로그램 설계 방법론의 일종이다. 프로그램을 단순히 데이터와 차리 방법으로 나눈 것이 아닌, 프로그램을 수많은 객체(Object)라는 기본 단위로 나누고 이들의 상호 작용으로 서술하는 방식이다. 탄생초기 프로그래밍 방식은 절차적 프로그래밍 방식이었다. 입력을 받아 명시된 순서대로 처리한 다음 그 결과를 내는 것을 중점으로 두었다. 그러나 알고리즘이 조금만 복잡해지면 스파게티 코드를 만들어 코드 가독성과 유지보수를 크게 어렵게 하였다. 이를 해결하기 위해 1968년 에츠허르 다익스트라가 제시한 문의 해로움>이라는 논문을 통해 구조적 프로그래밍 방식을 제안하면서 ..

코틀린 2025.01.29

10. 자료 구조

자료 구조란?컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다.종류는 List, Set, Map, Stack, Queue 등이 있으며 그중 List, Set, Map 읽기 전용인 immutable과 수정이 가능한 mutable로도 구별된다. List순서를 가지고 일렬로 나열한 원소들의 모임을 정의한다. 중복을 허용한다.val list1 = listOf("Kotlin", "Java", "Kotlin")// 람다식으로 결과를 출력하였다. 람다식은 나중에 다룰 예정이다.list1.forEach{ i -> println("$i")}List, Set, Map은 mutable로 시작하면 수정이 가능하다.val list2 = mutableListOf("Honshu", "..

코틀린 2025.01.29

09. 함수

이 장에서는 이전에 잠깐 언급하였던 함수에 대해 소개하겠다. 함수란프로그램 소스 코드에서 일정한 동작을 수행하는 코드의 집합을 뜻한다. 함수를 사용하는 이유는?동일한 코드를 여러 번 사용할 때 함수를 통해 하나의 논리적 단위로 사용하면 코드 재사용성 증가, 가독성 향상, 유지보수에 큰 도움이 된다. 종류매개 변수를 받느냐, 반환할 값이 있느냐에 따라 네 가지로 나누어진다.* 매개 변수: 함수가 외부에서 데이터를 받아오는 변수이다.* 반환 값: 함수가 외부로 선언해야 할 값이다. 반환할 값이 있는 함수반환할 자료형과 함수 내부에서 반환할 값을 return 처리한다.fun 함수 이름(변수명: 자료형): 반환할 자료형{ // 매개 변수는 생략이 가능하다. return 값} 매개 변수가 있는 함수fun fun..

코틀린 2025.01.29

08. String Template

코틀린에서는 문자열에 데이터를 입력할 때 다음 두 가지 방법을 사용할 수 있다.var name = "Kate"println("My name is "+name) // 큰 따옴표 밖에 +를 통해 연결하는 방법println("My name is $name") // 문자열 안에 $변수명을 사용하는 방법첫 번째 방법은 기존에 Java에서 자주 사용한 방법이다. 단점은 밑줄이 심하다는 것이다.그에 반에 두 번째 방법은 밑줄이 없어 가독성이 향상된다. 나아가서 $에 {}로 덮어주면 사칙연산도 가능해진다.var num1 = 15var num2 = 2println("Add : "+(num1 + num2)) // 17println("Add : ${num1 + num2}") // 17   GitHub - KrillM/Kot..

코틀린 2025.01.29

07. 제어문 - 조건문 - when

if문 보다 다양한 조건을 걸기 위해서는 when을 사용한다. 예시 코드는 아래와 같다. var score = 75when(score){ in 90 .. 100 -> println("A") in 80 until 90 -> println("B") in 70 until 80 -> println("C") in 60 until 70 -> println("D") else -> println("F")} 점수에 따라 다른 등급을 부여하는 코드를 작성하였다. 위에서부터 설명을 하자면90점대부터 만점 -> A 등급80점대                -> B 등급70점대                -> C 등급60점대                -> D 등급그 이하             ..

코틀린 2025.01.29

06. 제어문 - 조건문 - if

조건문어떤 조건이 주어질 때 어떠한 동작을 수행하도록 하는 문법이다. if와 when으로 구별된다. if‘만약’이라는 뜻에서 알 수 있듯이 경우에 따라 다르게 작동하는 문법이다.var score = 80if (score >= 70) { // if문의 첫 번째 조건이다. 해당 조건이 맞으면 Pass가 출력된다. println("Pass")}else { println("Fail") // 모든 조건을 만족하지 않는다면 else문이 출력된다. Fail이 출력된다.} 위의 코드는 score라는 변수가 70을 넘기면 if문에서 Pass가, 아니면 else문에서 Fail이 출력되는 if문이다.여기서는 score = 80 > 70이므로 Pass가 출력된다. else if첫 번째 예시문에서 else를 유심히 ..

코틀린 2025.01.28

05. 제어문 - 반복문 - for

for루프 변수에 따라 실행되는 반복문이다. Java에서는 for문이 아래와 같이 수행된다.for(int i = 1; i  반면에 코틀린에서는 Java와 같이 코드를 작성하여서는 안 된다. 코틀린의 for문을 들어가기 앞서 Range에 대해 설명하겠다.  Range'범위'를 뜻하듯이 설정한 범위에 따라 변수가 선언된다. 예시 코드는 아래와 같다.var numRange1 : IntRange = 1 .. 10var numRange2 : IntRange = 1 until 10정수형의 범위를 설정하려면 자료형이 IntRange라고 선언한다...처음부터 마지막까지 출력한다. 예시 코드에 따르면 1이상 10이하의 정수를 전부 출력한다.until처음부터 마지막 전까지 출력한다. 예시 코드에 따르면 1이상 10미만의 ..

코틀린 2025.01.28

04. 제어문 - 반복문 - while

제어문주어진 조건에 따라 프로그램을 실행하는 명령문이다. 크게 반복문과 조건문으로 나누어지는데 여기서는 반복문에 대해 설명하겠다. 반복문프로그램 소스 코드 내에서 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문이다. while문과 for문으로 나눌 수 있다. While논리형 조건을 기반으로 코드가 반복적으로 수행된다. 예시 코드는 아래와 같다.var i = 1while(i괄호 안은 while문의 조건을 제어한다. 여기서는 i가 5 미만일 때 while문을 실행하며 i가 5 이상이면 while문은 중단된다.* ++: 1을 추가하는 계산식이다.  var i = 1 -> 1 println(1) -> 결과 : 1i++ -> 1+1 -> 2 var i = 2 -> 2 -> println(2) -> 결..

코틀린 2025.01.28