Java的类属性和对象属性

当一个属性被static修饰的时候,就叫做类属性,又叫做静态属性

当一个属性被声明成类属性,那么所有的对象,都共享一个值

与对象属性对比:

不同对象的 对象属性 的值都可能不一样。

比如盖伦的hp 和 提莫的hp 是不一样的。

但是所有对象的类属性的值,都是一样的

步骤 1 : 类属性

类属性: 又叫做静态属性

对象属性: 又叫实例属性,非静态属性

如果一个属性声明成类属性,那么所有的对象,都共享这么一个值

给英雄设置一个类属性叫做“版权" (copyright), 无论有多少个具体的英雄,所有的英雄的版权都属于 Riot Games公司。

package charactor;

public class Hero {
public String name; //实例属性,对象属性,非静态属性
protected float hp;
static String copyright;//类属性,静态属性 public static void main(String[] args) {
Hero garen = new Hero();
garen.name = "盖伦"; Hero.copyright = "版权由Riot Games公司所有"; System.out.println(garen.name);
System.out.println(garen.copyright); Hero teemo = new Hero();
teemo.name = "提莫";
System.out.println(teemo.name);
System.out.println(teemo.copyright); } }

步骤 2 : 访问类属性

访问类属性有两种方式

  1. 对象.类属性

    teemo.copyright

  2. 类.类属性

    Hero.copyright

这两种方式都可以访问类属性,访问即修改和获取,但是建议使用第二种 类.类属性 的方式进行,这样更符合语义上的理解

步骤 3 : 什么时候使用对象属性,什么时候使用类属性

如果一个属性,每个英雄都不一样,比如name,这样的属性就应该设计为对象属性,因为它是跟着对象走的,每个对象的name都是不同的

如果一个属性,所有的英雄都共享,都是一样的,那么就应该设计为类属性。比如血量上限,所有的英雄的血量上限都是 9999,不会因为英雄不同,而取不同的值。 这样的属性,就适合设计为类属性

练习类属性

(通过garen.copyright修改其值

garen.copyright = "Blizzard Entertainment Enterprise";

然后打印teemo.copyright,观察是否有变化)

最新文章

  1. quartz.net 时间表达式----- Cron表达式详解
  2. Java对象序列化剖析
  3. 树状sql--采用递归方式获取节点
  4. UIAlertController弹出提示框
  5. CentOS中的chkconfig命令
  6. poj代码搬家啦啦啦
  7. js带缩略图的图片切换效果
  8. 最受IT公司欢迎的50款开源软件
  9. iherb账户
  10. WP8.1小梦词典开发2:百度翻译API使用
  11. sql还原(.bak文件还原)
  12. maven 的docker插件
  13. mysql left join
  14. Windows环境下多线程编程原理与应用读书笔记(3)————Windows环境中的多线程实现(3)
  15. python_如何拆分含有多种分隔符的字符串?
  16. 给Cocos2D视图添加手势支持
  17. TCP的三次握手与四次挥手
  18. Beta冲刺 4
  19. 工控随笔_05_西门子_Step7软件仿真方法
  20. 【Java】基本数据类型

热门文章

  1. js中的原型,原型链和继承
  2. 基于wince系统开发的 SQLServe Mobile数据库应用
  3. 面试官问我,为什么老司机建议MySQL列属性尽量用 NOT NULL ?
  4. mysql中的where和having的区别
  5. 遇到的一个Buffer too small问题
  6. <pre> 保留文本格式显示在网页上
  7. python之线程和进程(并发编程)
  8. django admin 编辑页面(change page) 自定义字段, 展示数据
  9. crystalreport使用方法
  10. Chrome插件中 popup,background,contentscript消息传递机制