成员变量和局部变量
- 成员变量(全局变量)
- 局部变量
- 注意:
- 1.如果成员变量不是静态的,静态的方法访问不到。
- 2.代码块修饰环节的声明变量,作用域在于整个代码块。
形参和实参
- 形参:形式上的参数
- 实参:实际上的参数
通过一个例子来说明形参和实参的形式:
public static void main(String[] args) {
Demo02 demo02 = new Demo02();
//a -> 实参
int a = 2;
demo02.function1(a);
System.out.println(a);
int[] array = {1, 2, 3};
demo02.function2(array);
System.out.println(Arrays.toString(array));
//注意
String name = "lucy";
demo02.funciton4(name);
System.out.println(name);
}
//a -> 形参
public void function1(int a) {
a++;
System.out.println(a);
}
public void function2(int[] array) {
array[0]++;
System.out.println(Arrays.toString(array));
}
public void funciton4(String name) {
//由于字符串常量本身不可改变,会创建和一个新的对象 "lucy tom"
//所以拼接之后,形参name和实参name指向的已经不是同一个对象
name += " tom";
System.out.println(name);
}
这里说明了:
- 把变量a作为参数传递到function1的内部。
- 1.把实参a的值赋值给形参a
- 2.function1内部使用的一直是形参a
- 把数组array作为参数传递到function2的内部。
- 1.把实参array的地址赋值给了形参array。
- 2.由于地址相同,实参和形参指向的是同一个数组对象。
- 3.方法内部操作的数组就是外部声明的数组。
这里引出了值传递和引用传递
- 值传递:调用方法时,传递到方法内部的是值的备份,方法内部对于该值做的修改,不会影响原来的值。
- 引用传递:调用方法时,传递到方法内部的是对象的引用,由于方法内部使用的引用和原对象的引用一致,方法内部对于数据做的修改,会影响到原来的数据。
对java来说:
- 如果参数是基本数据类型,传递到方法内部的是形参,形参的值其实就是实参的备份。所以使用的是值传递。
- 如果参数是引用数据类型,传递到方法内部的是形参,形参的值是实参对象的地址的备份。所以使用的也是值传递。
- java只有值传递。
拓展知识 javadoc文档的导出:
eclipse上右键项目->Export->搜索javadoc->勾选项目点击两次next->在 optinos框中输入-encoding utf-8 -charset utf-8->点击finish。