代表的是迴圈的標示記號,可利用 label 指向相對應的迴圈。
1. label_name:迴圈敘述
2. label_name:迴圈敘述
Outerloop:label_name
for(;;){
Innerloop:label_name
for(;;){
break Innerloop;
...
continue Innerloop;
...
break Outerloop;
...
continue Outerloop;
}
{
################################################################
for 和 ( , )
判斷下列能否執行:
1. for(int i=0, j=0 ; ; ) //可以
2. for(int i=0, int j=0 ; ; ) //錯誤,若多種型態要在外部宣告
3. for(int i=0, long j=0 ; ; ) //錯誤,同 2.
4. int i=0; //可以
long j=0;
for(i=0, j=0 ; ;)
5. int i=0; //錯誤, long 同樣要在外部宣告
for(i=0, long j=0 ; ;)
6. String s=null; //可以
int i=0;
for(i=1,s=a ; ;)
################################################################
無窮迴圈:
while(true) java 不可以用 1,要用 true
for(;;) 直接不要打。
################################################################
for_each
(for/in)簡化存取集合體物件元素,
例如 Array 或集合,其特性是在執行的過程會自動往下找直到全部擷取完畢。
for(資料型態 變數名稱:母體集合){
程式敘述
}
################################################################
陣列一經宣告就不能更改 length。
int score={98, 56, 63};
int score1=score; //這是錯誤的陣列複製方法,應該用 arraycopy 等其>他方式。
################################################################
// 可以使用 for 迴圈做陣列複製
public class test0726_4{
public static void main(String avgs[]){
int[] score1 = {88, 81, 76, 68};
int[] score2 = new int [score1.length];
for(int i=0; i<score1.length; i++)
score2[i] = score1[i];
for(int j:score2)
System.out.println(j);
}
}
################################################################
// 也使用 Arrays.copyOf 來達到陣列複製
import java.util.Arrays;
//import java.util.*;
public class test0726_5{
public static void main(String avgs[]){
int[] score1 = {88, 81, 76, 68};
int[] score2 = Arrays.copyOf(score1, score1.length);
for(int s:score2)
System.out.printf("%3d", s);
System.out.println();
score2[0]=99;
for(int s:score2)
System.out.printf("%3d", s);
// %s:字串, %d:整數, %f:浮點數, %c:字元, %n:換行
// %3d:印出三位整數,不足自動補空格
}
}
################################################################
public class MyClass{
int i = 10;
static int k = 100;
void aMethod(String s){
int j = 20;
static String s = "a"; //錯誤,在 Method 不可以有 static 變數。
} //在方法裡面,不可以再宣告方法。
}
################################################################
// 建立物件實體
1. 建立類別變數
。用 new 建立類別實體
//物件變數抓取屬性、方法
1. 類別變數.屬性;
2. 類別變數.方法();
################################################################
################################################################
// Constructer 建構子
程式在執行時,第一個執行的函式就是建構子。
//語法:
存取權限 類別名稱(參數列){
}
// *
// 1. 建構子沒有回傳值
// 2. 建構子的名稱必須和類別名稱相同
// 預設建構子
當程式中沒有自行定義的建構子時,編譯時會自動加上預設建構子。
// *
// 1. new 一個實體時會自動執行
// 2. 預設建構子沒有參數列
// 3. 程式中只會有一個預設建構子
################################################################
// 大資料數據,使用 BigDecimal -> java.math.BigDecimal;
import java.math.BigDecimal;
public class test0726_11{
public static void main(String avgs[]){
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.1");
BigDecimal c = a;
System.out.println(a==b);
System.out.println(a==c);
System.out.println(a.equals(b));
}
}
//輸出:
//false //雖同值,但不同位址,判斷為不同之參考。
//true //經 = ,兩者變為同一參考位址。
//true //純粹比對兩者的值,都是 0.1 故 true。
// 補充
字串比對: == 、equals
字元比對:只能用 ==
// 差異:
== 去比對它的參考位址。
= 直接去改變參考。
equals 去比對它的值。
################################################################
// 繼承
是指物件的資源可以延伸和重複使用,
在 Java 利用 extends 這個關鍵字來表達類別的繼承關係,也就是 is-a 的概念。
子類別名稱 + extends + 父類別名稱
################################################################
// this 和 super
// this
是指參考到目前作用中物件的特性、方法、建構子。
//super
是指可以參考到父物件的方法、屬性、建構子。
################################################################
// super 練習
class Father{
Father(String s){
System.out.println("A");
System.out.println(s);
}
}
class Son extends Father{
Son(){
super("C");
System.out.println("B");
}
}
public class Extends2{
public static void main(String avgs[]){
Son s = new Son();
}
}
################################################################
// spuer and this 練習
class Father{
Father(char c){ //第四步驟,接收到 'A'
System.out.println(c); //第五步驟,印出 'A'
}
}
class Son extends Father{
Son(){
this('A'); //第一步驟,丟出 'A' 到 Son(char c)
System.out.println("B"); //第六步驟,印出 'B'
}
Son(char c){ //第二步驟,接收 this 傳來的值 'A'
super(c); //第三步驟,回傳值到 Father
}
}
public class Extends3{
public static void main(String avgs[]){
Son s = new Son(); //第○步驟,建構子 Son(){...}
}
}
################################################################
沒有留言:
張貼留言