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.类方法可以通过 [类名.类方法名] 直接访问

原文地址:https://www.cnblogs.com/Davis812/p/3903000.html