国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaSE】Java基礎(chǔ)語法(二十一):內(nèi)部類

這篇具有很好參考價值的文章主要介紹了【JavaSE】Java基礎(chǔ)語法(二十一):內(nèi)部類。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。




【JavaSE】Java基礎(chǔ)語法(二十一):內(nèi)部類

1. 內(nèi)部類的基本使用

  • 內(nèi)部類概念

    • 在一個類中定義一個類。舉例:在一個類A的內(nèi)部定義一個類B,類B就被稱為內(nèi)部類
  • 內(nèi)部類定義格式

    • 格式&舉例:
/*
	格式:
	class 外部類名{
		修飾符 class 內(nèi)部類名{
		}
	}
*/

class Outer {
	public class Inner {
	}
}
  • 內(nèi)部類的訪問特點

    • 內(nèi)部類可以直接訪問外部類的成員,包括私有
    • 外部類要訪問內(nèi)部類的成員,必須創(chuàng)建對象
  • 示例代碼:

/*
	內(nèi)部類訪問特點:
	內(nèi)部類可以直接訪問外部類的成員,包括私有
	外部類要訪問內(nèi)部類的成員,必須創(chuàng)建對象
*/
public class Outer {
	private int num = 10;
	
	public class Inner {
		public void show() {
			System.out.println(num);
		}
	}
	
	public void method() {
		Inner i = new Inner();
		i.show();
	}
}

2. 成員內(nèi)部類

  • 成員內(nèi)部類的定義位置
    • 在類中方法,跟成員變量是一個位置
  • 外界創(chuàng)建成員內(nèi)部類格式
    • 格式:外部類名.內(nèi)部類名 對象名 = 外部類對象.內(nèi)部類對象;
    • 舉例:Outer.Inner oi = new Outer().new Inner();
  • 私有成員內(nèi)部類
    • 將一個類,設(shè)計為內(nèi)部類的目的,大多數(shù)都是不想讓外界去訪問,所以內(nèi)部類的定義應該私有化,私有化之后,再提供一個可以讓外界調(diào)用的方法,方法內(nèi)部創(chuàng)建內(nèi)部類對象并調(diào)用。
    • 示例代碼:
class Outer {
	private int num = 10;
	private class Inner {
		public void show() {
			System.out.println(num);
		}
	}
	
	public void method() {
		Inner i = new Inner();
		i.show();
	}
}

public class InnerDemo {
	public static void main(String[] args) {
		//Outer.Inner oi = new Outer().new Inner();
		//oi.show();
		Outer o = new Outer();
		o.method();
	}
}
  • 靜態(tài)成員內(nèi)部類
    • 靜態(tài)成員內(nèi)部類訪問格式:外部類名.內(nèi)部類名 對象名 = new 外部類名.內(nèi)部類名();
    • 靜態(tài)成員內(nèi)部類中的靜態(tài)方法:外部類名.內(nèi)部類名.方法名();
    • 示例代碼
class Outer {
	static class Inner {
	public void show(){
		System.out.println("inner..show");
	}
	
	public static void method(){
		System.out.println("inner..method");
	}
	}
}

public class Test3Innerclass {
	/*
		靜態(tài)成員內(nèi)部類演示
	*/
	public static void main(String[] args) {
		// 外部類名.內(nèi)部類名 對象名 = new 外部類名.內(nèi)部類名();
		Outer.Inner oi = new Outer.Inner();
		oi.show();
		Outer.Inner.method();
	}
}

3. 局部內(nèi)部類

  • 局部內(nèi)部類定義位置
    • 局部內(nèi)部類是在方法中定義的類
  • 局部內(nèi)部類方式方式
    • 局部內(nèi)部類,外界是無法直接使用,需要在方法內(nèi)部創(chuàng)建對象并使用
    • 該類可以直接訪問外部類的成員,也可以訪問方法內(nèi)的局部變量
  • 示例代碼
class Outer {
	private int num = 10;
	public void method() {
		int num2 = 20;
		class Inner {
			public void show() {
				System.out.println(num);
				System.out.println(num2);
			}
		}
		
		Inner i = new Inner();
		i.show();
	}
}

public class OuterDemo {
	public static void main(String[] args) {
		Outer o = new Outer();
		o.method();
	}
}

4. 匿名內(nèi)部類

  • 匿名內(nèi)部類的前提
    • 存在一個類或者接口,這里的類可以是具體類也可以是抽象類
  • 匿名內(nèi)部類的格式
    • 格式:new 類名 ( ) { 重寫方法 } new 接口名 ( ) { 重寫方法 }
    • 舉例:
new Inter(){
	@Override
	public void method(){}
}
  • 匿名內(nèi)部類的本質(zhì)
    • 本質(zhì):是一個繼承了該類或者實現(xiàn)了該接口的子類匿名對象
  • 匿名內(nèi)部類的細節(jié)
    • 匿名內(nèi)部類可以通過多態(tài)的形式接受
    Inter i = new Inter(){
    	@Override
    		public void method(){
    	}
    }
    
  • 匿名內(nèi)部類直接調(diào)用方法
interface Inter{
	void method();
}

class Test{
	public static void main(String[] args){
		new Inter(){
			@Override
			public void method(){
				System.out.println("我是匿名內(nèi)部類");
			}
		}.method(); // 直接調(diào)用方法
	}
}

5. 匿名內(nèi)部類在開發(fā)中的使用(應用)

  • 匿名內(nèi)部類在開發(fā)中的使用
    • 當發(fā)現(xiàn)某個方法需要,接口或抽象類的子類對象,我們就可以傳遞一個匿名內(nèi)部類過去,來簡化傳統(tǒng)的代碼
  • 示例代碼:
/*
游泳接口
*/
interface Swimming {
void swim();
}

public class TestSwimming {
	public static void main(String[] args) {
		goSwimming(new Swimming() {
		@Override
		public void swim() {
			System.out.println("鐵汁, 我們?nèi)ビ斡景?);
		}
		});
	}
	
	/**
	* 使用接口的方法
	*/
	public static void goSwimming(Swimming swimming){
		/*
		Swimming swim = new Swimming() {
			@Override
			public void swim() {
				System.out.println("鐵汁, 我們?nèi)ビ斡景?);
			}
		}
		*/
		swimming.swim();
	}
}

【JavaSE】Java基礎(chǔ)語法(二十一):內(nèi)部類文章來源地址http://www.zghlxwxcb.cn/news/detail-467265.html

到了這里,關(guān)于【JavaSE】Java基礎(chǔ)語法(二十一):內(nèi)部類的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java內(nèi)部類詳解(含:成員內(nèi)部類、局部內(nèi)部類、匿名內(nèi)部類、靜態(tài)內(nèi)部類)

    Java內(nèi)部類詳解(含:成員內(nèi)部類、局部內(nèi)部類、匿名內(nèi)部類、靜態(tài)內(nèi)部類)

    字面意思,在類的內(nèi)部編寫的類就叫內(nèi)部類!即一個類的內(nèi)部又完整的嵌套了另一個類結(jié)構(gòu),被嵌套的類稱為內(nèi)部類(inner class),嵌套其他類的類稱為外部類(outer class)。 內(nèi)部類是類的第五大成員→【提示:類的五大成員是哪些?[屬性、方法、構(gòu)造器、代碼塊、內(nèi)部類]】 內(nèi)部類一

    2024年04月24日
    瀏覽(22)
  • 【JavaSE】Java基礎(chǔ)語法(十八):接口

    【JavaSE】Java基礎(chǔ)語法(十八):接口

    接口就是一種公共的規(guī)范標準,只要符合規(guī)范標準,大家都可以通用。 Java中接口存在的兩個意義 用來定義規(guī)范 用來做功能的拓展 接口用interface修飾 類實現(xiàn)接口用implements表示 接口不能實例化 我們可以創(chuàng)建接口的實現(xiàn)類對象使用 接口的子類 要么重寫接口中的所有抽

    2024年02月06日
    瀏覽(20)
  • 【JavaSE】java刷題——基礎(chǔ)語法熟練應用

    【JavaSE】java刷題——基礎(chǔ)語法熟練應用

    通過本篇題目,可以讓初學Java的小伙伴們更加熟練Java的基礎(chǔ)語法~ 歡迎關(guān)注個人主頁:逸狼 創(chuàng)造不易,可以點點贊嗎~ 如有錯誤,歡迎指出~ ?題述:編寫程序數(shù)一下 1到 100 的所有整數(shù)中出現(xiàn)多少個數(shù)字9 分兩步 取個位上的9 ?有9 19 29……99 有10個 取十位上的9 ?有90 91 92 93…

    2024年04月17日
    瀏覽(24)
  • 【JavaSE】Java基礎(chǔ)語法(十二):ArrayList

    【JavaSE】Java基礎(chǔ)語法(十二):ArrayList

    集合和數(shù)組的區(qū)別 : 共同點:都是存儲數(shù)據(jù)的容器 不同點:數(shù)組的容量是固定的,集合的容量是可變的 ArrayList : 可調(diào)整大小的數(shù)組實現(xiàn) 是一種特殊的數(shù)據(jù)類型,泛型。 怎么用呢 ? 在出現(xiàn)E的地方我們使用引用數(shù)據(jù)類型替換即可 舉例:ArrayList, ArrayList 成員方法 : 案例需求

    2024年02月06日
    瀏覽(26)
  • 【JavaSE】Java基礎(chǔ)語法(十六):抽象類

    【JavaSE】Java基礎(chǔ)語法(十六):抽象類

    當我們在做子類共性功能抽取時,有些方法在父類中并沒有具體的體現(xiàn),這個時候就需要抽象類了! 在Java中,一個沒有方法體的方法應該定義為抽象方法,而類中如果有抽象方法,該類必須定義為抽 象類! 抽象類和抽象方法必須使用 abstract 修飾 抽象類中不一定有抽

    2024年02月07日
    瀏覽(50)
  • 【JavaSE】Java基礎(chǔ)語法(三十二):Stream流

    【JavaSE】Java基礎(chǔ)語法(三十二):Stream流

    案例需求 按照下面的要求完成集合的創(chuàng)建和遍歷 創(chuàng)建一個集合,存儲多個字符串元素 把集合中所有以\\\"張\\\"開頭的元素存儲到一個新的集合 把\\\"張\\\"開頭的集合中的長度為3的元素存儲到一個新的集合 遍歷上一步得到的集合 原始方式示例代碼 使用Stream流示例代碼 Stream流的好處

    2024年02月07日
    瀏覽(31)
  • 【JavaSE】Java基礎(chǔ)語法(三十四):實現(xiàn)多線程

    【JavaSE】Java基礎(chǔ)語法(三十四):實現(xiàn)多線程

    是指從軟件或者硬件上實現(xiàn)多個線程并發(fā)執(zhí)行的技術(shù)。 具有多線程能力的計算機因有硬件支持而能夠在同一時間執(zhí)行多個線程,提升性能。 并行:在同一時刻,有多個指令在多個CPU上同時執(zhí)行。 并發(fā):在同一時刻,有多個指令在單個CPU上交替執(zhí)行。 進程:是正在運行的程序

    2024年02月08日
    瀏覽(21)
  • 【JavaSE】Java基礎(chǔ)語法(十三):Java 中的集合(十分全面)

    【JavaSE】Java基礎(chǔ)語法(十三):Java 中的集合(十分全面)

    List (對付順序的好幫?): 存儲的元素是有序的、可重復的。 Set (注重獨???的性質(zhì)): 存儲的元素是?序的、不可重復的。 Queue (實現(xiàn)排隊功能的叫號機): 按特定的排隊規(guī)則來確定先后順序,存儲的元素是有序的、可重復的。 Map (? key 來搜索的專家): 使?鍵值對(key-value)存

    2024年02月10日
    瀏覽(26)
  • 【JavaSE】Java基礎(chǔ)語法(三十三):File 一文詳解

    【JavaSE】Java基礎(chǔ)語法(三十三):File 一文詳解

    File類介紹 它是文件和目錄路徑名的抽象表示 文件和目錄是可以通過File封裝成對象的 對于File而言,其封裝的并不是一個真正存在的文件,僅僅是一個路徑名而已.它可以是存在的,也 可以是不存在的.將來是要通過具體的操作把這個路徑的內(nèi)容轉(zhuǎn)換為具體存在的 File類的構(gòu)造方法

    2024年02月06日
    瀏覽(39)
  • Java基礎(chǔ)(二十一)十點半游戲

    十點半是一種流行的紙牌游戲,可以說是一種變體的二十一點游戲。游戲的規(guī)則是,每個玩家根據(jù)所拿到的牌點數(shù)的總和來決定是否繼續(xù)要牌。目標是盡量接近但不超過十點半的點數(shù),超過十點半即為爆牌。如果兩名玩家都未爆牌,則點數(shù)更接近十點半的人獲勝。這個游戲非

    2024年02月09日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包