成员变量
也叫全局变量。定义在类里方法外的变量。
成员变量又分为实例变量和类变量
类变量也叫静态变量,即在变量前加static 的变量;
实例变量也叫对象变量,即没加static 的变量;
类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;
而实例变量则为对象私有,某一个对象将其值改变,不影响其他对象;
类变量:又叫静态变量,用static修饰,它可以直接用类名调用,也可以用对象调用,而且所有对象的同一个类变量都是共享同
一块内存空间的
实例变量:不用static修饰 它只能通过对象调用 而且所有对象的同一个实例变量是共享不同的内存空间的
成员变量的存储:没有实例化的成员变量放在栈中;实例化后的对象放在堆中,栈中放的是指向堆中对象的引用地址。
成员变量在对象被创建时而存在,当对象被GC回收时消失,生存周期适中。
static修饰的全局变量存放于静态区,类加载时创建,在类中只有一份; 会跟着类的消失而消失,生存时间较长。
static修饰的全局变量,只在该源文件中可用
局部变量:
局部变量就是方法里定义的变量。只在定义它的方法内有效
仅作用在局部区域中,从定义开始到大括号或者return结束,生命周期短。
基本数据类型变量放在栈中,引用数据类型放在堆中
局部变量可以先定义再初始化,也可以定义的同时初始化,局部变量没有默认初始值。
成员变量有默认值,局部变量没有默认值,不会自动赋值。局部变量在使用前必须被程序员主动的初始化,和此形成对比,
系统中的成员变量则会被系统提供一个默认的初始值。所以在语法上,类的成员变量能够定义后直接使用,
而局部变量在定义后先要赋初值,然后才能使用。
如果局部变量和成员变量的名称相同,那么成员变量被隐藏,即方法内失效,方法中如需要访问该类中的成员变量,则需要加上关键字this
成员方法和构造方法:
成员方法
声明成员方法可以定义类的行为。成员方法一旦被定义,便可以在程序中多次调用。
[public|private|protected][static]<void|return_type><method_name>([paramList]) {
//方法体
}
[public|private|protected] //访问类型。
<void|return_type> //返回值的数据类型
<method_name> //方法名
([paramList]) //参数表
不能省略的部分:
<void|return_type><method_name>(有参或无参) {