第11章(上)--面向对象编程(高级特性)

1.类变量

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

  • 思路

在main方法中定义一个变量 int totalNum = 0

当有一个小孩加入游戏就 totalNum ++;

  • 使用功能传统的方法可以解决问题

不是一个oop的解决方法,破坏了oop的一个基本原则,封装

1.1.1       什么是类变量

 

类变量也叫静态变量/静态属性/static变量,是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。这个从前面的图也可看出来。

 

1.1.2       如何定义类变量

 

定义语法:

1) 访问修饰符 static 数据类型 变量名; [推荐]

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

 

1.1.3       如何访问类变量     

类名.类变量名

或者 对象名.类变量名  【静态变量的访问修饰符的访问权限和范围普通属性是一样的。】

推荐使用:类名.类变量名;

 

1.1.4       类变量使用注意事项和细节讨论

 

1)      什么时候需要用类变量
当我们需要让某个类的所有对象都共享一个变量时,就可以考虑使用类变量(静态变量):比如:定义学生类,统计所有学生共交多少钱。

2)      类变量与实例变量(普通属性)区别
类变量是该类的所有对象共享的,而实例变量是每个对象独享的。

 

3)      加上static称为类变量或静态变量,否则称为实例变量

4)      类变量可以通过 类名.类变量名 或者  对象名.类变量名 来访问,但java设计者推荐我们使用 类名.类变量名方式访问。【前提是 满足访问修饰符的访问权限和范围】

 

5)      实例变量不能通过 类名.类变量名 方式访问。

6)      类变量是在类加载时就初始化了,也就是说,即使你没有创建对象,只要类加载了(到方法区),就可以使用类变量了。

 

7)      类变量的声明周期是随类的加载开始,随着类消亡而销毁。

2.类方法

 

1.1.1       类方法基本介绍

 

1) 类方法也叫静态方法 。

形式如下:

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

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

 

1.1.2       类方法的调用:

使用方式: 类名.类方法名 或者 对象名.类方法名 【前提是 满足访问修饰符的访问权限和范围

 

猜你喜欢

转载自www.cnblogs.com/-xuewuzhijing-/p/13168187.html