Java是通过值传递的,也就是通过拷贝传递;方法无法改变调用方所传入的参数。
如果方法声明了非void的返回类型,那就一定要返回与类型相同的值。
数据隐藏-封装的基本原则:将你的实例变量标记为私有的,并提供公有的getter与setter来控制存取动作。将实例变量标记为private,将getter与setter标记为public。
实例变量永远都会有默认值。如果你没有明确的赋值给实例变量,或者没有调用setter,实例变量还是会有值!
integers 0
floating points 0.0
booleans false
reference null
实例变量与局部变量之间的区别
- 实例变量是声明在类内而不是方法中。
- 局部变量是声明在方法中的。
- 局部变量在使用前必须初始化。
局部变量没有默认值!如果在变量被初始化前就要 使用的话,编译器会显示错误。
变量的比较
使用 == 来比较两个primitive主数据类型,或者判断两个引用是否引用同一个对象;使用equals()来判断两个对象是否在意义上相等。(像是两个String对象是否带有相同的字节组合)
使用 == 来比对primitive主数据类型:这个运算式可以用来比较任何类型的两个变量,它只是比较其中的字节组合。
int a = 3;
byte b = 3;
if (a == b) { // true }
使用 == 来判别两个引用是否都指向同一对象。
Foo a = new Foo();
Foo b = new Foo();
Foo c = a;
if (a == b) { //false }
if (a == c) { //true }
if (b == c) { //false }
加强版的for循环
for (String name : nameArray){}
//String name:数组元素的类型必须与循环变量的类型匹配;声明会带有数组单一元素的循环变量;此变量在循环过程中会带有不同元素的值;
//: 代表“in”
//nameArray:要被逐个运行的集合
//{}:重复执行的部分放在这里
这段代码,自己看了老半天,结果还写错了,的确有点绕,写下来,以备复习。
public class OutPut {
public static void main(String[] args){
OutPut o = new OutPut();
o.go();
}
void go(){
int y = 7;
for (int x = 1;x < 8;x++){
y++;
if(x > 4){
System.out.println(++y + " ");
}
if (y > 14) {
System.out.println(" x = " + x);
break;
}
}
}
}
输出是:13 15 x = 6