一、接口(重点)
1.为啥要学习接口?
(1)
---java支持单继承的,子类就没办法扩充方法了,于是使用接口来实现。
---java支持多实现的,实现类可以多实现接口。
(2)
---接口成为各部门之间,沟通程序业务的方式和手段。
为啥呢?接口可以定义规则!
---接口里的属性都是public static final
接口里的方法 (旧)public abstract
(新) 可以有具体方法。
---接口里全是抽象方法,意义呢?---指个方向。
接口和抽象类的区别:抽象类单继承,接口多实现。
【接口实例】
【Actor类】
java
package Demo1.ch3;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
public class Actor implements Movie,Dianshi,Sing{
String name;
public Actor(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void movie() {
System.out.println("我能演电影");
}
@Override
public void dianshi() {
System.out.println("我能演电视剧");
}
@Override
public void sing() {
System.out.println("我能唱歌");
}
}
【接口类3个】
java
package Demo1.ch3;
public interface Dianshi {
void dianshi();
}
java
package Demo1.ch3;
public interface Movie {
void movie();
}
java
package Demo1.ch3;
public interface Sing {
void sing();
}
【测试类】
java
package Demo1.ch3;
public class Test {
public static void main(String[] args) {
Actor actor=new Actor("马素素");
System.out.println("大家好,我是"+ actor.getName());
actor.movie();
actor.dianshi();
actor.sing();
}
}
二、内部类(了解)
1.类的组成: 属性,方法,构造器,代码块,内部类
2.出现内部类的原因?
----java支持单继承:影响是功能的扩展
----内部类 > 接口
三、异常处理机制:java异常处理机制怎么用!
1. 为什么要用异常处理机制?
保证程序不终止!不用的情况下,一点点小问题,都会导致整个程序终止。
2.异常处理机制的5个关键字:
发现问题,解决问题--两种情况
第一种方法:我能解决:try--catch--finally
第二种方法:我不能解决:向上报告 --->声明异常thorws
try: 监控可能会出现问题的代码
catch: 解决问题的部分
finally: 善后部分
thorws:方法声明的地方
thorw: 制造异常的(原因是 引用开发者的注意!)
private int age;
setAge(int age){
if(age>=0 && age<=100){
this.age=age;
}else{
throw new Exception("");
}
}
3.自定义异常类
【创建自定义异常类】
public class AgeException extends Exception {
public AgeException(String mess){
super(mess);
}
}
【使用自定义异常】
throw new AgeException("年龄必须是0-100之间才可以!");
4.异常类型
Object:
所有类的基类,提供了所有对象的基本行为和属性。
Throwable:
所有可以被抛出的异常和错误的基类,提供了获取异常信息的方法。
Error:
表示严重的系统错误 ,通常是不可恢复的,不应被捕获和处理。
Exception:
表示可以被捕获和处理的异常,分为受检异常和非受检异常。
受检异常:编译器强制要求处理。
非受检异常:编译器不要求处理,通常表示编程错误。
5.注意
(1)多个catch的时候:Exception位置一定是最后
try{
System.out.println(1/0);
}catch (ArithmeticException e){
}catch (Exception e){
}
(2)fianlly{ }什么时候不执行
报错的时候---走finally
不报错的时候---也走finally
break、return ---也finally
System.exit(0);---不走finally
【异常处理实例】
java
package Demo1.ch4;
public class Test2 {
//2.写一个方法void isTriangle(int a,int b,int c),判断三个参数是否能构成一个三角形,
//如果不能则抛出异常IllegalArgumentException,显示异常信息 "a,b,c不能构成三角形",
//如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数, 调用此方法,并捕获异常。
public static void main(String[] args) {
isTriangle(1,2,3);
}
public static void isTriangle(int a, int b, int c) {
if ((a + b > c) && (a + c > b) && (b + c > a)){
System.out.println("三角形的三个边长是:"+a+b+c);
}else {
throw new IllegalArgumentException("a,b,c不能构成三角形");
}
}
}