/* java 中的数组 对象数组 以及main方法中的参数 x y不用中间参数实现交换
java 基本数据类型 的数组 初始化元素为 0
java中数组名.length表示数组中元素的个数
main方法中的 args[] 从0开始 是java 类 后面的字符串 args.length也是保存了 元素的个数
System.out.println() 在打印对象的时候 包括我们自己定义的对象 他会调用toString方法 因为所有类都是从object派生而来 打印出类测描述
建议所有子类都应该覆盖这个方法 用来描述类
基本数据类型作为参数传递的 是副本的拷贝
引用数据类型作参数传递的是引用的拷贝
*/
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中基本数据类型的数组 都会被初始化为 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;
}
}