static定义属性
在一个类之中,主要的组成就是属性和方法(分为构造方法与普通方法两种),而每一个对象都分别拥有各自的属性内容(不同对象的属性保存在不同的堆内存之中),如果现在类中的某个属性希望定义为公共属性(所有对象都可以使用的属性),也就是在全局数据区开辟一块空间,则可以在声明属性前加上static关键字。
static定义方法
在定义类的普通方法时也可以使用static进行定义,那么很明显,使用static定义的方法也可以在没有实例化对象产生的情况下由类名称直接进行调用。
static方法限制
类中的方法有两组:static方法、非static方法。这两组件方法间访问也将受到限制:
static方法不能够直接访问非static属性或者是方法,只能够调用static属性或方法;
非static方法可以访问static的属性或者是方法,不受任何的限制
Static的一些小功能:1.实现类实例化对象个数的统计
class Book {
1. private static int num = 0; // 保存统计个数
2. public Book() { // 只要是新对象实例化就执行此构造
3. num++; // 保存个数自增
4. System.out.println("这是第" + num + "个产生的对象!");
5. }
6. }
7. public class TestDemo {
8. public static void main(String args[]) {
9. new Book(); new Book(); new Book();
10. new Book(); new Book(); new Book();
11. }
12. }
2.实现属性的自动设置
class Book {
private String title ; // title属性
private static int num = 0 ; // 自动命名索引号
public Book() { // 没有设置title属性内容
this("NOTITLE - " + num ++) ; // 自动命名
}
public Book(String title){ // 设置title属性内容
this.title = title ;
}
public String getTitle() {
return this.title ;
}
}
public class TestDemo {
public static void main(String args[]) {
System.out.println(new Book("Java").getTitle()) ;
System.out.println(new Book().getTitle()) ;
System.out.println(new Book().getTitle()) ;
}
}