Stiatic关键字
stiatic是一个用于声明程序结构的关键字,而此关键字可以用于全局属性和全局方法的声明 ,且主要的特点是可以避免对象实列花的限制,在没有实列化对象的时候直接进行此类结构的访问
如何定义一个拥有static属性声明的代码
列:
public class Chinese {
static String country = "中国"; //声明静态成员属性,暂时不装包
private String name; // 普通的成员属性,保存姓名
private int age; // 保存 年龄
public Chinese(String name, int age) { // 设置属性内容
this.name = name; // 设置 姓名内容
this.age = age; // 设置 年龄 内容
}
// setter getter 略
public String getInfo() {
return "姓名:" + this.name + ",年龄:" + this.age + ",国家:" + this.country;
}
}
public static void main(String[] args) { // 实列化 Chinese 类
Chinese perA = new Chinese("张三", 10);
Chinese perB = new Chinese("李四", 11);
Chinese perC = new Chinese("王二麻", 20);
perA.country = "伟大的国家"; // 修改 静态属性内容
System.out.println(perA.country); // 获取并输出对象信息
System.out.println(perB.country);
System.out.println(perC.country);
}
主:此代码里使用了static才表示公共属性,如果不用此static属性的声明,则会造成各自都拥有不同的此项属性
得出:由static属性定义的内容不在堆内存中,而是在全局数据区;且可以由类中的类内容直接调用,虽然可以通过是实列化对象调用,但是在Java开发中是不提倡的,因为不标准。
而static定义的方法不能用于调用非static的方法或属性,非static定义的方法则可以;而实列化对象在使用非static定义的属性或方法上是不行的,必须要实列化对象之后才行。
static属性有个共同特点,定义一个对象的计数操作,这样后每当调用的无参构造方法时都可以保证自动设置一个titke的属性内容。而在count的累加处理和book类构造中有俩个无参构造和单参构造,不论那个都可以为title设置一个内容,这样就可以通过static属性进行自动命名处理了。