Kotlin 대상 에 대한 자세 한 설명(1)
5335 단어 Kotlin대상 을 향 하 다
대상 을 향 하 다
대상 을 향 한 의 미 는 낯 설 지 않 을 것 이다.사물 을 대상 으로 추상 화하 여 프로그램의 개발 난이 도 를 크게 간소화 했다.우리 가 자주 사용 하 는 자바,Python,C++는 모두 대상 을 대상 으로 하 는 프로 그래 밍 언어 에 속한다.Kotlin 은 자바 와 비슷 하고 대상 을 대상 으로 하 는 언어 이기 도 합 니 다.Kotlin 에서 가장 중요 한 부분 으로서 우 리 는 Kotlin 의 OOP 를 통 해 이 언어 를 이해 할 수 있다.본 고 는 유형,속성,인터페이스,대상 등 여러 측면 에서 Kotlin 의 대상 을 대상 으로 하 는 특성 을 소개 할 것 이다.
종류
대부분의 언어 와 유사 합 니 다.Kotlin 은 클래스 의 키 워드 를 사용 합 니 다.클래스 를 설명 할 때 클래스 에 클래스 이름 을 추가 하 는 방식 으로 이 루어 져 야 합 니 다.
class ClassDemo{
}
클래스 를 설명 할 때,최소한 클 라 스 키워드 와 뒤의 클래스 이름 을 포함해 야 하 며,필요 에 따라 클래스 헤드(일부 파 라 메 터 를 설명 하 는 데 사용)와 클래스(괄호{}에 포 함 된 내용 은 생략 할 수 있 습 니 다)를 추가 할 수도 있 습 니 다.구조 함수
자바 와 달리 여러 개의 구조 함 수 를 포함 할 수 있 지만 자바 의 각 구조 함 수 는 모두 평 급 이 고 Kotlin 에 서 는 2 급(주 구조 함수 와 2 급 구조 함수)으로 나 뉘 어 있 습 니 다.주 구조 함 수 는 클래스 헤드 에 포함 되 어 있 기 때문에 init 방법 에서 추가 적 인 조작 이 필요 합 니 다.2 급 구조 함 수 는 함수 체 에서 모든 조작 을 실현 할 수 있 습 니 다.
// ,constructor init
class ClassDemo constructor(type:String){
init{
System.out.println(type)
}
}
주 구조 함수 에 들 어 오 는 매개 변 수 는 클래스 에서 속성 할당 을 할 수도 있 고 주 구조 함수 에서 직접 설명 할 수도 있 습 니 다.
class ClassDemo(type:String, var prop2: String = type){
var prop1 = type
}
2 급 구조 함 수 는 constructor 를 포함해 야 합 니 다.
class ClassDemo{
constructor(type:String){
System.out.println(type)
}
}
주 구조 함수 가 있 는 클래스 에 있어 서 모든 2 급 구조 함 수 는 다른 2 급 구조 함수 대리 주 구조 함 수 를 직접 또는 간접 적 으로 통과 해 야 한다.같은 클래스 에서 다른 구조 함 수 를 대리 하여 this 키 워드 를 사용 합 니 다:
//
class ClassDemo(type:String){
constructor(type:String, param:String):this(type){
System.out.println(type + param)
}
}
주 구조 함 수 를 설명 하 든 안 하 든 Kotlin 은 구조 함수 의 방법 을 제공 합 니 다.어떤 유형의 구조 함 수 를 노출 시 키 지 않 으 려 고 할 수도 있 습 니 다(예 를 들 어 단일 모드 를 실현 할 때).그러면 주 구조 함 수 를 처리 해 야 합 니 다.
class ClassDemo private constructor(){
}
인 스 턴 스 를 만 들 려 면 해당 하 는 구조 함 수 를 직접 호출 하여 만 들 수 있 습 니 다.
var demo = ClassDemo("hello world")
val demo = ClassDemo("hello","world")
Kotlin 에 서 는 속성 을 설명 하 든 인 스 턴 스 를 만 드 든 두 가지 방식 이 있 습 니 다.var 와 val,val 은 자바 의 final 과 유사 합 니 다.이 를 통 해 설명 하 는 내용 은 변 할 수 없 으 며,var 와 val 은 반대로 성명 의 내용 은 읽 을 수도 있 고 수정 할 수도 있 습 니 다.이어받다
Kotlin 에 서 는 모든 클래스 가 Any 라 는 부모 클래스 를 기본적으로 계승 하지만 Any 는 자바 의 Object 클래스 와 완전히 같 지 않 습 니 다.equals(),hashCode(),toString()세 가지 방법 만 있 기 때 문 입 니 다.부모 클래스 를 정의 하려 면 open 키 워드 를 사용 해 야 합 니 다.
open class Base{
}
그리고 하위 클래스 에서 콜론":"을 사용 하여 계승 합 니 다.
class SubClass : Base(){
}
부모 클래스 에 구조 함수 가 있다 면 하위 클래스 의 주 구조 함수 에서 계승 해 야 합 니 다.없 으 면 주 구조 함수 나 2 급 구조 함 수 를 선택 할 수 있 습 니 다.
//
open class Base(type:String){
}
//
class SubClass(type:String) : Base(type){
}
다시 쓴다Kotlin 의 재 작성 과 자바 에서 도 다 릅 니 다.Kotlin 은 모든 조작 이 명확 하 다 고 주장 하기 때문에 재 작성 하고 자 하 는 방법 을 open 으로 설정 해 야 합 니 다.
open fun funDemo() {}
그리고 override 표 시 를 통 해 재 작성 합 니 다.
override fun funDemo() {
super.funDemo()
}
override 재 작성 함수 도 open 입 니 다.재 작성 되 지 않 기 를 원한 다 면 앞에서 final 탭 을 추가 할 수 있 습 니 다.
open class SubClass : Base{
constructor(type:String) : super(type){
}
final override fun funDemo() {
super.funDemo()
}
}
하나의 클래스 가 동시에 계승 되 고 여러 개의 인 터 페 이 스 를 실현 할 때 다시 쓰 는 방법 이 부모 클래스 와 인터페이스 에 정의 되 어 있 으 면 슈퍼<>방식 으로 계승 할 수 있 습 니 다.
//
interface InterfaceDemo{
fun funDemo(){}
}
// Base InterfaceDemo
class SubClass : Base(),InterfaceDemo{
final override fun funDemo() {
super<Base>.funDemo()
super<InterfaceDemo>.funDemo()
}
}
밀봉 류밀봉 류 는 엄격 한 유형 구 조 를 대표 하 는 데 사용 되 고 값 은 유한 집합 중의 특정한 유형 일 뿐 다른 유형 이 될 수 없다.이것 은 매 거 진 클래스 의 확장 에 해당 합 니 다.매 거 진 값 집합 유형 은 엄격하게 제한 되 어 있 지만 매 거 진 상수 마다 하나의 인 스 턴 스 만 있 고 밀봉 류 의 하위 클래스 는 서로 다른 상 태 를 포함 하 는 여러 개의 인 스 턴 스 를 가 질 수 있 습 니 다.설명 밀봉 류 는 class 앞 에 sealed 장식 자 를 추가 해 야 합 니 다.밀봉 류 는 하위 클래스 가 있 을 수 있 지만 모두 밀봉 류 성명 내부 에 끼 워 넣 어야 합 니 다.
//
sealed class Expr {
class Const(val number: Double) : Expr()
class Sum(val e1: Expr, val e2: Expr) : Expr()
object NotANumber : Expr()
}
Kotlin 의 클래스 와 관련 된 용법 은 여기까지 소개 합 니 다.글 의 전체 코드 는github참조 이 고Kotlin 의 대상 지향(2)에서 속성,인터페이스 등 대상 을 대상 으로 하 는 과정 에서 똑 같이 흔히 볼 수 있 는 내용 을 소개 합 니 다.글 코드 다운로드:http://xiazai.jb51.net/201706/yuanma/helloKotlin-master(jb51.net).rar
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
머티리얼 디자인 도입 직후에 할 일안드로이드 프로젝트에 머티리얼 디자인을 도입한 후에 할 일을 적는다. Android 프로젝트를 만든 후 Hello world에 대해 수행합니다. 머티리얼 디자인을 도입하기 위해, build.gradle 를 이하와 같...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.