一、类属性VS对象属性
类属性:static修饰,静态属性,所有对象共享,值相同。
对象属性:类成员,未被static修饰,非静态属性,每个对象有不同的值。
二、访问类属性
类名.类属性名
对象名.类属性名
三、代码
package c9_ca;
// ca
// class attributes 类属性
// static 修饰的属性叫做类属性,又称 静态属性
// 类属性,所有对象共享,具有相同的值
// 类的成员属性,对象属性,非静态属性,不同对象可能具有不同的值
public class Hero {
public String name; // 英雄名称
protected float hp; // 血量
static String copyright; // 类属性,版权,每个英雄的版权都属于Riot Games公司
static float maxHp; // 类属性,最大血量,每个英雄最大血量相同,9999.0
public static void main(String[] args) {
Hero garen = new Hero();
garen.name = "garen";
// 1-类属性
Hero.copyright = "Riot Games";
System.out.println("garen.name:" + garen.name);
System.out.println("garen.copyright:" + garen.copyright); // Riot Games
Hero teemo = new Hero();
teemo.name = "teemo";
System.out.println("teemo.name:" + teemo.name);
System.out.println("teemo.copyright:" + teemo.copyright); // Riot Games
// 2-访问类属性 -访问即获取和修改
// 2-1 对象.类属性
// 这种方式也可以,但无法区分对象属性和类属性
garen.maxHp = 9999.0f;
System.out.println("garen.maxHp:" + garen.maxHp);
// 2-2 类.类属性,符合定义,见名知意,推荐使用
Hero.maxHp = 9999.0f;
System.out.println("Hero.maxHp:" + Hero.maxHp);
// 3-改变类属性
// 可以通过 “对象.类属性” 或 “类.类属性”改变类属性的值
garen.copyright = "Tencent Agency";
System.out.println("garen.copyright:" + garen.copyright);
System.out.println("teemo.copyright:" + teemo.copyright);
}
}
运行结果:
四、什么时候使用类属性,什么时候使用对象属性
// 对象属性,跟着对象走,如name,hp,每个对象有自己特有的名称,血量;
// 类属性,所有对象一样,如copyright,maxHp,每个对象的版权一样,最大血量一样,对所有对象通用的属性使用类属性。
我的学习源泉:https://how2j.cn/k/class-object/class-object-class-attribute/296.html?p=114999
Java自学网站:https://how2j.cn?p=114999