命名规则:第一个单词首字母小写,后面每个单词首字母大写。
成员变量:在类范围里定义的变量。(无需显示初始化) 【 一个类中不能定义两个同名成变】
类变量
与类共存亡
类名 / 实例名 . 类变量名
通过实例名修改类变量,与类修改效果一样,其他变量再访问就是被修改过的值。
实例变量
与实例共存亡
实例名 . 实例变量名
局部变量 【 一个方法中不能定义两个同名局变】
形参:方法首部,在整个方法内有效,方法结束时消失。
方法局部变量:方法体内,从定义该变量的地方生效,到该方法结束时失效。显示初始化
代码块局部变量:代码块中,只在该代码块内有效。 显示初始化
【 允许局变和成变同名,this(实例)、类名(类)作为访问者限定访问成变】
定义Dog类,类中定义两个成员变量。
class Dog{
public String name;
public static int eyeNum;
}
public class TestDog{
public static void main(String[] args)
{
System.out.println("Dog 的eyeNum类变量值:"+Dog.eyeNum);
Dog p = new Dog();
System.out.println("p变量的name值是:"+p.name + "p对象的eyeNum变量值是:"+p.eyeNum);
p.name = "京巴";
p.eyeNum = 2;
System.out.println("p变量的name变量值是:"+p.name+"p对象的eyeNum变量值是:"+p.eyeNum);
System.out.println("Dog的eyeNum类变量值是:"+Dog.eyeNum);
Dogp2 = new Dog();
System.out.println("p2对象的eyeNum类变量值是:"+p2.eyeNum);
}
}局变初始化
public class TestBlock{
public static void main(String[] args)
{
for(int i=0;i<10;i++){
//定义for语句中的代码块变量a
int a;
//x,a变量未初始化
//System.out.println("代码块局部变量a的值:"+a);
a=0;
a+=i;
System.out.println("代码块局部变量a的值:"+a);
}
//下面试图访问的a变量并不存在
//System.out.println(a);
//访问变量i不存在
//System.out.println(i);
}
}