属性和局部变量
public class Cat{
int age;//属性是全局变量,是不在任一方法里,属于类的
public static void main(String args[])
{
}
public void say(){
int n;//方法中定义的变量,是局部变量,只能在对应的方法用
}
}
除了属性之外的变量都是局部变量
局部变量(代码块或者成员方法区域里面)的作用域在定义它的方法(或者代码块)中
!!!
属性可以不赋值有默认值
但是局部变量必须要赋值才可以使用(无默认值)
如图
作用域使用细节
当属性和局部变量重名时
遵从就近原则
如图,在主方法里调用a
输出是主方法里的a
而不是属性a
所以叫就近输出
生命周期
随着对象的创建而创建
随着对象的销毁而销毁
局部变量随着代码块创建创建随代码块销毁销毁
Scanner scanner= new Scanner(System.in);
比如我们常见的这个
当调用scanner.方法
方法里面的局部变量才会生成,方法结束后,局部变量也会消失
当用
scanner.属性
这个属性只有在执行
scaaner.close();(销毁操作时)
属性才会销毁
调用
属性可以被本类或者其他类(对象调用)使用
但是局部变量只能在本方法的作用域使用
两种实现方法
这里要注意
在方法里面创建对象,方法执行完后不会销毁对象(因为对象是在堆里面创建的)
!
所以一般是在main方法创建对象,调用其他方法时直接传递对象
可以节省内存空间 (也就是第二种比较常用)
修饰符
属性可以有修饰符
但是局部变量前不可以加修饰符