Java单例模式详解

  1. 接口中说声明的方法都是抽象方法。接口中的方法都是public的。

  2. 接口中也可以定义成员变量。接口中的成员变量都是public,final,public,static

  3. 一个类不能既是final,又是abstract,因为abstract的主要目的是一种约定,让子类实现这种约定,而final表示该类不能被继承,这样abstract希望该列可以被继承,而final明确说明,该列不能被继承,两者矛盾,

  4. Design Pattern(设计模式)单利模式(Singleton)表示一个类只会生成唯一的一个对象

package com.yuanzijian02;

class Singleton{
	private static Singleton singleton = new Singleton();
	
	private Singleton(){
		
	}
	
	public static Singleton getInstance(){
		if(singleton == null){
			singleton = new Singleton();
		}
		return singleton;
	}
}

public class SingletonTest {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Singleton singleton = Singleton.getInstance();
		Singleton singleton2 = Singleton.getInstance();
		System.out.println(singleton == singleton2);
	}

}

5. 包。用于将完成不同功能的类分门别类,方法不同的目录下,包的命名规则:将公司的域名翻转作为包名,对于包名:每个字母都需要小写,如果没有使用package那么Java就认为我们所定义的类默认包里面

6. 变异大爱有package声明的Java源文件有两种方式

   1.直接编译,然后根据类中定义的包名,追忆手工建立目录结构,最后将生成的class文件放到该目录中(很少使用,比较麻烦)

   2.使用编译参数 -d , 方式为Java -d.源文件.java,这样编译后,编译器就会帮助我们建立好相应的目录结构

7. 有两个包,分别为aa.bb.cc与aa.bb.dd,那么我们成后者为前者的子包

8. 导入(import),将使用package分离的各个类导入回来,让编译器能够找到需要的类

9. import的语法:import com.yuanzijian.PackageTest

10.import com.yuanzijian.*;表示导入com.yuanzijian包下面所有的类

11.import aa.bb.*并不会导入aa.bb.cc包下面的类,这是需要这样写:

   import aa.bb.*;

   import aa.bb.cc.*;

12.关于package、import、class的顺序问题

   1.首先要定义包的顺序          可选

   2.接下来使用import进行导入    可选

   3.然后才是class或者是interface的定义。

13.如果两个类在同一个包的下面,直接使用就可以了,不需要导入

14.访问修饰符(access modifier)

   1.public(公共的):被public修饰的属性和方法可以被所有的类访问

   2.protected(受保护的):

   3.private(私有的):被private所修饰的属性和方法,只能在该类的内部使用

   4.默认的(不加任何访问修饰符):在类的内部可以访问,以及在相同包下面的类也可以访问

15.instanceof:判断某个对象是否是魔偶个类的实例。形式:引用名in是探测偶发类名,返回一个布尔值。

你可能感兴趣的:(abstract,static,private)