麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

(1)內部類小結

2019-11-14 08:50:49
字體:
來源:轉載
供稿:網友

InnerClass

       內部類:在一個類(外圍類OuterClass)中定義另一個類(內部類InnerClass),借用其他博主的舉例,外圍類是人,人由各個器官組成,如心臟,內部類是心臟,心臟有自己的屬性和方法,同時也可以訪問身體的屬性。InnerClass可以分成四大類:成員內部類、局部內部類、匿名內部類、靜態內部類。

1、成員內部類

package com.yuan.test;public class MerberInnerClass {	/**	 * @param args	 */	PRivate String name;	public int iNumber;	MerberInnerClass(String name, int iNumber) {		this.name = name;		this.iNumber = iNumber;	}	public void fun() {		System.out.println("hello");	}	public class InnerClass {		private int number = 0;		public int iNumber = 2;		public String getName() {			return name;		}		public int getNumber() {			return number;		}		public void fun() {			int iNumber = 3;			System.out.println("local variable is :" + iNumber);			System.out.println("inner variable is :" + this.iNumber);			System.out.println("outer variable is :"					+ MerberInnerClass.this.iNumber);//外圍類域訪問格式:OuterClass.this.field			MerberInnerClass.this.fun();//外圍類方法訪問格式:OuterClass.this.method		}	}	public static void main(String[] args) {		// TODO Auto-generated method stub		MerberInnerClass merber = new MerberInnerClass("Estelle", 1);		MerberInnerClass.InnerClass inner = merber.new InnerClass();// 外圍類引用內部類格式:outerObject.new InnerClass();		System.out.println("private name is :" + inner.getName());// 內部類可以訪問外圍內作用域中數據		System.out.println("private number is :" + inner.getNumber());		inner.fun();	}}運行結果:private name is :Estelleprivate number is :0local variable is :3inner variable is :2outer variable is :1hello 

成員內部類有以下特性:

內部類可以擁有private訪問權限、protected訪問權限、public訪問權限及包訪問權限。外部類只能被public和包訪問兩種權限修飾可訪問外圍類的所有成員屬性和方法成員內部類不存在任何static的變量和方法,個人理解是:成員內部類需訪問外圍類數據,即先有外圍類后有內部類,所以內部類不存在static變量或方法

2、局部內部類(Local Inner Class)

      局部內部類是定義在一個方法或者一個作用域里面的類,它和成員內部類的區別在于局部內部類的訪問僅限于方法內或者該作用域內。

package com.yuan.TalkClock;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Date;import javax.swing.Timer;public class TalkingClock {	public TalkingClock() {		// TODO Auto-generated constructor stub	}	public void start(int interval, final boolean beef) {//局部內部類可以訪問外圍類中修飾符為final的局部變量		class TimePrinter implements ActionListener {//局部內部類不能被申明為private、public			@Override			public void actionPerformed(ActionEvent e) {				// TODO Auto-generated method stub				Date now = new Date();				System.out.println("At the tone:" + now);				if (beef)					Toolkit.getDefaultToolkit().beep();			}		}		ActionListener listener = new TimePrinter();		Timer t = new Timer(interval, listener);		t.start(); }}

局部內部類有以下特性:    局部類不能用public或private訪問修飾符聲明,原因:類修飾符只能為public、private、final,局部變量修飾符只能為final    對同一個包中的其他類隱藏起來    不僅能訪問外部類,也可以訪問被final修飾的局部變量為什么只能訪問final修飾的局部變量?因為內部類代碼實際訪問的是新增構造器傳入外部本地變量值的復制,即在構造其中新增一個特殊字段,在內部類中修改新增字段并不能反饋到鄭重的外部類本地變量中,為了保證修改變量的一致性,選擇final修飾符確保變量同步性

3、匿名內部類

public class OuterClass {    private String name ;    private int age;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }        class InnerClass{        public InnerClass(){            name = "chenssy";            age = 23;        }    }}匿名內部類特性:借用think in java    內部類可以用多個實例,每個實例都有自己的狀態信息,并且與其他外圍對象的信息相互獨立。    在單個外圍類中,可以讓多個內部類以不同的方式實現同一個接口,或者繼承同一個類。    創建內部類對象的時刻并不依賴于外圍類對象的創建。    內部類并沒有令人迷惑的“is-a”關系,他就是一個獨立的實體。    內部類提供了更好的封裝,除了該外圍類,其他類都不能訪問。

4、靜態內部類

        只需要將一個類隱藏到另一類中,不需要內部類引用外圍類,則可以使用static Inner Class,俗稱嵌套內部類。用static 將內部內靜態化,內部類就只能訪問外部類的靜態成員變量,可以直接用OuterClass.InnerClass。

package com.yuan.test;public class Out {	/**	 * @param args	 */	private static int age = 12;        public static class In {        public static void print() {            System.out.println(age);        }    }    public static void main(String[] args) {        Out.In in = new Out.In();        in.print();    } }運行結果:12


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: www.国产一区.com | 亚洲精品永久视频 | 久久久久久久久久综合 | 欧美日韩在线看片 | 日本在线免费观看 | 欧美成年人视频在线观看 | 国产精品自拍99 | 国产精品视频成人 | 蜜桃视频观看麻豆 | 特黄一级小说 | 成人啪啪18免费网站 | 免费国产人成网站 | 91九色免费视频 | 久久最新网址 | 久久国产成人精品国产成人亚洲 | 亚洲国产精品久久久久制服红楼梦 | 少妇一级淫片免费看 | 成人精品免费在线观看 | 一级做a爱性色毛片免费1 | 国产精品久久久久久久久久 | 操操操操网 | 龙床上的呻吟高h | 久久久久亚洲美女啪啪 | 羞羞视频免费网站日本动漫 | 在线91视频 | 91美女福利视频 | 免费观看一级黄色片 | 久久吊| 精选久久| 欧美成年人视频在线观看 | 国产毛片自拍 | 日本aⅴ在线 | 国产女厕一区二区三区在线视 | 九九热精品在线 | 一道本不卡一区 | 国产精品久久久久久久久久三级 | 精品国产乱码久久久久久丨区2区 | 视频一区 在线 | 久久久久久久久久久久99 | 精品国产一区二区三区久久久狼牙 | 成人精品久久 |