日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

内部类的使用

發布時間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内部类的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
類的內部成員之五:內部類 1. Java中允許將一個類A聲明在另一個類B中,則類A就是內部類,類B稱為外部類 2.內部類的分類:成員內部類(靜態、非靜態) vs 局部內部類(方法內、代碼塊內、構造器內) 3.成員內部類:一方面,作為外部類的成員:>調用外部類的結構>可以被static修飾>可以被4種不同的權限修飾另一方面,作為一個類:> 類內可以定義屬性、方法、構造器等> 可以被final修飾,表示此類不能被繼承。言外之意,不使用final,就可以被繼承> 可以被abstract修飾 4.關注如下的3個問題4.1 如何實例化成員內部類的對象4.2 如何在成員內部類中區分調用外部類的結構4.3 開發中局部內部類的使用 見《InnerClassTest1.java》 package com.wdl.day15;public class InnerClassTest {public static void main(String[] args) {//創建Dog實例(靜態的成員內部類):Person.Dog dog = new Person.Dog();dog.show();//創建Bird實例(非靜態的成員內部類): // Person.Bird bird = new Person.Bird();//錯誤的Person p = new Person();Person.Bird bird = p.new Bird();bird.sing();System.out.println();bird.display("黃鸝");} }class Person{String name = "小明";int age;public void eat(){System.out.println("人:吃飯");}//靜態成員內部類static class Dog{String name;int age;public void show(){System.out.println("卡拉是條狗"); // eat();}}//非靜態成員內部類class Bird{String name = "杜鵑";public Bird(){}public void sing(){System.out.println("我是一只小小鳥");Person.this.eat();//調用外部類的非靜態屬性eat();System.out.println(age);}public void display(String name){System.out.println(name);//方法的形參System.out.println(this.name);//內部類的屬性System.out.println(Person.this.name);//外部類的屬性}}public void method(){//局部內部類class AA{}}{//局部內部類class BB{}}public Person(){//局部內部類class CC{}}}

使用

package com.wdl.day15;public class InnerClassTest1 {//開發中很少見public void method(){//局部內部類class AA{}}//返回一個實現了Comparable接口的類的對象public Comparable getComparable(){//創建一個實現了Comparable接口的類:局部內部類//方式一: // class MyComparable implements Comparable{ // // @Override // public int compareTo(Object o) { // return 0; // } // // } // // return new MyComparable();//方式二:return new Comparable(){@Overridepublic int compareTo(Object o) {return 0;}};}}

注意點

在局部內部類的方法中(比如:show)如果調用局部內部類所聲明的方法(比如:method)中的局部變量(比如:num)的話,要求此局部變量聲明為final的。

jdk 7及之前版本:要求此局部變量顯式的聲明為final的
jdk 8及之后的版本:可以省略final的聲明

package com.atguigu.java;public class InnerClassTest {// public void onCreate(){ // // int number = 10; // // View.OnClickListern listener = new View.OnClickListener(){ // // public void onClick(){ // System.out.println("hello!"); // System.out.println(number); // } // // } // // button.setOnClickListener(listener); // // }public void method(){//局部變量int num = 10;class AA{public void show(){ // num = 20;System.out.println(num);}}}}

總結

總結

以上是生活随笔為你收集整理的内部类的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。