JAVA中三种类型的变量


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//静类变量用类名直接访问,默认初始化为值(0falsenull)

       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("这是一个关于猫爸的实例方法");

    }

   

    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值