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. 利用select单线程点对点聊天

    select的优点与使用方法 select用单线程的方法遍历所有待读写的I/O接口, 当有接口可用时就会返回. select可设置电脑阻塞或非阻塞. 特别注意: 每次select前都要重新初始化集合和 ...

  2. Pikachu漏洞练习平台实验——暴力破解(一)

    概述 一个有效的字典可以大大提高暴力破解的效率 比如常用的用户名/密码TOP500 脱裤后的账号密码(社工库) 根据特定的对象(比如手机.生日和银行卡号等)按照指定的规则来生成密码 暴力破解流程 确认 ...

  3. CSS深入理解line-height

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

  4. centOS发布.Net Core 2.0 API

    1.dotnet  xxx.dll & & 放在启动参数后面表示设置此进程为后台进程.(目前测试无效) 2.ps -ef | grep xxx ps:将某个进程显示出来 -A 显示所有 ...

  5. Codeforces 492B Name That Tune ( 期望DP )

    B. Name That Tune time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  6. Nacos-服务注册地址为内网IP的解决办法

    最近在使用Spring Cloud Alibaba这一套微服务解决方案,但是在服务注册的时候,网关死活找不到微服务地址,自己的微服务通过网关怎么也访问不到. 查找原因 仔细一查才发现,网关去访问了一个 ...

  7. Linux安装配置nfs实现共享远程目录

    1. 服务端安装nfs yum -y install nfs-utils rpcbind 2.编辑/etc/exports /etc/exports文件内容格式: <输出目录> [客户端1 ...

  8. DataX简介

    DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.Postgre.HDFS.Hive.ADS.HBase.TableStore(O ...

  9. html中代替空格、大于号、小于号等字符编码

    数字表示法的不方便之处,在于必须知道每个字符的码点,很难记忆.为了能够快速输入,HTML 为一些特殊字符,规定了容易记忆的名字,允许通过名字来表示它们,这称为实体表示法(entity). 实体的写法是 ...

  10. yum 仓库搭建与源码包安装实战

    目录 一.yum 仓库自建示例: 二.源码包安装实践 基础环境 服务端配置 下载及安装fpm软件 客户端: 一.yum 仓库自建示例: 1.安装ftp服务 yum -y install vsftpd ...