Android 썸네일형 리스트형 [Kotlin] 10. 오버라이딩과 추상화 상속시에는 기본적으로 수퍼 클래스에 있는 함수와 같은 이름과 형식을 가진 함수는 서브 클래스에서 만들 수 없습니다 하지만 수퍼 클래스에서 허용만 한다면 오버라이딩이라는 방법으로 서브 클래스에서 같은 이름과 형태로 된 함수의 내용을 다시 구현할 수 있습니다 예시를 통해 오버라이딩을 보겠습니다 fun main() { var t = Tiger() t.eat() } open class Animal { open fun eat() { println("음식을 먹습니다") } } class Tiger : Animal() { override fun eat() { println("고기를 먹습니다") } } /* 출력 고기를 먹습니다 */ Tiger 클래스는 Animal 클래스를 상속받고 있습니다 이때 Tiger 클래스에서.. 더보기 [Kotlin] 09. 클래스의 상속 오늘 알아볼 주제는 입니다 상속은 왜 필요할까요? 크게 상속이 필요한 경우는 2가지가 있는데요 1. 기존 클래스를 확장하여 새로운 속성이나 함수를 추가한 클래스를 만들어야 할 때 2. 여러개의 클래스를 만들었는데 클래스들의 공통점을 뽑아 코드 관리를 편하게 해야할 때 이때 속성과 함수를 물려주는 클래스를 수퍼 클래스, 물려받는 쪽을 서브 클래스 라고 합니다 코드를 통해 상속을 알아보도록 하겠습니다! fun main() { var a = Animal("별이", 5, "개") var b = Animal("별이", 5) a.introduce() b.introduce() b.bark() var c = Cat("루이", 1) c.introduce() c.meow() } open class Animal (var n.. 더보기 [Kotlin] 08. 클래스의 생성자 class Person(var name: String, val birthYear: Int) 클래스의 이름 옆에 있는 소괄호 안에 쓰인 속성들을 생성자 라고 할 수 있는데요, 위 방법은 클래스의 '속성'들을 선언함과 동시에 '생성자' 역시 선언하는 방법입니다 그럼 생성자란 무엇일까요? : 생성자란 새로운 인스턴스를 만들기 위해 호출하는 특수한 함수입니다 생성자를 호출하면 클래스의 인스턴스를 만들어 반환받을 수 있습니다 생성자의 기능 1. 인스턴스의 속성을 초기화 2. 인스턴스 생성시 필요한 구문을 수행 하지만 위에서 선언한 형태에서는 인스턴스 생성시 구문을 수행하는 기능은 넣을 수 없습니다 이는 init이라는 함수를 통해 수행이 가능합니다 init 함수 init 함수는 파라미터나 반환형이 없는 특수한 함수.. 더보기 [Kotlin] 07. 클래스의 기본 구조 코틀린의 기본적인 클래스 사용법을 알아보도록 하겠습니다! 우선, 클래스는 '값'과 그 값을 사용하는 '기능'들을 묶어놓은 것입니다 기본 자료형들도 코틀린 내부에서는 모두 클래스로 만들어져 있습니다 클래스는 고유의 특징적인 값을 담는 변수인 속성과 기능을 구현한 함수로 이루어져 있습니다 클래스의 구조를 보기 위해 사람의 이름과 출생년도를 관리하는 클래스를 만들어 보도록 하겠습니다 fun main() { } class Person (var name: String, val birthYear: Int) 클래스의 이름은 Person이고, 괄호 안에 클래스가 가지는 속성으로 이름과 출생년도를 나열하였습니다 속성은 변수를 선언하는 것과 형태가 같습니다 함수 없이 속성만 갖춘 클래스는 위의 예시만으로 구현이 완료될 수.. 더보기 [Kotlin] 06. 흐름제어와 논리연산자 코틀린 여섯번째 포스팅 입니다 코드의 흐름을 제어할 수 있는 키워드를 알아보겠습니다 1. return 첫번째로는 return인데요 return은 함수를 '종료'하고 값을 '반환'하는 역할을 하고 있습니다 2. break 두번째는 반복문에 사용할 수 있는 break입니다 break는 반복문 내의 구문이 실행되는 중간에 즉시 반복문을 '종료'하고 다음 구문으로 넘어가는 역할을 합니다 fun main() { for (i in 1..10) { if (i == 3) break println(i) } } /* 출력 1 2 */ 1부터 10까지 반복하는 for문 안에 i가 3이 되면 break를 수행하는 if문을 하나 넣어두었는데요 위 코드는 i가 3이 되는 시점에 반복이 즉시 중단되기 때문에 실행시켜보면 출력에 1.. 더보기 [Kotlin] 05. 반복문과 증감연산자 안녕하세요 코틀린 다섯번째 포스팅은 입니다 반복문의 예시에서 증감연산자가 사용되기 때문에 증감연산자 먼저 알아보도록 하겠습니다! 증감 연산자는 증가 연산자(increment operators)와 감소 연산자(decrement operators)를 통칭한 것을 말하는데요 1. 증가 연산자 increment operators : 증가 연산자는 변수의 앞이나 뒤에 플러스(+)를 두개 붙여 사용하는 연산자로, 변수의 값을 '1' 증가시켜주는 역할을 합니다 ex) ++a, a++ 2. 감소 연산자 decrement operators : 증가 연산자와 반대로 변수의 앞이나 뒤에 마이너스(-)를 두개 붙여 사용하는 연산자로, 변수의 값을 '1' 감소시켜주는 역할을 합니다 ex) --a, a-- 그럼 플러스와 마이너스.. 더보기 [Kotlin] 04. 조건문과 비교연산 안녕하세요 코틀린 4번째 포스팅은 입니다 if 첫번째로 알아볼 조건문은 조건문의 기본 'if'입니다 우리가 흔히 알고 있는 뜻인 '만약 ~한다면' 말 그대로 사용되는 조건문이라고 할 수 있는데요 if문에 주어진 값이 '참'이라면 따라오는 구문을 실행하는 기능을 합니다 예시 코드와 함께 if문의 사용을 알아보도록 하겠습니다 fun main() { var a = 7 if(a > 10) { println("a는 10보다 크다") } else { println("a는 10보다 작거나 같다") } // 출력: a는 10보다 작거나 같다 } a는 7이라고 변수에 넣어두고 if문을 실행시켜보면 맨 윗줄에서 a는 10보다 작으니 거짓이 됩니다 그럼 if문 안에 있는 "a는 10보다 크다"는 실행되지 않겠죠? 그렇다면 .. 더보기 [Kotlin] 03. 타입추론과 함수 안녕하세요 오늘의 포스팅은 입니다 우선 타입추론에 대해 이야기를 해보도록 하겠습니다 타입추론(type inference)이란 변수나 함수들을 선언할 때 혹은 연산이 이루어질 때 자료형을 코드에 명시하지 않아도 코틀린이 자동으로 자료형을 추론해주는 기능입니다 앞의 포스팅을 보시면 예시 중 val stringValue = "문자열을 할당해볼까요?" 에서는 :String 이라는 자료형을 생략해서 나타낸 것을 확인하실 수 있습니다 이는 변수가 선언될 때 할당된 값의 형태로 해당 변수가 어떤 자료형을 가지는지 추론이 가능하기 때문입니다! 기본 자료형들도 선언 시 값을 할당만 해준다면 대부분 자료형을 명시할 필요가 없는데요 자료형 없이 값을 할당한다면 어떤 자료형으로 지정될까요? var a = 1234 // 일반 .. 더보기 이전 1 2 3 다음