zoukankan      html  css  js  c++  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.类方法可以通过 [类名.类方法名] 直接访问

  • 相关阅读:
    单据体内2个字段比较
    立账模式
    余额
    单据服务校验设置
    值更新事件(触发带基础属性到指定字段)
    重建索引 ,压缩数据库
    数据库自动备份
    BZOJ 4597: [Shoi2016]随机序列 线段树 + 思维
    BZOJ 4399: 魔法少女LJJ 线段树合并 + 对数
    BZOJ 2217: [Poi2011]Lollipop 构造 + 思维
  • 原文地址:https://www.cnblogs.com/Davis812/p/3903000.html
Copyright © 2011-2022 走看看