Kotlin中內部類的寫法
今天寫專案的時候碰到一個問題,按照java的習慣在Kotlin中寫出如下程式碼:
class Outer{
fun fOuter(){
}
class Inner{
fun fInner(){
fOuter()//此處編譯失敗,無法呼叫Outer類的方法
}
}
}
如果想在Inner類中呼叫fOuter()函式,編譯是不會通過的,我們習慣在java中使用Outer.this.fOuter()來呼叫,這個在Kotlin中是行不通的。
其實Kotlin裡自帶了關於內部類的關鍵字inner,正確的寫法如下:
class Outer{
fun fOuter(){
}
inner class Inner{
fun fInner(){
fOuter()
}
}
}
這樣在Kotlin中內部類的方法能呼叫外部類的方法了
相關推薦
Kotlin中內部類的寫法
今天寫專案的時候碰到一個問題,按照java的習慣在Kotlin中寫出如下程式碼:class Outer{ fun fOuter(){ } class Inner{ fun fInner(){ fOuter()//此處編譯失
Java 中內部類特性總結(吐血之作)
內部 不能 今天 了解 基本 靜態 外部類 pro this PS:今天花了整個下午時間看內部類相關的內容,因知識點多而雜,故記之如下。 一、內部類的作用 內部類看起來是一種代碼隱藏機制:將類置於其他類的內部。它還了解外部類,並能與之通信;使用內部類可以實現閉包;內部
java中內部類使用小結
內部類的宣告與訪問 內部類可以是static的也可以用其它四種訪問修飾符(而外部類只能使用public和 default修飾)。內部類所能實現的功能外部類也同樣可以全部實現,只是使用內部類可以使其更加簡潔高效。 內部類是一個編譯時概念,一旦編譯成功就會變成兩個完全不同
Java中內部類的定義及使用
一、定義 1.在一個類的內部進行其他類結構的巢狀的操作。 例: class Outer{ private String msg = "Hello World!"; //定義一個內部類 //*********************************
Kotlin 匿名內部類對象引用當前Activity的this用法
abstract sea 參數 自己 ride eat 匿名內部類 轉載 nac 一,Kotlin中匿名內部類,引用Activity的this用法為 this@MainActivity (對應自己的Activity),還是上代碼吧 class Main17Activity
[譯]Kotlin中內聯類(inline class)完全解析(一)
翻譯說明: 原標題: An Introduction to Inline Classes in Kotlin 原文地址: typealias.com/guides/intr… 原文作者: Dave Leeds 無論你是編寫執行在雲端的大規模資料流程程式還是低功耗手機執行的應用程式,大多數的開發者都希望
[譯]Kotlin中內聯類的自動裝箱和高效能探索(二)
翻譯說明: 原標題: Inline Classes and Autoboxing in Kotlin 原文地址: typealias.com/guides/inli… 原文作者: Dave Leeds 在上一篇文章中,我們知道了Kotlin的實驗階段的新特性內聯類是如何讓我們"建立需要的資料型別但是不
c# 中內部類的簡單介紹
最近在看java一方面的書籍,看到一個很奇怪的問題,java類中還可以再定義一個類,這種結構非常特殊!後來才發現我知識淺薄了,原來C#中也有內部類,之前都一直沒有注意過這個語法結構! 使用內部類有這樣幾個好處: (1)抽象外部類的某一狀態下的行為,隱藏實現,通過修
JAVA中內部類的繼承和覆蓋問題
在JAVA中,由於內部類的構建器必須連線到指向其外圍類物件的引用,所以在繼承內部類的時候會變得很複雜。問題在於指向外圍類物件的祕密引用必須得到初始化,而在匯出類中不再存在可連線的預設物件,我們必須使用
類中內部類中的方法訪問外部類中變數的示例
class Day10_11 { public static void main(String[] args) { Outer.Inner oi = new Outer().new Inner(); oi.print()
java中內部類的訪問呼叫
從Java1.1開始引入了內部類以來,它就引起了人們的激烈爭論。其實任何優秀的語言特性用得不好就是濫用,內部類用得不好就會導致程式碼像迷宮一樣,導致出現毫無重用的綜合徵。1、內部類分為成員內部類、靜態巢狀類、方法內部類、匿名內部類。幾種內部類的共性:A、內部類仍然是一個獨立
解決JAVA中內部類所對應的外部類引用初始化的問題
java內部類的分類 java內部類的分類:成員內部類、區域性內部類、靜態內部類(巢狀類)、匿名內部類。 在構建內部類物件時,需要一個指向其外部類物件的引用,而且這種引用的傳遞是通過內部類的構造器來完成的。 如果編譯器訪問不到這個引用就會報錯。 CASE 1: // 用.n
模板類中內部類的宣告方式
今天在做如下程式碼時,發現如下問題:第三行的程式碼編譯不過去。 typedef boost::shared_ptr<T> SandUnitPTR; typedef std::vector<SandUnitPTR> SandUnitPTRVec
JAVA中內部類和匿名內部類的區別,分別在什麼時候使用它們?
今天沒事,抽出時間總結了一下很多開發人員都想弄明白的一些JAVA基礎知識(內部類和匿名內部類)。 一、JAVA中內部類和匿名內部類的區別 內部類:內部類可以是static的或者非static的,static內部類只能包含靜態方法和靜態類變數,只能訪問外部類的
java/c++中內部類、匿名類
1.java中的內部類: class Outside{ private String nameString ; private int age; Outside() {
Java 中內部類、靜態內部類、列舉類
一、內部類 在另一個類中定義的類 內部類作用 1、內部類提供了更好的封裝。只能讓外部類直接訪問,不允許同一個包中的其他類直接訪問。 2、內部類可以直接訪問外部類的私有屬性,內部類被當成其外部類成員。當外部類不能訪問內部類的內部屬性。 內
java中內部類的建立四種情況,三種方式,及內部資料訪問許可權
內部類和外部類的關係,及內部靜態類的資料訪問許可權,宣告方式。 第一種,在外部類內部宣告使用內部類,內部類的型別為static和非 static型別,內部類資料型別為private,protected,public 型別的訪問許可權。外部類為非靜態宣告和許可權如下: p
java中內部類訪問區域性變數為什麼要定義區域性變數為final
因為方法內定義的變數是區域性變數,離開該方法,變數就失去了作用,也就會自動被消除,而內部類卻不會離開它所在方法就失去作用,它有更廣的生命週期,下面通過一個例項加以說明: 如例中所示,在外部類Outer中聲明瞭一個內部類TimerPrint,這個類中的方法引用了方法start
Java中內部類的記憶體洩露問題
package com.example.temptemp; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.Text
《java中內部類在區域性時,訪問許可權》
/* 內部類定義在區域性時, 1,不可以被成員修飾符修飾 2,可以直接訪問外部類中的成員,因為還持有外部類中的引用。 但是不可以訪問它所在的區域性中的變數。只能訪問被final修飾的區域性變數。 *