单例模式
接口中声明的方法都是抽象方法。接口中的方法都是public的。
接口也可以定义成员变量。接口中的成员变量都是public、final、static的。
一个类不能既是final,又是abstract的。因为abstract的主要目的是定义一种约定,让子类去实现这种约定。而final表示该类不能被继承。这样abstract希望该类可以被继承而final明确说明该类不能被继承,两者矛盾。因此,一个类不能既是final,又是abstract的。
单例模式(Singleton):表示一个类只会生成一个对象。
public class SingletonTest
{
public static void main(String[] args)
{
Singleton singleton=Singleton.getInstance();
Singleton singleton2=Singleton.getInstance();
System.out.println(singleton==singleton2);
}
}
class Singleton
{
private static Singleton singleton=new Singleton();
public Singleton(){}
public static Singleton getInstance()
{
return singleton;
}
}
访问修饰符
访问修饰符(access modifier).
1)public(公共的):被public修饰的属性和方法可以被所有的类访问。
2)protected(受保护的):被protected所修饰的属性和方法可以在类内部、相同包以及该类的子类所访问。
3)private(私有的):被private所修饰的属性和方法只能在该类的内部所使用。
4)默认的(不加任何访问修饰符):在类内部以及相同包下面的类使用。
instanceof:判断某个对象是否是某个类的实例。语法形式:引用名 instanceof 类名(接口名),返回一个boolean。
People people=new Man();
System.out.println(people instanceof people);//结果为true,因为Man是People的子类,根据继承,子类就是父类,因此Man也可以看做是People的实例。