static修饰的变量,所有的对象,都共享这个值。
任何对象都可以修改其值。
什么时候使用对象属性,什么时候使用类属性
如果一个属性,每个英雄都不一样,比如name,这样的属性就应该设计为对象属性,因为它是跟着对象走的,每个对象的name都是不同的
如果一个属性,所有的英雄都共享,都是一样的,那么就应该设计为类属性。比如血量上限,所有的英雄的血量上限都是 9999,不会因为英雄不同,而取不同的值。 这样的属性,就适合设计为类属性
如果一个属性,所有的英雄都共享,都是一样的,那么就应该设计为类属性。比如血量上限,所有的英雄的血量上限都是 9999,不会因为英雄不同,而取不同的值。 这样的属性,就适合设计为类属性
package com.java.charactor; //英雄 public class Hero { //姓名 String name; //血量 float hp; //护甲 float armor; //移动速度 int moveSpeed; //版权 //类属性,静态属性 static String copyright; //为防止继承类报错,一般习惯性的写上无参构造方法 public Hero() { } //有参构造方法 //默认的无参构造方法就失效了 public Hero(String heroName){ this.name = heroName; } public Hero(String name, float hp) { this.name = name; this.hp = hp; }... public static void main(String[] args) { Hero garen = new Hero("盖伦", 500); Hero teemo = new Hero("提莫", 383); Hero.copyright = "版权由Rido Games公司所有"; System.out.println(garen.name); System.out.println(garen.copyright); System.out.println(teemo.copyright); Hero.copyright = "版权改变了"; System.out.println(garen.copyright); System.out.println(teemo.copyright); } }