2021年2月8日22点08分
JAVA自学课程笔记4:
接口(interface)
抽象方法和常量值的集合。本质上是一种特殊的抽象类。
格式:
(public) interface InterfaceName (extends SuperInterfaceList){
//常量定义和方法定义
}
接口可以继承多个父接口(extends A,B),而类不可以。
接口中的变量类型都是省略了前缀的public final和public abstract型变量。
如果实现接口后重写变量,必须声明public。
类可以实现(implements)接口。但如果只实现了部分,则该类必须声明为抽象类。
interface It{
public static final int i = 20;
public abstract void f();
}
interface It2{
int i = 20;
void f();
}
class A implements It2{
public void f(){
System.out.printf("%d\n",i);
}
}
public class Test1{
public static void main(String[] args){
A aa = new A();
aa.f();
}
}
//输出结果:
20
接口实现(implements)多态,不可以new接口对象,但可以定义一个接口引用类型的变量(接口变量)去指向实现接口的那个对象(类变量)。
interface It{
int i = 20;
void f();
}
class A implements It{
public void f(){
System.out.println("AAAA");
}
}
public class Test2{
public static void main(String[] args){
//It it2 = new It(); //error
It it;
it = new A(); //OK 即It it = new A();
it.f();
}
}
//输出结果:
AAAA
实现(implements)接口只能调用从父接口实现过来的成员,不能调用子类所特有的。(JAVA自学课程笔记3第20行继承的关系)
interface It{
int i = 20;
void f();
}
class A implements It{
public void f(){
System.out.println("AAAA");
}
public void g(){
}
}
public class Test3{
public static void main(String[] args){
//It it2 = new It(); //error
It it;
it = new A(); //OK
it.f();
it.g(); //error
}
}
包(package)
package语句必须是第一条。
package aa.bb表示:把该文件中的所有的类放入aa.bb这个包中,并且该文件中所有类的真正名字将是包名和类名的组合。(例如:aa.bb.Test4)。
编译时使用javac -d.Test4.java而尽量不使用javac Test4.java,后者需要手动创建目录。(-d后的'.'是说明当前目录。)
(查找包和设置classpath见笔记1第3行。)
不同的包中的类若想跨包相互引用,则必须声明该类为public并且将包名前缀写上。(如aa.bb.A aa = new aa.bb.A();)若想引用该类中的成员,则成员也必须声明为public。
如果想跨.java的源代码引用不同的类,可以在同目录编译完成的情况下直接new,当作写在同一个源代码.java文件当中。
导入(import)
将一个包内的所有类导入:import aa.bb.*;
将一个类导入:import aa.bb.Test5;
导入包后,若跨包引用类,原始类必须声明为public。若跨包使用类若跨包引用成员,原始成员必须声明为public。
内部类
只有内部类可以用protected和private修饰。外部类只能是public和非public(即不声明default)。
class A{
protected class B{
}
}
归档工具jar包
将多个文件或目录合并压缩为单个Java归档文件。用于发布和使用类库,便于资源的组合和管理。
jar -cvf Name.jar * //把当前路径下所有的文件及文件夹下的所有内容(*)打包。
jar -tf Name.jar //在DOS下显示Name.jar这个包解压后的文件内容。
jar -xf D:\XX\Name.jar //把D:\XX\Name.jar中的内容解压到当前目录下。
JAVA自学课程笔记4
最新推荐文章于 2024-09-15 09:47:04 发布