Java.7--接口-内部类-异常处理

一、接口(重点)

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{

//this.age=20;//

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不能构成三角形");
        }
    }
}
相关推荐
Scott9999HH3 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
腻害兔3 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社4 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海4 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖5 小时前
JDK 26 新特性详解
java·开发语言
马优晨6 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区8 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大8 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai8 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
维天说8 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json