언어/Kotlin 29

Kotlin : 상속 (inheritance)

1. 상속이란? 객체지향 프로그래밍에서 상속은 굉장히 중요한 개념 중 하나이다. '상속'을 통해 반복되는 코드의 양을 줄일수도 있고, 다른 클래스가 가지고 있는 기능(속성, 함수 등)들을 상속받아 그대로 사용할 수 있기 때문이다. 상속하는 쪽을 Super Class, (엄마클래스, 아빠클래스라 부르기도 한다고 한다) 상속받는 쪽을 Sub Class (자식클래스라고도 부름) 라 한다. 왼쪽 그림을 보자. Super Class 에는 var1,var2 이렇게 두개의 변수와 methodeA,methodeB 두개의 메서드를 가기고 있는 반면, Super Class 를 상속받은 Sub Class 는 Super Class 가 가지고 있던, 기존의 두 변수와 두 메서드 뿐만이 아니라, 새로운 속성과 메서드를 가지고 있..

언어/Kotlin 2022.10.20

Kotlin : Movie Maker produce() 함수

지난번에 쓴 Movie 클래스 코드다. 이번에 produce() 함수를 완성시켜 보자. 먼저, 영화가 제작이 될 때 어떤 일들이 일어나야하는지를 적어본다. => 1. 영화수익이 생긴다. (예상수익: 1000000~2000000) 2. 영화가 평가된다. ( = 평점이 부여된다.) 3. 평점에서 수익이 발생한다. 4. 이런 부분수익은 전체 수익에 더해진다. 5. 계산된 총 수익은 Movie 의 속성 revenue 에 저장된다. 6. 총 손실과 이익을 계산 후 출력한다. 7. 감독과 배우에게 영화가 제작되었음을 알려야 한다. [ 전체코드 ] import kotlin.random.Random import kotlin.math.round class Actor(val firstName: String, val las..

언어/Kotlin 2022.10.19

Kotlin : Movie Maker 일단 클래스부터

이제 어느정도 틀은 잡아두었으니, 본격적으로 프로젝트를 생성해보자. 1. enum Class Genre 구현하기 먼저 가장 간단한 Genre 를 위한 enum 클래스를 만들어보자. 코틀린데이터 생성 후 생각해둔 장르를 넣어주면 된다. enum class Genre { ACTION, COMEDY, DRAMA, FANTASY, HORROR, THRILLER } 2. Actor와 Director 클래스 구현하기 영화가 하나 성공적으로 제작될때마다, 감독과 배우 모두 그만큼 능력치가 올려가야하니, 각자 배우는 속도에 따라 능력치가 올라가게 해준다. 개개인의 능력치 한계치가 존재하니, 그 한계치를 넘지 않도록 제한도 두고. ++ 저번글에서 객체들은 또 다른 객체들로 구성되어 있다는 얘기를 했다. 그건 우리가 사는..

언어/Kotlin 2022.10.19

Kotlin : Movie Maker 시물레이션, 구상

지금까지 공부해 온 코틀린 기본적인 내용들로, 좀 더 큰 예시를 연습해보자. " 플레이어가 영화 제작자의 역할을 하는 작은 게임을 만든다고 생각해보자 " ------- 게임 내용 구상 ------- 1) 영화 기획하기 : 플레이어는 영화 하나를 기획합니다. => 감독, 장르, 예산, 주연 배우 등을 고려해 2) 영화 제작하기 : 고려된 내용을 바탕으로 영화 하나가 제작됩니다. => 영화 제작 비용( 감독, 배우등 의 급여) 이 플레이어의 계좌에서 삭감됩니다. 3) 영화의 평점 계산하기 : 영화의 평점이 아래 사항에 맞춰 계산됩니다. => 주연배우에게 맞는 장르였는가? => 감독이 선호하는 주연배우 중 하나였는가? => 주연배우와 감독은 많은 경험을 가지고 있는가? 4) 경험값 모으기 : 배우와 감독은 작..

언어/Kotlin 2022.10.18

Kotlin : 간단한 for 과 while, do..While 문의 이용

1. for 문의 이용 2. While문의 이용 while(조건) : 이 조건이 충족되는 한 계속 while문을 실행한다는 것. : 800ml 의 물이 들은 병을 새로 생성한 잔에 붓는다. 이 행동은 그 물의 양이 0 초과일때까지 반복된다. 즉, 병 내에 물의 양이 모두 없어지면, 그만둔다는 것. 3. do.. While문의 이용 while(조건)문이 충족되지 않는 이상 do문을 시행한다. : 내가 인풋으로 아니오를 쓰면 do문이 더 이상 시행되지 않는 다는 얘기. 4. 실행 fun main(){ val bottle = Bottle(800) val glasses = mutableListOf() while(bottle.content > 0){ val newGlass = Glass(0,150) bottle...

언어/Kotlin 2022.10.13

Kotlin : 리스트 (list)

Glass 클래스와 그 오브젝트들을 만들어봤으니, 이번에는 그 오브젝트들이 들어가있는 일종의 집합을 만들어보자. 'listOf'를 통해 리스트 생성이 가능하다. - 안에는 리스트 안에는 넣을 자료형을 입력하면 된다. 우리의 경우 클래스 Glass - 이미 만들어둔 오브젝트들을 넣어도 되지만 즉석해서 만들어 넣을 수도 있다. => Glass(65,120) 당연히 Glass 클래스 내부에 정의한 함수들도 쓸 수 있다. 정의된 리스트는 변경이 불가능한 리스트라 변경을 시도할 경우 에러가 뜬다. val가 아닌 가변변수 var로 리스트를 정의했을 경우, 마찬가지로 리스트 내부 오브젝트의 속성값들을 변경할 수는 없지만, 새 리스트를 만들어 그 리스트를 참조할 수 있다. 즉, 이랬던 상황에서 이렇게 참조하고 있던 리..

언어/Kotlin 2022.10.12

Kotlin : Setter 와 Getter

먼저, 몇가지 알아둬야할 것들을 적어보자면, * Kotlin에서는 자바와 달리 변수를 만들면 자동적으로 getter와 setter가 내부적으로 생성이 된다. * 불변변수인 val 의 경우 (그 값이 변경되서는 안되니) getter만 내부적으로 생성이 된다. 자, 그럼 만들었던 Glass 클래스 코드를 다시 보자. class Glass(var content: Int, val capacity: Int) content 의 특정상 가변변수(var)로 쓰여있는데 이 경우, 마음대로 그 값을 변경해도 허용이 되는 일이 일어나게 된다. fun main(){ val glass1 = Glass(90,150) glass1.content = 250 glass1.content = -180 } 이런식으로 마이너스값까지 아무 제..

언어/Kotlin 2022.10.12

Kotlin : ArrayList (배열 + 리스트)

ArrayList 는 이름 그대로 Array 와 List의 콤비네이션으로 생각하면 된다. (내부가 배열/Array 의 형태인 리스트라고 보면 된다.) 간단하게 Array와 List에 대해 표현하자면, Array : 같은 자료형을 지진 값들의 집합 List : 순서가 있는 것들의 집합 (Sequence) | 자료형이 다른 값도 넣을 수가 있다. 지난번에 Glass 클래스를 만들어 인스턴스를 생성해 보았는데, 이번에는 한두개 잔이 아닌 잔들의 모임(?)을 위해 ArrayList를 간단하게 활용해 볼 것이다. 위 그림같은 느낌으로 생각하면 된다. Array 처럼 초기화와 같이 그 크기가 결정되지 않기 때문에 크기가 자유롭다. 그래서 array의 경우 불가능하지만 ArrayList는 add 함수 사용이 가능하다..

언어/Kotlin 2022.09.07