/* java 中的數組 對象數組 以及main方法中的參數 x y不用中間參數實現交換
java 基礎資料型別 (Elementary Data Type) 的數組 初始化元素為 0
java中數組名.length表示數組中元素的個數
main方法中的 args[] 從0開始 是java 類 後面的字串 args.length也是儲存了 元素的個數
System.out.println() 在列印對象的時候 包括我們自己定義的對象 他會調用toString方法 因為所有類都是從object派生而來 列印出類測描述
建議所有子類都應該覆蓋這個方法 用來描述類
基礎資料型別 (Elementary Data Type)作為參數傳遞的 是副本的拷貝
引用資料類型作參數傳遞的是引用的拷貝
*/
import java.lang.String;
/*class Student //引用資料類型
{
int age;
String name;
Student(String name,int age)
{
}
}*/
class Test
{
static void change(int x,int y) //交換值
{
x=x+y;
y=x-y;
x=x-y;
}
static void change(Point pt) //交換值
{
pt.x=pt.x+pt.y;
pt.y=pt.x-pt.y;
pt.x=pt.x-pt.y;
}
static void change(int []num) //交換值
{
num[0]=num[1]+num[0];
num[1]=num[0]-num[1];
num[0]=num[0]-num[1];
}
public static void main(String []args)
{
/*if(args.length!=3)
{
System.out.println("must have three pramarater ");
System.exit(-1);
}
else
{
for(int count=0;count<args.length;count++) //迴圈輸出 三個參數
{
System.out.println(args[count]);
}
}
*/
// int []num=new int[10]; //java中基礎資料型別 (Elementary Data Type)的數組 都會被初始化為 0 開闢的數組空間的首地址賦值給 num num.length表示數組中元素的個數 數組引用的一個屬性
/*
如果 num=null 那麼就切斷了 num 和數組對象的參考關聯性 那麼數組對象那塊記憶體就成了垃圾記憶體
在不確定的時間裡就會被記憶體回收機制給回收了
for(int i=0;i<10;i++)
{
System.out.println(num[i]);
}
//引用資料類型
/* Student []students;
students=new Student[3]; //分配三塊記憶體 但是沒有指派至 也就是每個元素沒有儲存 Student對象 所以列印出null
for(int m=0;m<3;m++)
{
System.out.println(students[m]);
}
}*/
int a=3;
int b=4 ;
Point pt=new Point(a,b); //聲明Point對象
int []num=new int[]{3,4}; //聲明數組
change(a,b);
System.out.print("a="+a+","+"b="+b+"\n");
change(num);
System.out.print("a="+num[0]+","+"b="+num[1]+"\n");
change(pt);
//System.out.print("a="+pt.x+","+"b="+pt.y+"\n");
System.out.print(pt); //重載了toString函數 輸出對象成員值
}
}
class Point
{
Point(int a,int b)
{
this.x=a;
this.y=b;
}
int x;
int y;
public String toString()
{
String str=new String("x="+x+","+"y="+y);
return str;
}
}