1:实例变量和局部变量
实例变量:是在类中进行声明的,可以有public,private等修饰符进行修饰。
局部变量:在方法中进行声明,生命周期就是方法开始,到方法结束。但是可以进行对象的引用来调用。
public class Shadowing { int count=9;//实例变量 public void login(){ int count =10;//局部变量 System.out.println("local count is :"+count); } public void count(){ System.out.println("instance count is:"+count); } public static void main(String[] args) { new Shadowing().login(); new Shadowing().count(); } }
输出:local count is :10
instance count is:9
为什么会出现实例变量和局部变量相同的名字呢?
1:用于参数将要赋予的实例变量相同的名称命名该参数;
public class FOO { int Foo=27; public void foo(int Foo){ this.Foo=Foo; System.out.println(Foo); } public static void main(String[] args) { new FOO().foo(100); } }
this 关键字:永远,永远,永远会引用当前运行的对象。
2:数组:
定义数组的时候不能设置大小
int [] array; 这就是合法的。
非法的。定义的时候不分配空间。只有实例化数组对象的时候JVM才会创建分配空间。