객체지향 프로그래밍?
프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
◼ 접근제한자
▲ 접근제한자 종류
▲ 접근제한자의 장점
◼ 예외처리
▲ 예외처리 예시
1. try-catch 구조
fun method1() {
try {
예외가 발생할 가능성이 존재하는 코드
} catch(예외종류) {
예외가 발생했을 때 처리할 코드
}
}
2. throw 구조
fun method1(num1:Int) {
if(num1 > 10) {
throw 예외종류
}
}
▲ 예외처리 사용
◼ 지연초기화
▲ 지연초기화 방법 및 예시
◼ Null 세이프티
▲ Null 세이프티 방법
◼ 배열
-> 변수에 순서를 매겨서 활용 할 수있다.
▲ 배열 사용방법
var arr = arrayOf(1,2,3,4,5)
▲ 배열 사용
var scores = arrayOf(90, 92, 95)
◼ 컬렉션
-> 개발에 유용한 자료구조인 List, Map, Set을 지원한다.
▲ 컬렉션 사용방법
- List
: 읽기전용과 수정가능한 종류로 구분된다.
: 배열과 다르게 크기가 정해져있지 않아서 동적으로 값을 추가할 수 있다.
var scores1 = listOf(값1, 값2, 값3)
var scores2 = mutableListOf(값1, 값2, 값3)
scores.set(인덱스, 값)
var scores3 = ArrayList<자료형>(값1, 값2, 값3)
scores3.set(인덱스, 값)
- Map
: Key와 Value와 한 쌍으로 이루어진 자료형이다.
: 읽기전용과 수정가능한 종류로 구분된다.
var scoreInfo1 = mapOf("kor" to 94, "math" to 90, "eng" to 90)
println(scoreInfo1["kor"])
var scoreInfo2 = mutableMapOf("kor" to 94, "math" to 90)
scoreInfo2["eng"] = 92
println(scoreInfo2["eng"])
for((k,v) in scoreInfo2) {
println("${k}의 값은 ${v}입니다.")
}
- Set
: 순서가 존재하지 않고 중복없이 데이터를 관리하는 집합 자료형이다.
: 읽기전용과 수정가능한 종류로 구분된다.
: 다른 컬렉션들은 요소를 찾는데 집중하지만, Set은 요소가 존재하는지에 집중한다.
: 교집합, 차집합, 합집합으로 간편하게 요소를 추출 할 수 있다.
var animalSet = setOf("강아지", "고양이", "토끼")
println("동물의 크기는 ${animalSet.size}입니다.")
var findAmimal = readLine()!!
if(animalSet.contains(findAnimal)) {
println("${findAnimal} 종류는 존재합니다.")
} else {
println("${findAnimal}은 존재하지 않습니다.")
}
◼ Single-expression function (람다식)
▲ 람다식 구조
{매개변수1, 매개변수2... ->
코드
}
◼ 싱글턴
▲ 싱글턴 장점
정보가 많아서 도움이 많이 됐습니다.