스파르타/Kotlin(11)
-
[Kotlin/코틀린] 11. 확장함수, 비동기 프로그래밍, 쓰레드, 코루틴
11. 확장함수 코틀린에서는 자바와 달리 외부에서 클래스의 메소드를 추가할 수 있다. 기존 클래스에 쉽게 메소드를 추가할 수 있다. 과도하게 사용하면 코드의 가독성을 해칠 수 있지만 장점도 존재한다. 원하는 메소드가 있지만 내가 설계한 클래스가 아닐 때 외부에서 메소드를 관리한다. 내 목적을 위해 외부에서 관리하기 때문에 원본 클래스의 일관성을 유지할 수 있다. 예시 코드 Student 클래스에 이름과 나이만 출력하는 displayInfo 함수만 존재하는데 추가로 등급까지 조회를 하고 싶다. 요구사항 X개발자가 클래스를 만들어서 전달해줬는데 나는 다른 기능도 추가되었으면 해요 A개발자도 본인이 사용할 메소드가 추가적으로 필요하다고 해요 B개발자도 본인이 사용할 메소드가 추가적으로 필요하다고 해요 X개발자..
2023.12.19 -
[Kotlin/코틀린] 10. 유용한 기능(일반 자료형 변환, 객체 자료형 변환, 업 캐스팅, 다운 캐스팅, Is, Pair, Triple, Scope Functions)
10. 유용한 기능 (자료형 변환) 일반 자료형간의 변환 - 숫자 자료형끼리는 to자료형() 메소드를 활용할 수 있다. - 문자열을 숫자로 변경할 때는 별도의 메소드가 필요하다. 일반 자료형 변환 예시 코드 var num1 = 20 var num2 = 30.2 var num3 = num2.toInt() var num4 = num1.toDouble() var strNum5 = "10" var strNum6 = "10.21" var num5 = Integer.parseInt(strNum5) var num6 = strNum6.toDouble() println("num3: $num3") println("num4: $num4") println("num5: $num5") println("num6: $num6") 객..
2023.12.19 -
[Kotlin/코틀린] 9. 배열(Array), 컬렉션(List, Map, Set), Single-expression function
4주차 '객체지향 프로그래밍의 심화' 강의 내용 정리 9-1. 배열 배열은 동일한 데이터 타입을 가진 여러 요소를 저장하는 자료 구조이다. 일반적으로 변수를 선언하면 코틀린은 랜덤으로 생성한다. 변수의 위치정보가 연속적이지 않기 때문에 순서가 없다. 코틀린에서 배열을 선언하고 초기화하는 방법은 다양하다. arrayOf는 코틀린에서 배열을 생성하고 초기화하는 함수 중 하나이다. 실습 예제 arrayOf 메소드 호출 // arrayOf메소드를 호출하면 배열을 리턴해줍니다 // 1,2,3,4,5 각각을 저장한 변수 5개를 배열형태로 arr에 저장합니다 var arr = arrayOf(1,2,3,4,5) // 배열요소를 모두 출력합니다 println(Arrays.toString(arr)) // 배열의 첫번째 요..
2023.12.19 -
[Kotlin/코틀린] 8. 접근제한자, 예외 처리, 지연초기화, 널 세이프티
4주차 '객체지향 프로그래밍의 심화' 강의 내용 정리 8-1. 접근제한자 변수나 메소드의 접근을 제한할 수 있다. 코틀린에서는 public, private, internal, protected 로 접근을 제한한다. 객체를 이용해서 변수나 메소드를 호출할 수 있는 지의 여부를 접근이라고 한다. 용어 정리 프로젝트 : 최상단 개념이고 를 포함한다. 모듈 : 프로젝트 아래의 개념이고 를 포함한다. 패키지 : 모듈 아래의 개념이고 를 포함한다. public : 명시하지 않으면 기본적으로 public 이다. (어디서나 접근 가능) private : 동일한 클래스 내부에서만 접근할 수 있다. internal : 같은 모듈 내부에서만 접근할 수 있다. protected : 기본적으로 private 이지만 상속을 받은..
2023.12.12 -
[Kotlin/코틀린] 7. 상속, 오버라이딩(Overriding), 오버로딩(Overloading), 인터페이스(Interface)
3주차 '객체 지향 프로그래밍의 기초' 강의 내용 정리 7-1. 상속 클래스를 상속한다는 것은 객체 지향 프로그래밍(OOP)에서 중요한 개념 중 하나이다. 코틀린에서는 다른 언어들과 달리 기본적으로 모든 클래스는 상속이 막혀있다. 클래스를 상속할 때 open 키워드를 사용해야 한다. 이는 무분별한 상속으로 인해 예상치 못한 흐름을 방지하기 위한 조치이다. 공통적인 요소들이 있다면 부모/자식 클래스를 구분해서 상속관계를 만들 수 있다. 코틀린에서는 다른 언어들과 달리 생략된 final 키워드로 기본적으로 상속을 막아두었다. 상속이 필요한 이유 다형성을 구현할 수 있다. 클래스의 내용을 변경해야 하는 경우 부모 클래스만 변경하는 것으로 유지보수의 공수를 줄일 수 있다. 7-2. 오버라이딩 (Overridin..
2023.12.11 -
[Kotlin/코틀린] 6. 생성자(Constructor), 객체(Object)
3주차 '객체 지향 프로그래밍의 기초' 강의 내용 정리 6-1. 생성자 (Constructor) 클래스를 초기화하고 객체를 생성하는데 사용되는 특별한 함수이다. 생성자는 기본 생성자와 명시적 생성자가 존재한다. 기본 생성자 : 이전까지 클래스를 만들던 행위와 차이가 없다. 명시적 생성자 : 주 생성자와 부 생성자로 구분할 수 있다. Init (주 생성자) 사용 예시 fun main() { } // 클래스 선언부에 생성자를 명시함 class Character(_name:String, _hairColor:String, _height:Double) { var name:String = "" var hairColor:String = "" var height:Double = 0.0 // 매개변수를 직접 넘기지않음 ..
2023.12.11