분류 전체보기120 코틀린(10) - 오버라이딩 , 추상화, 인터페이스 오버라이딩 상속시에는 기본적으로 슈퍼클래스에 있는 함수와 같은 이름과 형태를 가진 함수는 서브클래스에서 만들 수 없다. 하지만 수퍼클래스에서 허용만 한다면 "오버라이딩"이라는 방법으로 서브클래스에서 같은 이름과 형태로 된 함수의 내용을 다시 구현할 수 있다. fun main() { var t = Tiger() t.eat() } open class Animal{ open fun eat(){ println("음식을 먹습니다.") } } class Tiger : Animal(){ override fun eat(){ println("고기를 먹습니다.") } } 추상화 수퍼클래스에서는 함수의 구체적인 구현은 없고 단지 Animal의 모든 서브클래스는 eat이라는 함수가 "반드시 있어야 한다"는 점만 명시하여 각 .. 2022. 3. 21. 코틀린(9) - 상속, 상속으로 속성과 기능을 확장 실무자 관점에서 볼 때 상속이 필요한 경우는 두 가지가 있다. 이미 존재하는 클래스를 확장하여 새로운 속성이나 새로운 함수를 추가한 클래스를 만들어야 할 때 여러개의 클래스를 만들었는데 클래스들의 공통점들을 뽑아 코드관리를 편하게 해야 할때 속성과 함수를 물려주는 쪽을 '슈퍼 클래스' 물려 받는 쪽을 '서브 클래스'라고 한다. *코틀린은 상속 금지가 기본값이다 *open은 클래스가 상속해 줄 수 있도록 클래스 선언시 붙여줄 수 있는 키워드이다. 상속에 대한 두 가지 규칙 서브 클래스는 슈퍼 클래스에 존재하는 속성과 '같은 이름'의 속성을 가질 수 없다. 서브 클래스가 생성될 때는 반드시 수퍼클래스의 생성자까지 호출되어야 한다. 서브 클래스를 만들 때는 생성자에서 파라미터값을 받긴 하지만 클래스의 자체 속.. 2022. 3. 21. 코틀린(8) - 생성자 생성자 class Person (var name:String, val brithYear:Int) // 2022. 3. 21. 코틀린(7) - 클래스 클래스 클래스는 '값'과 그 값을 사용하는 '기능'들을 묶어놓은 것으로 사실 기본 자료형들도 코틀린 내부에서는 모두 클래스로 만들어져있다. 클래스안에 선언된 변수를 '속성'이라하고 함수를 '메소드'라 한다. 클래스를 이용해서 만들어낸 객체를 인스턴트라고 한다. 코틀린은 객체지향 언어를 기반으로 함수형 언어의 장점을 흡수한 실용적인 언어이다. 클래스 사용법 연습1) 메소드없이 클래스 사용 class Person (var name:String, val brithYear:Int) //파라미터값은 클래스의 속성값이다 var a = Person("박보영", 1990) println("안녕하세요, ${a.birthYear}년생 ${a.name}입니다") //중괄호도 사용한다 연습2 ) 메소드사용 class Pers.. 2022. 3. 21. 코틀린(6) - 흐름제어, 논리연산자 흐름제어 기본 프로그래밍 언어와 동일 : return, break, continue 중첩 반복문에서 break나 continue가 적용되는 반복문을 lable통해 지정하는 법 코드가 다음과 같을 때 i가 1이고 j가 2면 모든 반복문을 종료해야 한다고 가정해보자. 고전적인 언어에서는 내부 반복문에서 조건을 체크하여 break를 하더라도 외부 반복문에서 또 다시 조건을 체크하여 모든 반복문을 수동으로 종료해야만 한다. for(i in 1..10){ for (j in 1..10){ if(i==1 && j==2) break //... } // 여기서 한번 더 체크 } 하지만 코틀린에서는 외부 반복문에 레이블 이름과 @ 기호를 달고 break 문에서 @과 레이블 이름을 달아주면 레이블이 달린 반복문을 기준으로 .. 2022. 3. 21. 이전 1 ··· 15 16 17 18 19 20 21 ··· 24 다음