package test;//创建一个名为test的包

public class A4paper implements Paper {
public String getSize(){
return"A4";//实现接口Paper
}
}
package test;

public class B5paper implements Paper {
public String getSize(){
return"B5";//实现接口Paper
}
}
package test;

public class ColorMohe implements Mohe {
public String getColor(){
return "colorful";//实现接口Mohe
}
}
package test;

public interface Mohe {
public String getColor();//创建接口Mohe
}
package test;

public interface Paper {
public String getSize();//创建接口Paper
}
package test;

public class Printer {
private Mohe mohe;
private Paper paper;
public void print(){
System.out.println("用"+mohe.getColor()+"打印"+paper.getSize()+"纸");
}
public Mohe getMohe(){
return mohe;
}
public void setMohe(Mohe mohe){
this.mohe=mohe;
}
public Paper getPaper(){
return paper;
}
public void setPaper(Paper paper){ this.paper=paper;//完成Mohe与Paper的封装
}
}
package test;

public class Test {
public static void main(String[] args){
Printer printer=new Printer();
Mohe mohe=new WhiteMohe();
printer.setMohe(mohe);
Paper paper=new A4paper();
printer.setPaper(paper);
printer.print();//实现用白墨盒打印A4纸的功能
}
}
package test;

public class WhiteMohe implements Mohe{
public String getColor(){
return "white";//实现接口Mohe
}
}

如上代码可以实现不同颜色墨盒打印打印不同类型纸张的功能。

下面谈谈java中的异常,异常分Error与Exception,主要讲讲Exception,java中Exception异常很多,常见的有下面5种

InputMismatchException 输入不匹配异常
ArithmeticException 算术异常
ArrayIndexOutOfBoundsException 数组下标越界异常
NullPointerException 空指针异常
NumberFormatException 数字格式转换异常

1.如何捕获异常:使用try-catch、finally语句

package test1;
import java.util.*;
import java.util.Scanner; public class Demo00 {
public static void main(String[] args){
try {
Scanner scanner=new Scanner(System.in);
System.out.println("");
int num1=scanner.nextInt();
int num2=scanner.nextInt();
System.out.println(num1+"/"+num2+"="+num1/num2);
System.out.println("thank you for your use");
}
catch (InputMismatchException e) {
System.err.println("输入不匹配异常");
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ArithmeticException e) {
System.err.println("算术异常");
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (Exception e) {
System.out.println("其他异常");
// TODO Auto-generated catch block
e.printStackTrace();
return;//在finally语句后执行
}
finally {
System.out.println("thank you");
}
}
}

如上代码实现了输入对应的除数与被除数完成除法的功能,在用户输入了对应类型的错误输入值后,控制台上就会以红色文字显示出了哪种错误。代码执行顺序是try语句-->catch语句(非return)-->finally-->catch语句中return

2.throws声明异常

案例:
public class Demo05 {
//1.创建一个方法,声明异常
public void show()throws Exception{
//xxx
System.out.println("*******");
} //2.调用该方法的第一种方式,就是在调用方throws Exception
// public static void main(String[] args)throws Exception {
// Demo05 demo05 = new Demo05();
// demo05.show();
// } //3.用该方法的第二种方式,就是使用try catch捕获异常
public static void main(String[] args) {
Demo05 demo05 = new Demo05();
try {
demo05.show();
} catch (Exception e) {
e.printStackTrace();
}
}
}

3.手工抛异常throw new Exception("");

案例:
public class Demo06 {
public void show() throws Exception {
int a = 3;
int b = 1;
if (a > b) {
System.out.println("a>b");
} else if (a <= b) {
System.out.println("a<=b");
} else {
// 手工抛异常
throw new Exception("程序有问题!");
}
} // public static void main(String[] args)throws Exception {
// Demo06 demo06 = new Demo06();
// demo06.show();
// } public static void main(String[] args) {
Demo06 demo06 = new Demo06();
try {
demo06.show();
} catch (Exception e) {
e.printStackTrace();
}
}
}

java中接口的简单运用&java中的一些异常(运用myeclipse)的更多相关文章

  1. [Java初探08]__简单学习Java类和对象

    前言 在前面的学习中,我们对面向对象的编程思想有了一个基本的了解,并且简单的了解了类和对象的定义.那么类和对象在Java语言中是如何表现的,这次,就从实际出发,学习一下一下类和对象在Java语言中的使 ...

  2. IPv6调用java后端接口报错:java.net.SocketException: Protocol family unavailable

    目前需求是java后端的接口需要支持IPv6.先确认linux机器已经绑定了IPv6: CMREAD-SV43 apache-tomcat/bin> ifconfig eth0 Link enc ...

  3. Java实现接口用来弥补Java单继承的缺陷

    package com.test3;/** * @author qingfeng * 功能:继承类 VS 实现接口 :两者之间的关系(实现接口用来弥补Java单继承的缺陷) */public clas ...

  4. java 通过接口在后台管理器中生成数据

    需求:测试人员在后台批量添加数据很麻烦,特别是针对一款商品配置了英语,还需要手动添加法语.俄语.阿拉伯语,很麻烦,但是因为没有项目组配合,做个小工具批量生成数据就只有自己去研究了 第一步:通过抓包工具 ...

  5. 【Java面试】请简单说一下你对受检异常和非受检异常的理解

    Hi,我是Mic 今天给大家分享一道阿里一面的面试题. 这道题目比较基础,但是确难倒了很多人. 关于"受检异常和非受检异常的理解" 我们来看看普通人和高手的回答. 普通人: 嗯.. ...

  6. Servlet视频-开发第一个java web(最简单的java web程序)(二)

    web项目有目录结构要求 WEB-INFO 文件夹 是一个Servlet规范,必须要这么命名,在换个文件夹里面如果创建一个jsp文件是不能直接访问的,在WEB-INfO文件夹之外创建的jsp可以直接访 ...

  7. java . -- IDEA运行最简单的Java程序Hello World

    以下内容基于IDEA, JAVA EE已经安装好的情况. 如果没有安装好,网上的安装教程非常多的. 下面开始,18个图解 点击Finish 运行的代码如下: public class HelloWor ...

  8. java微信接口之五—消息分组群发

    一.微信消息分组群发接口简介 1.请求:该请求是使用post提交地址为: https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_t ...

  9. java微信接口之四—上传素材

    一.微信上传素材接口简介 1.请求:该请求是使用post提交地址为: https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=A ...

随机推荐

  1. python 查看以及更新安装包

    查看 在终端(windows:电脑win+R, linux:ctrl+alt+T)输入: pip list 或者 conda list 更新 在终端(windows:电脑win+R, linux:ct ...

  2. C语言|博客作业4

    一.本周教学内容:用C语言编写程序-循环结构 2.4 输出华氏-摄氏温度转换表.要求学生掌握使用for循环语句实现指定次数的循环程序设计. 二.本周作业头 问题 答案 这个作业属于哪个内容 C语言程序 ...

  3. 比较CGI,FastCGI,PHP-CGI与PHP-FPM的区别

    最早的Web服务器,可以简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html. 随着时间的变化,网站也越来越复杂,所以出现动态技术.但是服务器并不能直接 ...

  4. CSS深入理解line-height

    1.line-height高度基于基线 2. 3.p元素的高度由行高决定的 4. 5.

  5. gitlab fatal: Authentication failed for 'http://10.2.80.17:8090/yeyichao/201904041026PROj.git/'

    fatal: Authentication failed for 'http://10.2.80.17:8090/yeyichao/201904041026PROj.git/' git config ...

  6. ssh 免密码登录实现批量处理

    搭建集群的时候ssh 免密码登录是一个问题以下脚本将实现批量处理 文件1主机名:host 17.19.18.11:12317.19.18.12:123 文件2:ssh_setup.py #!/usr/ ...

  7. laravel在路由中设置中间件

    //单个 路由 Route::get( 'admin/admin/index' , [ 'middleware' => 'old', 'uses' => 'Admin\AdminContr ...

  8. 算法8-5:Prim算法

    Prim算法用于计算最小生成树.Prim算法分为两种,一种是懒汉式,一种是饿汉式. 懒汉式Prim 懒汉式Prim算法过程例如以下: 首先将顶点0增加到MST中 从MST与未訪问顶点之间边中选出最短的 ...

  9. 全局唯一iD的生成 雪花算法详解及其他用法

    一.介绍 雪花算法的原始版本是scala版,用于生成分布式ID(纯数字,时间顺序),订单编号等. 自增ID:对于数据敏感场景不宜使用,且不适合于分布式场景.GUID:采用无意义字符串,数据量增大时造成 ...

  10. Springboot1.5.9整合WebSocket

    一.WebSocket介绍 1.WebSocket是什么? WebSocket是协议,是HTML5开始提供的基于TCP(传输层)的一种新的网络协议, 它实现了浏览器与服务器全双工(full-duple ...