您的位置:首页 > 编程语言 > Java开发

JAVA中三种类型的变量

2016-07-17 14:27 656 查看


1.  局部变量与成员变量
 
案例一:
public
class
Demo02 {
    int
age=5;//无用代码
    public
static void
main(String[]
args) {
       Demo02 d =new Demo02();
       d.pupAge(17);//Puppy age is: 24
 
    }
 
   public
void
pupAge(int
age){
    age+=7;
    System.out.println("Puppy ageis: "+age);
}
}
 
案例二:
public
class
Demo01{
    static String
s1;//定义静态变量s1;
    String s2;//定义成员变量s2;
    public
static void
main (String[]
ary){     //main方法为静态方法
       Demo01d =new
Demo01();     //创建对象
       String s3;   // 定义局部变量s3;
       System.out.println("s1="+s1);
       System.out.println("s2="+s2);     //编译错误。不能让一个静态方法引用非静态变量s2,因为静态方法中没有默认this指针(this.);
       System.out.println("s2="+d.s2);    //如果需要访问,需要定义一个对象(DEMO01
d =new DEMO01();)通过对象访问静态变量和方法
       System.out.println("s3="+s3);    //编译错误。局部变量s3没有被初始化
       //变量必须在初始化后才能使用,类变量会自动初始化成默认值,但是局部变量则不会,不初始化,无法使用.
    }
}
 

2.  成员变量与静态变量
案例三:

package weekend02;
 
public
class
Demo05 {
    static Cat
catQueen;    //定义一个静态变量//在类中,方法外
    public
static void
main(String[]
args) {
       System.out.println(Cat.num);     //0//静类变量用类名直接访问,默认初始化为“零”值(0,false,null);
       Cat tom = new Cat(3);    //成员变量的调用必须先创建对象
       System.out.println(tom.age);     //通过对象引用成员变量
       Cat.num++;
       System.out.println(Cat.num);      //1//静类变量并不是初始化后不可改变//
       tom.catFather();     //通过对象调用实例方法
       tom.catColor();      //通过对象调用静态方法
       catQueen.catColor();   //静态变量直接调用静态方法
       catQueen.catFather();
//静态变量直接调用实例方法时,会出现空指针异常
    }
}
class Cat{
    static
int
num;   //定义静态变量
    int
age;   //定义成员变量
    public Cat(int
age){    //构造器(与类名相同,没有返回值,没有void)
       this.age=age;    //this为隐含参数,前一个age表示对象属性,后一个age表示局部变量
    }
    public
static void
catKing(){    //定义静态方法
       /*
        * 静态方法的定义规则及语法
        *static+返回值类型/void+方法名称(参数列表)
{
        *方法体………
        *    }
        */
       String name ="Boots";//定义局部变量
       num=3;  //静态变量赋值为3;
       //age=2;  //静态方法中没有隐含变量“this”,不能直接调用成员变量
       //this.catFather();  //编译错误,静态方法中没有隐含参数this。
       catColor();  //类中可直接调用静态方法,(Cat.catColor())_类中类名可省略
       //catFather();  //不可直接调用实例方法,需先创建对象
    }
    static
void
catColor(){
       System.out.println("这是一个关于猫颜色的静态方法");
    }
    void catFather(){
       System.out.println("这是一个关于猫爸的实例方法");
    }
   
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: