第十一天日常更新 內部類 陣列

2021-09-24 04:39:17 字數 4852 閱讀 1315

又到了日常更新的時候了,今天還是分享一些基礎內容.

首先內部類就是類中定義類.

如果乙個事物的成員也是乙個事物,可以使用內部類來定義.

它分為5個大的方法

1.成員內部類

2.區域性內部類

3.私有內部類

4.靜態內部類

5.匿名內部類(重要)

內部類定義在外部類的成員位置

成員可以使用成員修飾符:public static …來修飾

類:可以繼承,可以實現介面

outer01$inner $內部類

內部內中可以使用外部類中所有的內容,包括私有的.

內部中不可以直接定義靜態的內容,除了靜態的常量,靜態的內容要定義在靜態類當中.

public class outer01	}	

//外部類的成員方法

public void outer()

}## 區域性內部類

方法中定義內部類

1.區域性內部類不可以使用成員修飾符(比如public static ...但是不包括final)

2.只能在當前定義區域性內部類的方法中,通過內部類的物件使用內部類中的成員,通過類可以使用靜態

3.區域性內部類所在的方法的引數,在jdk1.8之後預設,1.7之前需要顯示定義.

//外部類

class outer05

} //在當前方法中使用區域性內部類中的內容

system.out.println(inner.age);

inner in=new inner();

in.inner();

system.out.println(in.height); }

void outer()

}## 私有內部類

1.私有內部類中可以使用外部類中所有的內容,包括私有的

2.私有內部類只能在外部類中通過物件使用私有內部類中的私有內容,其它類中不可以

/外部類

class outer03 }

//外部類的成員方法

public void outer()

}## 靜態內部類

1.靜態內部類可以定義靜態的內容也可以定義成員的內容

2.在靜態內部類中使用外部靜態類的非靜態內容,要通過外部類的物件去使用,

3.在外部類中可以通過類名使用靜態內部類中的靜態內容.,需要通過物件使用靜態內部類中的成員內容.

4.在其他類中可以通過外部類名.靜態內部類名.靜態內容使用靜態內部類中的靜態內容.

new 外部類.靜態內容類() 建立靜態內部類的物件使用靜態內部類的物件使用靜態內部類的成員.

public class staticinner

}class outer04

//靜態內部類中的成員方法

void haha() }

//外部類中的成員方法

void outer()

}## 匿名內部類

沒有名字的內部類

簡化沒有獨自作用|功能的實現|子類

public class anonymousinner

@override

public void cat()

}.cat();*/

//2.引用接收匿名內部類物件的位址---介面多型

smoking s=new smoking()

@override

public void cat()

};s.smoke();

s.cat();

//3.方法的引數

useusb(new usb()

@override

public void end()

});useusb(new usb()

@override

public void end()

}); }

static void useusb(usb usb)

}inte***ce usb

inte***ce smoking

/*class demo implements smoking

}*/## lambda表示式

它的目標是:簡化匿名內部類

語法: ()->{}

();---->重寫的抽象方法的引數列表

->箭頭符號,箭頭函式,lambda符號

{}:重寫的抽象方法的方法體

前提:函式式介面:只有乙個抽象方法的介面就是函式式介面

@functionalinte***ce : 強制檢查是否為函式式介面

public class lambdademo

};*/

//lambda表示式寫法1

/*code c=()->;*/

//寫法2:如果方法的語句體只有1句,前後的{}可以省略

// code c=()->system.out.println("邊敲**邊哄女朋友");

//寫法3: 如果存在引數,引數的資料型別可以省略

// code c=(i,m)->system.out.println("邊敲**邊哄女朋友"+i+"次");

//寫法4:如果存在引數,並且引數只有乙個前後的()可以省略

/*code c= i ->;

system.out.println(c.code(100));*/

//寫法5: 有返回值型別的方法,如果方法體語句只有1句,並且是return語句的時候,這時前後{},包括return都可以省略

code c= str -> str.length();

system.out.println(c.code("因為")); }}

//函式式介面

@functionalinte***ce

inte***ce code

## 陣列

陣列:

相同資料型別的有序集合

變數: 儲存單個資料

陣列: 儲存多個資料

陣列的特點:

1.陣列是引用資料型別

2.陣列是定長的,長度一旦確定不可改變

3.陣列中所有資料的資料型別保持一致

4.陣列中的資料存在順序(索引:從0開始)

陣列的宣告方式:

1) 資料型別 陣列名;

資料型別:可以是基本資料型別|引用資料型別

資料型別的作用:規定陣列中所有資料的資料型別

2) 資料型別 陣列名; --不推薦使用

陣列的初始化:

動態初始化:先建立後賦值

資料型別 陣列名 = new 資料型別[長度];

陣列中的資料如果不賦值有預設值 string--null,int--0,double--0.0 ,char--' ',boolean--false

靜態初始化:建立的同時賦值

資料型別 陣列名 =new 資料型別;

資料型別 陣列名 =; --推薦

操作(獲取|修改)陣列中的資料

通過索引操作 陣列名[索引|下標]

陣列的長度:

陣列名.length

陣列中最後乙個資料的下標:

陣列名.length-1

陣列的遍歷:

1)普通for迴圈,可以獲取可以修改,因為是操作索引(位置)

2)增強for迴圈|for..each ,只能獲取每乙個資料,不能修改

for(資料型別 變數名: 陣列名|容器名);

system.out.println(arr3[0]);

system.out.println(arr3[1]);

//靜態初始化2

char arr4=;

system.out.println(arr4[0]);

system.out.println(arr4[1]);

system.out.println(arr4[2]);

system.out.println(arr4[3]);

system.out.println(arr4[4]);

//長度

system.out.println("長度"+arr4.length);

system.out.println("最後乙個資料"+arr4[arr4.length-1]);

system.out.println("----------普通for-------------");

//遍歷陣列1)普通for

//i做陣列的索引 規律:每次+1 範圍:0~length-1

for(int i=0;i<=arr4.length-1;i++)

//動態為arr陣列賦值

for(int i=0;i//遍歷

for(int i=0;i<=arr.length-1;i++)

// system.out.println(arr); /[i@15db9742

//遍歷陣列1)增強for

for(char i :arr4) }}

可變引數:資料型別相同的0~多個引數

1.使用...表示可變引數

2.編譯器會自動為可變引數隱式建立乙個陣列,通過運算元組的方式使用可變引數

3.可變引數必須放在引數列表的最後位置

public class parademo

//至少接收乙個引數,可以接收多個引數

public static void test(int name,object ...arr) }

//計算int型別引數的和

public static void getsum(int ...i)

system.out.println(sum); }

/*public static int getsum(int x,int y)

public static int getsum(int x,int y,int z)*/

今天就先分享這麼多吧,明天接著分享.

UnixC第十一天

回憶昨天內容 一 訊號阻塞 sigprocmask 2 sigset t 訊號阻塞和訊號忽略的區別 可靠訊號 不可靠 訊號丟失 二 獲取程序的未決訊號集 從未決訊號集中找未決訊號 sigpending 2 什麼是未決訊號?三 訊號從產生到處理的整個過程 四 system v ipc 訊息佇列 獲取乙...

第十一天作業

第一題 import time import random deffoo print 開始執行。time.sleep random.uniform 1,3 print 執行完畢 return 都結束了 print foo 第二題 import time import random deffoo pr...

python第十一天

函式總結 def func a,b print a,b return a b 四個組成部分 函式名 呼叫函式的依據 函式體 執行函式邏輯的 引數列表 為函式提供內部資源 返回值 將函式執行結果返回給外界 返回值 1 空返回 沒有return或空return 2 一鍵返回 3 多值返回 裝有多個值的元...