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.类方法可以通过 [类名.类方法名] 直接访问
java面向对象编程(三)--类变量、类方法