Java面向对象
四、变量的分类:
- 按照数据类型:
- 按照在类中声明的位置
五、关于变量的赋值
如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值
public class ValueTransferTest {
public static void main(String[] args) {
System.out.println("-----基本数据类型-----");
int m = 10;
int n = m;
System.out.println("m = " + m + " , n = "+n);
n = 20;
System.out.println("m = " + m + " , n = "+n);
System.out.println("-----引用数据类型-----");
Order o1 = new Order();
o1.orderID = 1001;
Order o2 = o1; // 赋值以后,o1和o2的地址值相同,都指向了堆空间中同一个对象实体。
System.out.println("o1.orderID = " + o1.orderID + " , o2.orderID = " + o2.orderID);
o2.orderID = 1002;
System.out.println("o1.orderID = " + o1.orderID + " , o2.orderID = " + o2.orderID);
}
}
class Order {
int orderID;
}
运行结果
-----基本数据类型-----
m = 10 , n = 10
m = 10 , n = 20
-----引用数据类型-----
o1.orderID = 1001 , o2.orderID = 1001
o1.orderID = 1002 , o2.orderID = 1002
六、方法的形参的传递机制:值传递
-
形参:方法定义时,声明的小括号内的参数
实参:方法调用时,实际传递给形参的数据 -
值传递机制:
如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。
如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。
七、可变个数的形参Varargs(Variable Number Of Arguments)
-
JDK5.0新增的内容
-
具体使用:
* 可变个数形参的格式:
数据类型 ... 变量名
* 当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个…
* 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载
* 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。换句话说,二者不能共存
eg:这两个show方法不可以共存,两者代表的其实是同一个意思
public void show(String ... strs) {
}
public void show(String[] strs) {
}
* 可变个数形参在方法的形参中,必须声明在末尾
* 可变个数形参在方法的形参中,最多只能声明一个。