第八周实验总结
一、知识总结
接口的总结:
1.接口本身 是一个特殊的类
2.接口的成员变量 默认是 public static final 修饰的,也就是说接口中的成员变量实际上是一个常量
3.接口中的 方法 都是抽象方法,默认修饰 public abstract
4.接口是不能够创建对象的
5.接口是没有构造方法
6.因为接口是提供给 类 去使用的,非抽象类去实现一个接口的时候,必须要把接口中所有的方法 都要实现。
接口的语法:
修饰符 interface 接口类{} 或者 修饰符 interface 接口类 extends 父接口1,父接口2{}
类实现的语法:
class 类名 extends 父类名 implements 接口1,接口2{类的内容}
接口方法的定义:
1.接口中的方法都是抽象方法。
2.接口中的方法,不能有任何的修饰。
3.编译器在编译的时候会自动为你加上public static fianl修饰。
如何使用接口的例子:
//定义接口类
interface Lock{
void unlock();
}
// 创建父类链接接口
abstract class Door implements Lock{
void openDoor(){
}
}
子类继承父类,并继承父类链接的接口并重写方法
class ThelfProofDoor extends Door{
public void unlock(){
}
}
接口的作用:
1.扩展功能
2.定义约束规范
3.程序解耦合性
类和接口的注意点:
1.当一个 <非抽象类> 在实现 接口的时候,必须实现接口中 <所有的方法>
2.当一个抽象类,在实现接口的时候,可以实现也可以不实现 接口中的方法, 因为抽象类的子类来实现
3.一个类可以实现多个接口
4. 因为抽象类本身就不能够被实例化,它给子类继承用的,所以它不可以实现这个接口中的方法,而让对应的子类来实现就可以了。(注意:如果子类也没有实现接口中的方法,则会出错。)
接口与接口之间的关系:
在java中类是单继承的,一个类只有一个直接父类,接口也是可以继承的,但是它是多继承的,也就是一个接口可以继承多个接口(接口的继承是指继承接口的方法,而且能够多继承的关键点是接口的方法是实现这个接口的类来实现的)
例如:
interface A{
void test();
}
interface B{
void test2();
}
class Test implements A,B{
public void test(){
}
public void test2(){
}
}
并且类与类之间出来继承,接口,还有关联。而关联又分为依赖、聚合、组合依赖。
二、实验内容(接口的定义与使用)
1、实验目的与要求
(1) 掌握接口定义方法;
(2) 掌握实现接口类的定义要求;
(3) 掌握实现了接口类的使用要求;
(4) 掌握程序回调设计模式;
(5) 掌握Comparator接口用法;
(6) 掌握对象浅层拷贝与深层拷贝方法;
(7) 掌握Lambda表达式语法;
(8) 了解内部类的用途及语法要求。
2、实验内容和步骤
实验1: 导入第6章示例程序,测试程序并进行代码注释。
测试程序1:
l 编辑、编译、调试运行阅读教材214页-215页程序6-1、6-2,理解程序并分析程序运行结果;
l 在程序中相关代码处添加新知识的注释。
l 掌握接口的实现用法;
l 掌握内置接口Compareable的用法。
package interfaces; import java.util.*; /** * This program demonstrates the use of the Comparable interface. * @version 1.30 2004-02-27 * @author Cay Horstmann */ public class EmployeeSortTest { public static void main(String[] args) { Employee[] staff = new Employee[3]; staff[0] = new Employee("Harry Hacker", 35000); staff[1] = new Employee("Carl Cracker", 75000); staff[2] = new Employee("Tony Tester", 38000); Arrays.sort(staff); // 打印所有员工对象的信息 for (Employee e : staff) System.out.println("name=" + e.getName() + ",salary=" + e.getSalary()); } }