{{ v.name }}
{{ v.cls }}类
{{ v.price }} ¥{{ v.price }}
2.接口中也可以定义成员变量。接口中的成员变量都是public、final、static的。
3.一个类不能既是final,又是abstract的。因为abstract的主要目的是定义一种约定,让子类去实现这种约定,而final表示该类不能被继承,这样abstract希望该类可以被继承而final明确说明该类不能被继承,两者矛盾。因此一个类不能既是final的,又是abstract的。
4.designpattern(设计模式)。单例模式(singleton):表示一个类只会生成唯一的一个对象。
publicclasssingletontest{publicstaticvoidmain(string[]args){singletonsingleton=singleton.getinstance();singletonsingleton2=singleton.getinstance();system.out.println(singleton==singleton2);}}classsingleton{privatestaticsingletonsingleton;privatesingleton(){}publicstaticsingletongetinstance(){if(singleton==null){singleton=newsingleton();}returnsingleton;}}
5.包(package)。用于将完成不同功能的类分门别类,放在不同的目录(包)下。包的命名规则:将公司域名反转作为包名。(包名),对于包名:每个字母都需要小写。如果定义类的时候没有使用package,那么java就认为我们所定义的类位于默认包里面(defaultpackage)。
6.编译带有package声明的java源文件有两种方式:
a)直接编译,然后根据类中所定义的包名,逐一手工建立目录结构,最后将生成的class文件放到该目录结构中(很少使用,比较麻烦)。
b)使用编译参数–d,方式为javac–d.源文件.java,这样在编译后,编译器会自动帮助我们建立好包所对应的目录结构。
7.有两个包名,分别是aa.bb.cc与aa.bb.cc.dd,那么我们称后者为前者的子包。
8.导入(import),将使用package分离的各个类导入回来,让编译器能够找到所需要的类。
9.import的语法:importcom.shengsiyuan.packagetest;
10.importcom.shengsiyuan.*,表示导入com.shengsiyuan包下面的所有类。
11.importaa.bb.*并不会导入aa.bb.cc包下面的类。这时需要这样写:
importaa.bb.*;
importaa.bb.cc.*;
12.关于package、import、class的顺序问题:
a)首先需要定义包(package),可选b)接下来使用import进行导入,可选c)然后才是class或interface的定义。
13.如果两个类在同一个包下面,那么则不需要导入,直接使用即可。
14.访问修饰符(accessmodifier)。
1)public(公共的):被public所修饰的属性和方法可以被所有类访问。
2)protected(受保护的):被protected所修饰的属性和方法可以在类内部、相同包以及该类的子类所访问(除此之外,跟默认的是一样的)(子类不在同一个包也可以)。
被子类所使用:在子类的内部所使用,即被子类继承
3)private(私有的):被private所修饰的属性和方法只能在该类内部使用
4)默认的(不加任何访问修饰符):在类内部以及相同包下面的类所使用。
15.instanceof:判断某个对象是否是某个类的实例。语法形式:引用名instanceof类名(接口名),返回一个boolean值。
16.peoplepeople=newman();
17.system.out.println(peopleinstanceofpeople);//结果为true,因为man是people的子类,根据继承,子类就是父类,因此man也可以看作是people的实例。