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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

javase学习第10天(形式参数和返回值类型、包、内部类、匿名内部类)

發布時間:2024/6/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javase学习第10天(形式参数和返回值类型、包、内部类、匿名内部类) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

形式參數和返回值類型、包、內部類、匿名內部類

形式參數:值傳遞

基本類型:將實參的值復制一份傳給形參

引用類型:將實參的引用傳遞給形參,將導致形參和實參都指向同一個實例對象。

返回值類型

基本類型:返回的是一個基本數據類型的值;

引用類型:返回的是一個對象的引用。

鏈式編程

當一個方法的返回值是引用類型的時候,它返回的是一個對象的引用,那么就可以直接在此基礎上訪問這個對象的方法,當被調用的方法的返回值依然是一個引用 的話,還可繼續再調用所返回對象的方法。

當形參為抽象類時:返回的是該抽象類的實現子類的對象;

形參為接口,返回的是該接口實現類的對象;

類名作為返回值,返回的是該類的實例對象。

包 package

為了避免同名類過多而產生混亂,在類前加上額外的限定;

作用:可對類進行分類管理,格式通常是公司域名倒寫,在后面加上項目名等。

-cp 指明所依賴的包及運行的類的目錄(即類路徑,包所在路徑),彼此之間用“;”分開;

-d表明生成帶包類的層次目錄,會在指定目錄下,自動創建出和包結構相對應的目錄,并將生成的.class類文件放入到最里面的文件夾中。

在使用帶包的類時,必須使用完整類名(包名+類名)來訪問。

定義格式

package 包名: 包名只要是有效的標識符即可,通常使用小寫字母,多級包用“.”分開即可,一個圓點代表一個文件夾。

注意事項

1、package語句必須是程序的第一條可執行代碼,前面有注釋沒有影響。

2、pacekage語句在一個java文件中只能有一個;

3、一旦定義了包。則類的使用的時候就用包名.類名的方式。

4、執行順序:package-->import -->class

package只能有一個,并且必須是文件的第一條可執行語句; import:在類之前,并且可以有多個;

類成員權限

類及成員所用修飾符:

類:

1、四種權限中可以使用兩種(默認的,public),final,abstract

2、我們自己定義:public居多

成員變量:

1、四種權限修飾符均可,final,static

2、我們自己定義:private居多

構造方法:

1、四種權限修飾符均可,其他(final,static)不可

2、我們自己定義:public 居多

成員方法:

1、四種權限修飾符均可,fianl,static,abstract

2、我們自己定義:public居多

內部類

把類定義在其他類的內部,這個在其他類里面的類就是內部類。

內部類的訪問特點

1、內部類可以直接訪問外部類的成員,包括私有;

2、外部類要訪問內部類的成員,必須通過創建內部類對象來完成。

內部類位置

兩種格式: 成員位置(成員內部類);局部位置(局部內部類);

成員內部類分為兩種:

1、private修飾的私有成員內部類:只能通過在外部類中定義公有方法對私有內部類進行訪問,否則不能直接訪問私有的成員內部類。

2、static靜態成員內部類:直接通過外部類名.內部類名來訪問。

1 int num = 10; 2 static int num2 = 20; 3 public static class Heart { 4 // int a = num; //外部類的非靜態成員不能訪問 5 int b = num2; //OK,只能訪問外部類的靜態成員 6 }

?

被靜態修飾的成員內部類只能訪問外部類的靜態成員;不能訪問外部類的非靜態成員;但可以有靜態非靜態方法,都只能訪問外部類的靜態成員;

1、外界訪問靜態內部類的方法:

1 Outer.Inner ii = new Outer.Inner(); 2 3 ii.func1();

?

不能用 Outer.Inner oi = new Outter().new Inner();

2、非靜態成員內部類(如用public修飾的): 只能定義非靜態方法、非靜態變量,但可以訪問外部類的靜態和非靜態成員;

1 class Outer{ 2 int num1 = 1; 3 static int num2 = 10; 4 public class Inner{ 5 //static int age = 18;//error非靜態成員內部類不能定義靜態成員變量 6 public Inner(){} 7 /*void func1(){ 8 System.out.println(num1); 9 System.out.println(num2); 10 }*/ //OK,非靜態成員內部類只能定義非靜態方法 11 /* 12 static void func1(){ 13 System.out.println(num1); 14 System.out.println(num2); 15 } 16 */ //error,非靜態成員內部類不能定義靜態方法 17 } 18 }

?

局部內部類

可以直接訪問外部類的成員;

可以創建內部類對象,通過對象調用內部類方法,來使用局部內部類功能。

1 class Outer { 2 private int num = 10; 3 4 public void method() { 5 //int num2 = 20; 6 //final int num2 = 20; 7 class Inner { 8 public void show() { 9 System.out.println(num); 10 System.out.println(num2); 11 } 12 } 13 //System.out.println(num2); 14 Inner i = new Inner(); 15 i.show(); //?這樣寫有點麻煩,有沒有簡便寫法? 16 } 17 } 18 19 class InnerClassDemo5 { 20 public static void main(String[] args) { 21 Outer o = new Outer(); 22 o.method(); 23 } 24 }

?

匿名內部類

前提,存在一個類或者接口

格式 :new 類名或者接口名(){重寫(實現)方法;}

本質:是一個繼承了類或者實現了接口的子類匿名對象。

?

1 interface Person{ 2 public abstract void show(); 3 } 4 //非匿名方式 5 class Student implements Person{ 6 public void show(){ 7 System.out.println("students show"); 8 } 9 } 10 class PersonDemo{ 11 public Person test(Person p){ 12 p.show(); 13 return p; 14 } 15 } 16 class InterDemo{ 17 public static void main(String[]args){ 18 PersonDemo pd=new PersonDemo(); 19 Student s=new Student(); 20 // pd.test(s); 21 pd.test(new Person(){ 22 public void show(){ 23 System.out.println("ni ming"); 24 } 25 });//匿名內部類 26 } 27 }

?

?

?

轉載于:https://www.cnblogs.com/yihaifutai/p/6628687.html

總結

以上是生活随笔為你收集整理的javase学习第10天(形式参数和返回值类型、包、内部类、匿名内部类)的全部內容,希望文章能夠幫你解決所遇到的問題。

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