5.6.3static应用案例
static关键字最为重要的使用特点就是避免实例化对象的限制而直接进行属性或方法的调用,同时static属性还可以描述公共数据的特点。
范例:编写一个程序类,这个类可以实现实例化对象的个数统计,每创建一个新的实例化对象就实现一个统计操作。
public class Book {
private String title;
private static int count =0;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public static int getCount() {
return count;
}
public static void setCount(int count) {
Book.count = count;
}
public Book(String title) {
this.title = title;
count++;
System.out.println("第"+count+"本图书创建出来");
}
}
public class Book_a {
public static void main(String[] args) {
new Book("英雄联盟");
new Book("简爱");
new Book("绝地求生");
}
}
第1本图书创建出来
第2本图书创建出来
第3本图书创建出来
范例:实现属性自动命名
public class Book02 {
private String title;
private static int count=0;
public void setTitle(String title) {
this.title =title;
}
public String getTitle() {
return title;
}
public static void setCount(int count) {
Book02.count=count;
}
public static int getCount() {
return count;
}
public Book02() {
this("数量:"+count++);
}
public Book02(String title) {
this.title =title;
}
public String getInfo() {
return "书名"+title;
}
}
public class Book02_a {
public static void main(String[] args) {
System.out.println(new Book02("java").getTitle()+"(调用单参构造调用属性内容)");
System.out.println(new Book02().getTitle()+"(调用无参构造调用属性内容)");
System.out.println(new Book02("数据结构").getTitle()+"(调用单参构造调用属性内容)");
System.out.println(new Book02().getTitle()+"(调用单参构造调用属性内容)");
}
}
java(调用单参构造调用属性内容)
数量:0(调用无参构造调用属性内容)
数据结构(调用单参构造调用属性内容)
数量:1(调用单参构造调用属性内容)
本程序利用了static属性的共享特点,定义了一个对象的计数操作,这样每当调用无参构造方法时都可以保证自动设置一个title属性的内容