kotlin
코틀린 : 생성과 사용 멤버 등의 개념
ChloeLee
2020. 10. 19. 21:08
1) 생성
enum class 열거형 상수 이름 {
열거형 상수 나열
}
2) 사용
열거형 상수 이름.열거형 상수
3) 멤버
name 속성은 나열된 상수 이름을 리턴
ordinal 속성을 호출하면 정수 값을 리턴
상수 이름을 나열 할 때 생성자를 이용해서 데이터를 설정하는 것이 가능
4) 옵션이 정수로 만들어진 경우 파악해야하는 부분
=> 숫자의 패턴이 1, 2, 3 처럼 연속성을 갖는지 아니면 1, 2, 3, 4, 8 처럼 2의 지수승인지 파악
연속성을 갖는 숫자 패턴이면 하나만 선택해서 설정
2의 지수승이면 조합 가능 > 하나의 비트만 1인 경우
조합을 할 때는 2개의 옵션을 +로 결합해도 되고 |로 해도 됩니다.
A: 65
B: 66
C: 67
마우스 왼쪽 : 1
마우스 오른쪽: 2
shift : 4
control : 8
마우스 미들 버튼 : 16
alt : 32
=> 이런 형태의 또 다른 조합으로 안드로이드에서 레이아웃 설정 할 때 가로 맞춤과 세로 맞춤 같은 옵션
=> 이런 옵션을 사용 할 때 옵션 전체를 사용하고자 하면 -1 이라고 설정하면 된다.
=> 정수를 리턴하는 메소드나 정수를 설정해야하는 메소드의 경우에 음수가 필요 없는 경우라면 -1 은 가장 큰 수 (모든 비트가 1인 수)
재생 횟수 같은 곳에 -1 을 설정 하면 무한대 (가장 큰 수)이고 위치의 경우는 -1 은 끝까지 갔는데 못 찾은 경우이다.
5) Kotlin에서는 enum 자료형에는 나열된 열거형 상수 이외의 값은 설정 할 수 없다
//주생성자에 설정한 프로퍼티가 equals 할 때 비교가 됩니다.
data class User(val id: String, var pw:String) {
var email : String = ""
}
enum class Priority(val no:Int){
MAX(10), NORMAL(5), MIN(1)
}
fun main (args: Array<String>){
var Priority : Priority = Priority.MAX
// priority = 10 //ERROR : 열거형 상수에 정수 값을 직접 대입하는 것은 에러
val user1 : User = User("adam", "1234")
user1.email = "xxx@gmail.com"
//user1의 내용을 출력
println(user1)
println(user1.toString())
val user2 : User = User("adam", "1234")
user2.email = "xxx@gmail.com"
println(user1 == user2)
println(user1.equals(user2))
val user3 : User = User("adam", "1234")
user2.email = "yyy@gmail.com"
println(user1 == user3) // 내용 비교하며 주생성자의 프로퍼티만 비교
println(user1.equals(user3))
// 해시 코드 비교
println(user1 === user3)
val user4 : User = user3.copy("yyys")
println(user4)
println(user4.email)
}