数组的初始化
1、静态初始化:
String [] arr;
arr = new String[]{"str1","str2","str3","str4"};
2、动态初始化 :仅指定数组长度
String [] arr = new String[4];
动态初始化,系统赋初值:
- byte short int long : 0
- float double : 0.0
- chat : ‘\u0000’
- boolean : false
- 引用类型:null
对象的this
没有使用static修饰的成员方法和成员变量都要用对象来调用
1、非静态成员函数可以相互调用,其中this一般省略
public class People{
public void eat(){
System.out.println("eat");
}
public void work(){
//this.eat();
eat();
System.out.println("eat方法后去work");
}
}
2、静态成员不能直接调用非静态成员
public class People{
public void eat(){
System.out.println("eat");
}
public static main(){
//以下注释掉的写法是错误的,main函数是static的,必须创建对象后调用
//eat();
People p1 = new Peeple();
p1.eat();
}
}
3、方法的局部变量与成员变量同名
在该方法中局部变量会覆盖成员变量,若我们要使用被覆盖的局部变量可以使用
this.被覆盖的成员变量名称
传参
方法是要存在于类里面的,
非静态方法要依附于该类的实例,需要用
该类 实例 = new 该类(…);
实例.非静态方法名();
静态方法是属于该类的【该类的全部实例共享】, 该类名.静态方法名();
Java的传参方式:值传递,即将实际参数值的副本传入方法中
系统执行方法时,都会为该方法分配栈区存放参数等,
如 方法1 向 方法2 传a=1和b=2,则在方法2 的栈区也会存有a=1和b=2,
方法1 和 方法2 他们的a和b是在不同的栈区的,互不干扰
方法1 向 方法2 如果传的是引用,
则两个方法的栈区存放的是指向同一个 对象堆内存 的指针