首页 > 代码库 > java面向对象编程(三)--类变量、类方法

java面向对象编程(三)--类变量、类方法

1.什么是类变量?

类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。

如何定义类变量?

定义语法:

    访问修饰符 static 数据类型 变量名;

如何访问类变量?

    类名.类变量名 或者 对象名.类变量名

案例:有一群小孩玩堆雪人,不时有新的小朋友加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决。

public class Demo113{    public static void main(String []args){    /*非面向对象方法             int total=0;        Child ch1=new Child(3,"妞妞");        ch1.joinGame();        total++;        Child ch2=new Child(4,"小小");        ch2.joinGame();        total++;     */       //面向对象办法         Child ch1=new Child(3,"小龙");        ch1.joinGame();        Child ch2=new Child(4,"刚子");        ch2.joinGame();        Child ch3=new Child(5,"康康");        ch3.joinGame();        System.out.println("共有="+Child.total);    }}//定义小孩类class Child{    int age;    String name;    //total是静态变量,因此它可以被任何一个对象访问    static int total=0;     public Child(int age,String name){        this.age=age;        this.name=name;    }    public void joinGame(){        total++;        System.out.println("有一个小孩加入了");    }}

2.什么是类方法,为什么有类方法?

类方法是属于所有对象实例的,其形式如下:

  访问修饰符 static 数据返回类型 方法名(){}

注意:类方法中不能访问非静态变量(类变量)。

使用:

    类名.类方法名 或者 对象名.类方法名

static静态的方法可以访问static静态变量,不能访问非静态变量(类变量),非静态方法可以访问非静态变量(类变量),同时也可以访问static静态变量。

案例:统计总学费的程序代码,加深static静态的方法由静态变量的访问[Demo115.java]

public class Demo115{    public static void main(String []args){        //创建一个学生        Stu stu1=new Stu(29,"aa",340);        Stu stu2=new Stu(29,"aa",240);        System.out.println(Stu.getTotalFee());    }}//学生类class Stu{    int age;    String name;    int fee;    static int totalFee;    public Stu(int age,String name,int fee){        this.age=age;        this.name=name;        totalFee+=fee;    }    //返回总学费[这是一个类方法(静态方法)]    //java中规则:类变量原则上用类方法去访问或操作    public static int getTotalFee(){        return totalFee;    }}

3.其他问题

1、什么时候需要用类变量

    如案例[Demo115.java]:定义学生类,统计学生共交多少钱?用类变量,表示公共的属性

2、类变量与成员变量区别:

   a.加上static称为类变量或静态变量,否则称为成员变量

   b.类变量是与类相关的,属于公共的属性

   c.成员变量属于每个对象个体的属性

   d.类变量可以通过 [类名.类变量名] 直接访问

3、什么时候需要用类方法

    如案例[Demo115.java]:定义学生类,统计学生共交多少钱?

4、类方法与类变量区别:

    a.类方法属于与类相关的,属于公共的方法

    b.成员方法属于每个对象个体的方法

    c.类方法可以通过 [类名.类方法名] 直接访问