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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 内部类 返回值_Java基础第10天+形式参数和返回值的问题、包、导包、权限修饰符、常见的修饰符、内部类(局部内部类,成员内部类,匿名内部类)...

發(fā)布時間:2025/5/22 java 33 豆豆

1:形式參數(shù)和返回值的問題(理解)

(1)形式參數(shù):

類名:需要該類的對象

抽象類名:需要該類的子類對象

接口名:需要該接口的實現(xiàn)類對象

(2)返回值類型:

類名:返回的是該類的對象

抽象類名:返回的是該類的子類對象

接口名:返回的是該接口的實現(xiàn)類的對象

(3)鏈式編程

對象.方法1().方法2().......方法n();

這種用法:其實在方法1()調(diào)用完畢后,應(yīng)該一個對象;

方法2()調(diào)用完畢后,應(yīng)該返回一個對象。

方法n()調(diào)用完畢后,可能是對象,也可以不是對象。

2:包(理解)

(1)其實就是文件夾

(2)作用:

A:區(qū)分同名的類

B:對類進行分類管理

a:按照功能分

b:按照模塊分

(3)包的定義(掌握)

package 包名;

多級包用.分開。

(4)注意事項:(掌握)

A:package語句必須在文件中的第一條有效語句

B:在一個java文件中,只能有一個package

C:如果沒有package,默認就是無包名

(5)帶包的編譯和運行

A:手動式

B:自動式(掌握)

javac -d . HelloWorld.java

3:導(dǎo)包(掌握)

(1)我們多次使用一個帶包的類,非常的麻煩,這個時候,Java就提供了一個關(guān)鍵字import。

(2)格式:

import 包名...類名;

另一種:

import 包名...*;(不建議)

(3)package,import,class的順序

package > import > class

4:權(quán)限修飾符(掌握)

(1)權(quán)限修飾符

本類     同一個包下     不同包下的子類     不同包下的無關(guān)類

private    Y

默認     Y       Y

protected   ? Y       Y           Y

public     Y       Y           Y           Y

(2)這四種權(quán)限修飾符在任意時刻只能出現(xiàn)一種。

public class Demo {}

5:常見的修飾符(理解)

(1)分類:

權(quán)限修飾符:private,默認,protected,public

狀態(tài)修飾符:static,final

抽象修飾符:abstract

(2)常見的類及其組成的修飾

類:

默認,public,final,abstract

常用的:public

成員變量:

private,默認,protected,public,static,final

常用的:private

構(gòu)造方法:

private,默認,protected,public

常用的:public

成員方法:

private,默認,protected,public,static,final,abstract

常用的:public

(3)另外比較常見的:

public static final int X = 10;

public static void show() {}

public final void show() {}

public abstract void show();

6:內(nèi)部類(理解)

(1)把類定義在另一個類的內(nèi)部,該類就被稱為內(nèi)部類。

舉例:把類B定義在類A中,類B就被稱為內(nèi)部類。

(2)內(nèi)部類的訪問規(guī)則

A:可以直接訪問外部類的成員,包括私有

B:外部類要想訪問內(nèi)部類成員,必須創(chuàng)建對象

(3)內(nèi)部類的分類

A:成員內(nèi)部類

B:局部內(nèi)部類

(4)成員內(nèi)部類

A:private 為了數(shù)據(jù)的安全性

B:static 為了訪問的方便性

成員內(nèi)部類不是靜態(tài)的:

外部類名.內(nèi)部類名 對象名= new外部類名.new內(nèi)部類名();

成員內(nèi)部類是靜態(tài)的:

外部類名.內(nèi)部類名 對象名= new外部類名.內(nèi)部類名();

(5)成員內(nèi)部類的面試題(填空)

/*

面試題:

要求請?zhí)羁辗謩e輸出30,20,10。

注意:

1:內(nèi)部類和外部類沒有繼承關(guān)系。

2:通過外部類名限定this對象

Outer.this

*/

class Outer {

public int num = 10;

class Inner {

public int num = 20;

public void show() {

int num = 30;

System.out.println(num);

System.out.println(this.num);

//System.out.println(new Outer().num);

System.out.println(Outer.this.num);

}

}

}

class InnerClassTest {

public static void main(String[] args) {

Outer.Inner oi = new Outer().new Inner();

oi.show();

}

}

(6)局部內(nèi)部類

A:局部內(nèi)部類訪問局部變量必須加final修飾。

B:為什么呢?

因為局部變量使用完畢就消失,而堆內(nèi)存的數(shù)據(jù)并不會立即消失。

所以,堆內(nèi)存還是用該變量,而改變量已經(jīng)沒有了。

為了讓該值還存在,就加final修飾。

通過反編譯工具我們看到了,加入final后,堆內(nèi)存直接存儲的是值,而不是變量名。

(7)匿名內(nèi)部類(掌握)

A:是局部內(nèi)部類的簡化形式

B:前提

存在一個類或者接口

C:格式:

new 類名或者接口名() {

重寫方法;

}

D:本質(zhì):

其實是繼承該類或者實現(xiàn)接口的子類匿名對象

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

我們在開發(fā)的時候,會看到抽象類,或者接口作為參數(shù)。

而這個時候,我們知道實際需要的是一個子類對象。

如果該方法僅僅調(diào)用一次,我們就可以使用匿名內(nèi)部類的格式簡化。

/*

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

*/

interface Person {

public abstract void study();

}

class PersonDemo {

//接口名作為形式參數(shù)

//其實這里需要的不是接口,而是該接口的實現(xiàn)類的對象

public void method(Person p) {

p.study();

}

}

//實現(xiàn)類

class Student implements Person {

public void study() {

System.out.println("好好學習,天天向上");

}

}

class InnerClassTest2 {

public static void main(String[] args) {

//測試

PersonDemo pd = new PersonDemo();

Person p = new Student();

pd.method(p);

System.out.println("--------------------");

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

//匿名內(nèi)部類的本質(zhì)是繼承類或者實現(xiàn)了接口的子類匿名對象

pd.method(new Person(){

public void study() {

System.out.println("好好學習,天天向上");

}

});

}

}

(9)匿名內(nèi)部類的面試題(補齊代碼)

/*

匿名內(nèi)部類面試題:

按照要求,補齊代碼

interface Inter { void show(); }

class Outer { //補齊代碼 }

class OuterDemo {

public static void main(String[] args) {

Outer.method().show();

}

}

要求在控制臺輸出”HelloWorld”

*/

interface Inter {

void show();

//public abstract

}

class Outer {

//補齊代碼

public static Inter method() {

//子類對象 -- 子類匿名對象

return new Inter() {

public void show() {

System.out.println("HelloWorld");

}

};

}

}

class OuterDemo {

public static void main(String[] args) {

Outer.method().show();

/*

1:Outer.method()可以看出method()應(yīng)該是Outer中的一個靜態(tài)方法。

2:Outer.method().show()可以看出method()方法的返回值是一個對象。

又由于接口Inter中有一個show()方法,所以我認為method()方法的返回值類型是一個接口。

*/

}

}

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的java 内部类 返回值_Java基础第10天+形式参数和返回值的问题、包、导包、权限修饰符、常见的修饰符、内部类(局部内部类,成员内部类,匿名内部类)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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