目录
1.static
静态的,是属于类的,被类的所有对象共享,静态的在内存中只有一块内存。
public class person {
String name;
Integer age;
static String hobby;
}
ublic class test1 {
public static void main(String[] args) {
//创建person1对象
person person1 = new person();
person1.name="zp";
person1.age = 20;
person1.hobby = "吃饭";
System.out.println(person1.age+"的"+person1.name+"的爱好是"+person1.hobby);
//创建person2对象
person person2 = new person();
person2.name="lzq";
person2.age = 20;
/*
*我们可以发现我们并没有给person2.hobby赋值,
*但它却有值,说明静态对象被类中的所有对象共享
*/
System.out.println(person2.age+"的"+person2.name+"的爱好是"+person2.hobby);
}
}
2.特点
- static修饰属性,那么这个属性就是静态属性:
- 静态属性通常都是public的,没有私有,因此也没有getter和setter方法
- 2、static修饰方法,那么这个方法就是静态方法:
- 静态方法中没有this
- 静态方法中只能访问静态属性,不能访问非静态属性。
- 静态方法可以调用静态方法,静态方法不可以调用非静态方法。
- 非静态方法没有限制,可以访问静态属性和调用静态方法。
//访问静态属性的方式: //1、通过对象访问: p1.num; //2、通过类名访问: Person.num;//推荐使用这种 //调用静态方法的方式: //1、通过对象调用: p1.setNum(10); //2、通过类名调用: Person.setNum(30);//推荐使用这种
3.静态块
- 非静态方法没有限制,可以访问静态属性和调用静态方法。
//静态块是一个类中最先执行的代码,并且只执行一次:
static{
代码;
}
4.单例类
如果一个类只有一个对象,那么这样的类称之为单例类。