写在前面
马上就要到小程序交作品的时间了,不到20天,必须的动手了,那这样Java这边要耽误一点了,不管怎么样日更还是要有的,每天学的可能要少一点,明天又是满课...我快疯了。这一周的目标是接口和一个阶段项目实战。
今日所学
接口
如果一个抽象类只有抽象方法和常量值,则可以定义为接口。
1.概念
从本质上来讲,接口是一种特殊的抽象类,只能包含常量和方法声明。
2.用法
定义接口
- 语法:interface 接口明{ 常量 抽象方法 }
- 接口中的属性默认被(public static final)修饰
- 接口中的方法,默认被(public abstract)修饰
- 接口中没有构造方法,不能被实例化接口。
实现接口
- 语法:class 类名 implements 接口名{ }
- 实现接口的类称为实现类,实现类必须实现接口中所有的抽象方法,且方法必须使用public修饰。
- class 类名 extents 父类 imlemements 接口名{ }
3.特征
- 一个类可以实现多个接口,多个接口之间用逗号隔开
- JDK1.8及以后,可以使用default关键字修饰方法
- 此时方法可以有方法体,但一般都为空方法(简化实现类操作,无需实现所有的方法)
今日代码
import java.sql.Array; import java.util.Arrays; public class EmployeeSortTest { public static void main(String[] args) { var staff = new Employee[3]; staff[0]= new Employee("Harry Hacker",35000); staff[1]= new Employee("Carl Cracker",70000); staff[2]= new Employee("Tony Tester",38000); Arrays.sort(staff); for (Employee e:staff ) { System.out.println("name="+ e.getName()+",salary="+e.getSalary()); } } }
public class Employee implements Comparable<Employee>{ private String name; private double salary; public Employee(String name,double salary) { this.name = name; this.salary=salary; } public String getName() { return name; } public double getSalary() { return salary; } public void raiseSalary(double byPercent) { double raise = salary + byPercent / 100; salary+=raise; } public int compareTo(Employee other) { return Double.compare(salary,other.salary); } }