5.2 类变量、类方法
☆目标
1、初步理解什么是this代词
2、什么是类变量和类方法
3、初步理解抽象、封装和继承、多态
☆思考
有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在共有多少人在玩?
要使用面向对象的思想,编写程序解决。
☆分析
设计一个int total表示总人数,在创建一个小孩时,就把total加1,并且total是所有对象共享的。
这样的变量成为类变量,也叫静态变量。
☆代码
/*
************************************
作者:李俊挥
日期:2013-12-19
功能:类变量
************************************
*/
public class Demo
{
public static void main(String []args)
{
//创建三个小孩对象
child xiaoXin = new child(5,"小新");
child xiaoBai = new child(4,"小白");
child aDai = new child(6,"阿呆");
//输出小孩的总数(注意调用的方式)
System.out.println("小孩的总数:"+child.total);
}
}
class child
{
int age;
String name;
static int total = 0;
public child(int age,String name)
{
this.age = age;
this.name = name;
total++;
}
}
☆什么是类变量?
类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它,取到的都是相同的值,同样任何一个该类的对象去修改它,修改的也是同一个变量。
☆如何定义类变量
定义语法:
访问修饰符 static 数据类型 变量名;
☆如何访问类变量
类名.类变量 或者 对象名.类变量
☆类方法
类方法是属于 所有对象实例的,其形式如下:
访问修饰符 static 数据返回类型 方法名(){}
注释:类方法中不能访问非静态变量
使用:类名.类方法 或者 对象名. 类方法
☆思考
写一个类方法,用来统计学费总和。
☆代码
/*
************************************
作者:李俊挥
日期:2013-12-19
功能:类方法
************************************
*/
public class Demo
{
public static void main(String []args)
{
//创建两个小孩,并总计两个小孩的学费
child xiaoMing = new child(3,"小明",350);
child xiaoQing = new child(3,"小强",480);
//打印学费
System.out.println("总学费:"+child.sumFee());
}
}
class child
{
int age;
String name;
int fee;
static int total = 0;
public child(int age,String name,int fee)
{
this.age = age;
this.name = name;
//总计学费
total += fee;
}
//静态方法
public static int sumFee()
{
return total;
}
}
采用静态方法,可以统一所有对象都共享一个内存,节省内存空间。
☆类变量小结
1、什么时候需要用类变量
案例:定义孩子类,统计孩子上学的学费
用类变量,属于公共的属性
2、类变量与实例变量的区别:
2.1、加上static成为类变量或者静态变量,否则成为实例变量
2.2、类变量是与类相关的,公共的属性
2.3、实例变量属于每个对象个体的属性
2.4、类变量可以通过类名.类变量名直接访问