1. 接口中所声明的方法都是抽象方法,接口中的方法都是public的
2. 接口中也可以定义成员变量。接口中的成员边都是public、final、static的。
3. Design Pattern(设计模式),单例模式(Singleton):表示一个类只会生成唯一的一个对象
分析:public class SingletonTest
{
public static void main(String args[])
{
Singleton singleton = Singleton.getInstance();
Singleton singleton2 = singleton.getInstance();
System.out.println(singleton == singleton2);
singleton.run();
}
}
class Singleton
{
private Singleton()
{
}
private static Singleton singleton = new Singleton();
public static Singleton getInstance()
{
return singleton;
}
public void run()
{
System.out.println("run");
}
}结果:true//true表示两个引用指向同一个对象
run
4. 包(package)。用语将不同功能的类分门别类,放在不同的目录(包)下。包的命名规则:将公司域名反转作为包名。对于包名,所有字母都要小写,如果定义类的时候没有。如果定义类的时候没有使用package,那么java就认为我们所定义的类位于默认包里面(default package)
5. 编译带有package声明的java源文件有两种方式:
a) 直接编译,然后根据类中所定义的包名,逐一手工建立目录结构,最后将生成的class文件放到该目录结构中(很少使用,比较麻烦)
b) 使用编译参数 –d,然后为javac –d . 源文件.java,这样在编译后,编译器会自动建立好包所对应的目录结构。
6. 有两个包名,分别是aa.bb.cc与aa.bb.cc.dd,那么我们称后者为前者的子包。
7. 导入(import),将使用package分离的各个类导入回来,让编译器能够找到所需要的类。Improt语法:import booming.baoming.baoming.leiming;;import booming.baoming.*(表示导入包下所有类,但不会导入子包下的类)。
8. 关于package、import、class的顺序问题
a) 首先需要定义包(package),可选
b) 接下来使用import进行导入,可选
c) 然后才是class或interface的定义
9. 访问修饰符(access modifier)
1) public(公共的),被public所修饰的属性和方法可以被所有的类访问。
2) protected(受保护的):被protected所修饰的属性和方法可以在类内部、相同包以及该类的子类所访问。
3) private(私有的):被private所修饰的属性和方法只能在该类内部使用。
4) 默认的(不加任何访问修饰符或default):在类内部以及相同包下面的类使用。
10. Instanceof:判断某个对象是否是某个类的实例。语法形式:引用名 instanceof 类名(接口名),返回一个布尔值。
People people = new Man();
System.out.println(people instanceof People);
people所指向的对象是不是People类的实例,显然true(Man是Peopele的子类,根据继承,子类就是父类,某一个男人,是男人这个类的实例,同时当然是人这一类的实例)。