Kotlin 대상 에 대한 자세 한 설명(2)
5256 단어 Kotlin대상 을 향 하 다
Kotlin 의 대상 지향(1)에서 Kotlin 류 의 관련 조작 을 소 개 했 고 본 고 는 상기 글 을 바탕 으로 속성,인터페이스 등 똑 같이 중요 한 대상 을 대상 으로 하 는 기능 을 계속 소개 할 것 이다.
속성
class AttrDemo{
private var attr1 : String = "";
protected var attr2 : String = "";
public var attr3 : String = "";
var varattr : String = "";
val valattr : String = "";
var attr = 1;
}
속성 은 모든 대상 에서 가장 기본 적 인 단위 이자 없어 서 는 안 될 일부분 입 니 다.자바 와 마찬가지 로 Kotlin 도 private,proctected,Public 세 가지 성명 변 수 를 제공 하 는 방식 입 니 다.다른 것 은 Kotlin 에서 성명 접근 권한 이 없 으 면 기본적으로 Public 형식,즉 다른 곳 에서 도 접근 할 수 있 습 니 다.이 동시에 Kotlin 은 var 와 val 이 속성 을 나타 내 는 읽 기와 쓰기 권한 을 제공 합 니 다.var 는 읽 기와 쓰기 가 가능 한 변수 이 고 val 은 읽 기 전용 변수 이 며 자바 의 final 과 유사 합 니 다.주의 가 필요 합 니 다.Kotlin 은 빈 안전 에 대한 요구 가 매우 엄격 하기 때문에 모든 속성 을 초기 화해 야 하기 때문에 속성 유형 을 직접 할당 하 는 방식 으로 설명 할 수도 있 습 니 다.반드시 뒤에서 콜론 을 통 해 추가 하 는 것 이 아 닙 니 다.그러나 자바 문법 에 익숙 한 개발 자 에 게 는 속성 을 표시 하 는 유형 일 수 있 으 며,스 크 립 트 언어 에 익숙 한 개발 자 는 직접 값 을 부여 하 는 경향 이 있 을 수 있 습 니 다.
Kotlin 에서 get 과 set 방법 은 필수 가 아 닙 니 다.Kotlin 은 get 과 set 방법 을 자동 으로 처리 하기 때문에 속성 을 직접 호출 하 는 방식(4567915 참조)으로 변 합 니 다.그러나 Kotlin 은 get 과 set 를 사용 하 는 독특한 방식 이 있 습 니 다.
private var attr1 : String
get() = attr1.toString()
set(value) {
attr1 = value
}
protected var attr2 : String
get() {
//TODO GET
return attr2.toString()
}
set(value) {
attr2 = value
}
Kotlin 은 get 과 set 를 여러 가지 설정 하 는 방법 을 제공 합 니 다.위의 코드 에 서 는 두 가지 get 방법 과 set 방법 을 보 여 줍 니 다.때로는 get,set 의 접근 권한 을 바 꾸 거나 주 해 를 사용 하고 싶 을 때 get,set 를 직접 조작 할 수 있 습 니 다.
var attr4 : String = "" //
private set
인터페이스자바 와 유사 하 게 Kotlin 은 인터페이스의 키워드 로 인터페이스 를 사용 하 는데 추상 류 에 비해 추상 적 인 방법 과 방법의 실현 을 포함 할 수 있 으 나 인 터 페 이 스 는 상 태 를 저장 할 수 없다.
interface mInterfaceDemo{
fun function1()
fun function2(){
}
}
계승 방식 과 비슷 하고 인 터 페 이 스 를 실현 하 는 것 도 콜론":"을 사용 하지만 방법 은 약간 다르다.
class InterfaceDemoImpl : mInterfaceDemo{
override fun function1() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
}
우 리 는 인터페이스 에서 속성 을 설명 할 수 있 지만 인터페이스의 속성 은 추상 적 이거 나 방문 기의 실현 을 제공 할 수 있다.인터페이스 속성 은 예비 필드 가 있어 서 는 안 되 며,액세스 기 는 그것들 을 인용 할 수 없습니다.범 형
범 형 은 프로 그래 밍 언어의 한 특성 이다.프로그래머 가 강 한 유형의 프로 그래 밍 언어 에서 코드 를 작성 할 때 가 변 적 인 부분 을 정의 할 수 있 도록 합 니 다.그 부분 은 사용 하기 전에 반드시 밝 혀 야 합 니 다.자바 와 같이 Kotlin 의 클래스 는 유형 매개 변 수 를 가 질 수 있 습 니 다.
class GenericDemo<T>(t : T){
var value = t
}
일반적으로 우 리 는 이렇게 대상 을 구축 해 야 한다.
val generic: GenericDemo<Int> = GenericDemo<Int>(1)
그러나 형식 이 추정 이 필요 하 다 면 무시 형식의 매개 변 수 를 입력 하여 만 들 수도 있 습 니 다.
val generic = GenericDemo(1)
상감 류Kotlin 의 클래스 도 다른 클래스 에 끼 워 넣 을 수 있 습 니 다.
class Outer {
private val bar: Int = 1
class Nested {
fun foo() = 2
}
}
inner 수식 자 를 통 해 외부 클래스 에 대한 인용 을 추가 하여 내부 클래스 가 외부 클래스 의 속성 을 호출 할 수 있 도록 합 니 다.
class Outer {
private val bar: Int = 1
inner class Inner {
fun foo() = bar
}
}
val demo = Outer().Inner().foo() //==1
익명 내부 클래스 에 대해 대상 표현 식 을 통 해 만 듭 니 다.
mvp_button.setOnClickListener(object : View.OnClickListener{
override fun onClick(v: View?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
});
대상 이 함수 식 자바 인터페이스의 인 스 턴 스(예 를 들 어 추상 적 인 방법 만 있 는 자바 인터페이스)라면 인터페이스 형식의 lambda 표현 식 으로 만 들 수 있 습 니 다.
mvp_button.setOnClickListener {
startActivity(Intent(MainActivity@this,MVPActivity::class.java))
}
매 거 류매 거 류 의 가장 기본 적 인 용법 은 유형 안전 을 실현 하 는 매 거 이 며,모든 자체 상수 가 하나의 대상 이다.매 거 상수 가 쉼표 를 통 해 분리 된다.
enum class Direction {
EAST,NORTH,SOUTH,WEST
}
매 거 진 대상 마다 하나의 실례 이기 때문에 우 리 는 그것 을 초기 화 할 수 있다
enum class Color(val rgb: Int) {
RED(0xFF0000),
GREEN(0x00FF00),
BLUE(0x0000FF)
}
매 거 진 대상 의 내용 을 호출 해 야 할 때,value of 를 통 해 매 거 진 대상 의 값 을 가 져 오 거나,values 를 통 해 매 거 진 대상 을 가 져 올 수 있 습 니 다.
Direction.EAST
Direction.valueOf("EAST");
Direction.values()
지정 한 이름 이 매 거 진 클래스 에 일치 하지 않 으 면 value Of()방법 은 매개 변수 이상 을 던 집 니 다.Kotlin 에서 핵 대상 을 대상 으로 하 는 내용 은 여기까지 입 니 다.관련 코드 는 모두Kotlin 의 첫 번 째 줄 코드에 제출 되 었 습 니 다.
본문 원본 다운로드:github
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
머티리얼 디자인 도입 직후에 할 일안드로이드 프로젝트에 머티리얼 디자인을 도입한 후에 할 일을 적는다. Android 프로젝트를 만든 후 Hello world에 대해 수행합니다. 머티리얼 디자인을 도입하기 위해, build.gradle 를 이하와 같...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.