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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java 匿名对象、内部类

發(fā)布時(shí)間:2025/4/16 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 匿名对象、内部类 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、匿名對(duì)象

1、概念

匿名對(duì)象是指創(chuàng)建對(duì)象時(shí),只有創(chuàng)建對(duì)象的語(yǔ)句,卻沒有把對(duì)象地址值賦值給某個(gè)變量。

public class Person{public void eat(){System.out.println();} }Person p = new Person();//創(chuàng)建一個(gè)普通對(duì)象 new Person(); //創(chuàng)建一個(gè)匿名對(duì)象

?2、?匿名對(duì)象的特點(diǎn)

l?創(chuàng)建匿名對(duì)象直接使用,沒有變量名。

new Person().eat() //eat方法被一個(gè)沒有名字的Person對(duì)象調(diào)用了。

l?匿名對(duì)象在沒有指定其引用變量時(shí),只能使用一次。

new Person().eat(); //創(chuàng)建一個(gè)匿名對(duì)象,調(diào)用eat方法 new Person().eat(); //想再次調(diào)用eat方法,重新創(chuàng)建了一個(gè)匿名對(duì)象

匿名對(duì)象可以作為方法接收的參數(shù)、方法返回值使用

class Demo {public static Person getPerson(){//普通方式//Person p = new Person(); //return p; //匿名對(duì)象作為方法返回值return new Person(); }public static void method(Person p){} }class Test {public static void main(String[] args) {//調(diào)用getPerson方法,得到一個(gè)Person對(duì)象Person person = Demo.getPerson(); //調(diào)用method方法 Demo.method(person);//匿名對(duì)象作為方法接收的參數(shù)Demo.method(new Person());} }

二、內(nèi)部類

1、內(nèi)部類概念

將類寫在其他類的內(nèi)部,可以寫在其他類的成員位置和局部位置,這時(shí)寫在其他類內(nèi)部的類就稱為內(nèi)部類。其他類也稱為外部類。

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

成員內(nèi)部類,定義在外部類中的成員位置。與類中的成員變量相似,可通過外部類對(duì)象進(jìn)行訪問

格式:

class 外部類 { 修飾符 class 內(nèi)部類 {//其他代碼 } }

訪問方式:

外部類名.內(nèi)部類名 變量名 = new 外部類名().new 內(nèi)部類名();

例:創(chuàng)建內(nèi)部類

class Body {//外部類,身體private boolean life= true; //生命狀態(tài)public class Heart { //內(nèi)部類,心臟public void jump() {System.out.println("心臟噗通噗通的跳")System.out.println("生命狀態(tài)" + life); //訪問外部類成員變量 }} }

訪問內(nèi)部類

public static void main(String[] args) {//創(chuàng)建內(nèi)部類對(duì)象Body.Heart bh = new Body().new Heart();//調(diào)用內(nèi)部類中的方法 bh.jump(); }

3、局部?jī)?nèi)部類

局部?jī)?nèi)部類,定義在外部類方法中的局部位置。與訪問方法中的局部變量相似,可通過調(diào)用方法進(jìn)行訪問

定義內(nèi)部類:

class 外部類 { 修飾符 返回值類型 方法名(參數(shù)) {class 內(nèi)部類 {//其他代碼 }} }

訪問方式:

在外部類方法中,創(chuàng)建內(nèi)部類對(duì)象,進(jìn)行訪問

例:

定義類:

class Party {//外部類,聚會(huì)public void puffBall(){// 吹氣球方法class Ball {// 內(nèi)部類,氣球public void puff(){System.out.println("氣球膨脹了");}}//創(chuàng)建內(nèi)部類對(duì)象,調(diào)用puff方法new Ball().puff();} }

訪問內(nèi)部類:

public static void main(String[] args) {//創(chuàng)建外部類對(duì)象Party p = new Party();//調(diào)用外部類中的puffBall方法 p.puffBall(); }

三、?內(nèi)部類的實(shí)際使用——匿名內(nèi)部類

1、?匿名內(nèi)部類概念

?最常用到的內(nèi)部類就是匿名內(nèi)部類,它是局部?jī)?nèi)部類的一種。

定義的匿名內(nèi)部類有兩個(gè)含義:

  • 臨時(shí)定義某一指定類型的子類
  • 定義后即刻創(chuàng)建剛剛定義的這個(gè)子類的對(duì)象

2、定義匿名內(nèi)部類的作用與格式

作用:匿名內(nèi)部類是創(chuàng)建某個(gè)類型子類對(duì)象的快捷方式。

格式:

new 父類或接口(){//進(jìn)行方法重寫 };

例:

//已經(jīng)存在的父類: public abstract class Person{public abstract void eat(); } //定義并創(chuàng)建該父類的子類對(duì)象,并用多態(tài)的方式賦值給父類引用變量 Person p = new Person(){public void eat() {System.out.println(“我吃了”); } }; //調(diào)用eat方p.eat();

使用匿名對(duì)象的方式,將定義子類與創(chuàng)建子類對(duì)象兩個(gè)步驟由一個(gè)格式一次完成,。雖然是兩個(gè)步驟,但是兩個(gè)步驟是連在一起完成的。

匿名內(nèi)部類如果不定義變量引用,則也是匿名對(duì)象。代碼如下

new Person(){public void eat() {System.out.println(“我吃了”); } }.eat();

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/dk2557/p/9439838.html

總結(jié)

以上是生活随笔為你收集整理的Java 匿名对象、内部类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。