JAVA自学课程笔记4

2021282208分
JAVA自学课程笔记4:
	
	接口(interface)
		抽象方法和常量值的集合。本质上是一种特殊的抽象类。
		格式:
			(public) interface InterfaceName (extends SuperInterfaceList){
				//常量定义和方法定义
			}

		接口可以继承多个父接口(extends A,B),而类不可以。
		接口中的变量类型都是省略了前缀的public finalpublic 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自学课程笔记320行继承的关系)
			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
				}
			}

	包(packagepackage语句必须是第一条。

		package aa.bb表示:把该文件中的所有的类放入aa.bb这个包中,并且该文件中所有类的真正名字将是包名和类名的组合。(例如:aa.bb.Test4)。

		编译时使用javac -d.Test4.java而尽量不使用javac Test4.java,后者需要手动创建目录。(-d后的'.'是说明当前目录。)
		(查找包和设置classpath见笔记13行。)

		不同的包中的类若想跨包相互引用,则必须声明该类为public并且将包名前缀写上。(如aa.bb.A aa = new aa.bb.A();)若想引用该类中的成员,则成员也必须声明为public。
		如果想跨.java的源代码引用不同的类,可以在同目录编译完成的情况下直接new,当作写在同一个源代码.java文件当中。

		导入(import)
			将一个包内的所有类导入:import aa.bb.*;
			将一个类导入:import aa.bb.Test5;
			导入包后,若跨包引用类,原始类必须声明为public。若跨包使用类若跨包引用成员,原始成员必须声明为public。
		内部类
			只有内部类可以用protectedprivate修饰。外部类只能是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中的内容解压到当前目录下。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值