1、包(package):用于将完成不同功能的类分门别类,放在不同的目录(包)下。包的命名规则:将公司域名反转作为包名。如www.abc.com,com.abc.www为包名。对于包名来说,每个字母都需要小写。如果定义类的时候没有使用package,那么java就认为我们所定义的类位于默认包里面(default package)
2、编译带有package声明的java源文件有两种方式:
A) 直接编译,然后根据类中所定义的包名,逐一手工建立目录结构,然后将生成的class文件放到该目录结构中(很少使用,比较麻烦)
B) 使用编译参数–d,方式为javac–d .源文件.java,这样在编译后,编译器会自动帮助我们建立好对应的目录结构。
3、有两个包名,分别是aa.bb.cc与aa.bb.cc.dd,那么我们称后者为前者的子包。
4、导入(import),将使用package分离的各个类导入回来,让编译器能够找到所需要的类。
import com.abc.PackageTest; //导入写包全名+类名,表示导入一个具体的类
import com.abc.*;表示导入com.abc包下面的所有类
5、import com.abc.*并不会导入com.abc.cde 包下面的类,这时需要这样写:
import com.abc.*;
import com.abc.cde.*;
6、关于package、import、class的顺序问题:
A)首先需要定义包(package),可选
B)接下来使用import进行导入,可选
C)然后才是class或是interface的定义。
D)如果两个类在同一个包下面,那么则不需要导入,直接使用即可。
7、访问修饰符(access modifier)
1)public(公共的):被public所修饰的属性和方法可以被所有类访问。
2)protected(受保护的):被protected所修饰的属性和方法可以在类内部、相同包以及该类的子类所访问。
3)private(私有的):被private所修饰的属相和方法只能在该类内部使用
4)默认的(不加任何访问修饰符):在类内部以及相同包下的类所使用
8、instanceof:判断某个对象是否是某个类的实例。语法:
名 instanceof 类名(接口名),返回一个布尔值。
如果定义一个类Man extends People
People people = new Man();
System.Out.println(people instanceof People);为真。因为Man是People的子类,子类就是父类,因此Man也可以看做是People的实例
9、相等性的比较(==)
1)对于原生数据类型来说,比较的是左右两边的值是否相等
2)对于引用类型来说,比较左右两边的引用是否指向同一个对象,或者说左右两边的引用地址是否相同。