Java週記04

Meowmow發表於2020-09-26

本週學習

書本第二章,第三章,程式設計練習

複習

1.Java中的陣列

當建立一個陣列物件時,實際建立了一個引用陣列,每個引用都會被自動被初始化一個 特定值,null。

//定義一個陣列
int[] a;
int b[];
//分配空間給陣列,初始化
a=new int [10];//這裡a在棧裡,new int[10]在堆裡
for(int i=0;i<10;i++){
  System.out.print(a[i]);
  }
int[] c={2,3,4,5,6};
//for-each結構,列印c的全部元素
for(int i:c){
System.out.print(i);
}  

2.賦值

對一個物件進行操作時,真正操作的是對物件的引用

//建立兩個Dog物件d1,d2
Dog d1,d2;
d1=d2;

原本d1,d2在棧區,分別指向堆區的兩個不同的物件區域,d1=d2後,d1,d2都指向d2的區域,d1在堆區佔用的空間會在垃圾回收器檢測到後銷燬。

3.static關鍵字

所有物件共享,只佔一份儲存空間,與任何類或物件無聯絡,所以沒有建立物件也可以呼叫static方法。

class Apply{
//定義static欄位和方法
static int i= 100;
static void fun(){
}
//通過物件使用,或直接用類名使用
Apply a=new Apply();
a.i++;
Apply.i++;
a.fun();
Apply.fun();
}

4.建立一個類

和c++類似

class 類名{  
欄位
方法
}
//與一些Java包同名的類
class Math{
}
class String{
}

因為建立的這兩個類是在你自己建立的包裡面,所以可以這樣定義一個類,但不建議這樣用,在同包下其他檔案如果要使用這些Java同名類的話會出現錯誤

//比如和以下語句使用,會分不清想要使用的是Java裡的Math包還是上面自己定義的Math類
class Apply{
Math m=new Math();
}

同一個包裡不能定義同一個類,比如ch2包裡的類Demo1,Demo2…不能同名

5.註釋和嵌入式文件

安裝好JDK後,javac,java這兩個檔案分別負責編譯和執行
javadoc是用於提取註釋的工具,輸出一個HTML工具,可以用web瀏覽器檢視
javadoc只為public和protected成員進行文件註釋
project----generate javadoc----勾選專案----configue-----找到javadoc.exe開啟----finish
在資料夾裡找到index.html,開啟可以檢視

6.一些標籤

@see連結到其他文件
@docRoot 產生到文件根目錄的相對路徑,用於文件樹頁面的顯示超連結
@version 標註版本資訊
@author 標註作者
@since 指定程式程式碼最早的使用版本
這些javadoc標籤使用後會顯示在javadoc文件裡

7.方法呼叫裡的別名問題

class Letter{
char c;
}

public class Apply{
 static void fun(Letter y){
 y.c='z';
 }
 public static void main(String[] args){
 Letter x=new Letter();
 x.c='a';
 System.out.println(x.c);
 fun(x);
 System.out.println(x.c);
 //輸出
 //a
 //z

預習第四章

1.true和false

在c和c++裡允許使用數字來作為布林值使用,Java裡不允許

2.if-else語句

與c,c++裡一樣,有單獨使用的if語句,有if-else語句,有else if語句

3.迭代語句

while,do-while,for
while(布林表示式){
}

do{
語句
}while(布林表示式);

for(初始化表示式;布林表示式;步進表示式){
語句
}

for語句中的初始化表示式,布林表示式,步進表示式都可以為空

4.Foreach語法

這是一種更簡潔的for語法,用於容器和陣列,不必建立Int變數去對由訪問項構成的序列進行計數,foreach會自動生成每一項

for(float x : f){}
//定義一個float型變數x,將每一個f的元素賦給x

5.break和continue

break語句中斷迴圈,直接跳過後續語句,跳出迴圈,不再進行迴圈
continue停止當前迴圈,回到迴圈起始處,開始下一次迴圈

6.switch語句

switch(整數選擇因子){
case 整數值:語句;break;
case 整數值:語句;break;
case 整數值:語句;break;

}

int c=rand.nextInt(26)+'a';
switch (c){
case 'a':
       breakcase 'b':
      breakcase 'c':
       breakcase 'd':
       breakcase 'f':
       print("this is f");
       breakdefault:print("else");
}

相關文章