类的高级特性
1 类包
1.1 类名冲突
类包的存在就是为了解决类名的冲突,就是重名。
1.2 完整的类路径
例如:java.uitl.Date = new java.util.Date();
java.sql.Date = new java.sql.Date(233);
补充说明:
1 同一个包中的类相互访问时,可以不指定包名。
2 同一个包中的类不必存放在同一个位置,如com.lzw.class1 和 com.lzw.class22 可以一个位置放到C盘,一个放到D盘,只要将 CLASSPATH 分别执行这两个位置即可。
1.3 创建包
1.3.1 创建包的方式:可以通过 ecllipse 右键新建包的形式进行创建,例如创建包名为 com.lzw
1.3.2 命名方式: com.lzx 中的 com 是域名的.com 的 反向写的形式, lzx 是域名, 这样写的目的就是为了针对域名进行区分。
第二:一般这些书写包,包的文件位置一般是 项目目录/src/com/lzw 目录下 来创建 .java文件
显示效果如图:
1.3.3 引入包,使用包的例子:
package com.lzw; // 指定包名
public class Math{
public static void main(String[] args){
Sysetem.out.println("不是 java.lang.Math 类,而是 java.lzw.Math 类");
}
}
1.4 导入包
1.4.1 使用 import 关键字导入包 import com.lzw.*;// 指定com.lzw 包中的所有类在程序中都可以使用
import com.lzw.Math; // 指定 com.lzw包中的 Math 类在程序中可以使用
说明: 如果定义了这样的类,在引入的时候,一定要用 完整的包路径。
1.4.2 使用 import 导入静态成员
import static 静态成员。
代码:
package com.goodboy;
import static java.lang.Math.max;// 导入静态方法
import static java.lang.System.out;//导入静态成员变量
public class ImportTest {
public static void main(String[] args) {
// TODO 自动生成的方法存根
out.println("1 和 4 的最大数为:"+max(1,4));
}
}
2 final
2.1 final 变量
2.2 final 方法
2.3 final 类
3 内部类
3.1 成员内部类
3.2 局部内部类
3.3 匿名内部类
3.4 静态内部类
3.5 内部类的继承