Kotlin 대상 에 대한 자세 한 설명(2)

Kotlin 대상 에 대한 자세 한 설명(2)
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
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기