java基础第七天
2016-05-18 16:08
567 查看
1、利用白富美接口案例,土豪征婚使用匿名内部类对象实现
package com.cn;
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
RichMan r = new RichMan();
r.marry(new IWhite(){
public void white() {
System.out.println("haha");
}
});
}
}
interface IWhite {
public abstract void white();
}
interface IRich {
public void rich();
}
interface IBeauti {
public void beauti();
}
interface IWRB extends IWhite, IRich, IBeauti {
}
class RichMan {
public void marry(IWhite i) {
System.out.println("白好");
i.white();
}
public void marry(IRich i) {
System.out.println("富很好");
i.rich();
}
public void marry(IBeauti i) {
System.out.println("美非常好");
i.beauti();
}
public void marry(IWRB i) {
System.out.println("白富美最好不过");
i.white();
i.rich();
i.beauti();
}
}
2.定义三角形类Trianle,里面包含三个int类型属性,分别表示三条边的长度, 构造三角形对象时,任意两边之和是否大于第三边,如若不成立,抛出自定义异常。package com.cn;
public class Demo {
public static void main(String[] args) throws Exception {
Trianle t = new Trianle(1, 2, 3);
t.chech();
}
}
class myExcepton extends Exception {
String info;
public myExcepton(String info){
this.info = info;
}
}
class Trianle {
private int a;
private int b;
private int c;
public Trianle(int a,int b, int c){
this.a = a;
this.b = b;
this.c = c;
}
public void chech(int a,int b, int c) {
if (a + b < c || a + c < b || b + c < a) {
new myExcepton("bo bo ");
}
}
public void chech() throws Exception {
if (a + b < c || a + c < b || b + c < a) {
throw new myExcepton("bo bo ");
}
System.out.println("hao hao ");
}
}
3.Person类中增加birthday属性,对setBirthday(int ,int , int )方法进行异常处理, 要求年有效、月有效、日有效、年月日指定的具体日期有效,对不同情况分别抛出不同的异常。答:
public class Brithday {private String birthday;
public String getBirthday() {return birthday;}
public void setBirthday(int year, int month, int date)throws InvalidParamExcetion {
if (year < 1900 || year > 2016) {throw new InvalidParamExcetion("年份不合适,请传入1900年到2016年之间的年份");}
if (month <= 0 || month > 12) {throw new InvalidParamExcetion("月份不合适,不存在" + month + "月");}
if (date > 31 || date <= 0) {throw new InvalidParamExcetion("日期不合适,不存在" + date + "日");}boolean isThirdOne = date == 1 || date == 3 || date == 5 || date == 7|| date == 8 || date == 10 || date == 12;if (!isThirdOne && date == 31) {throw new InvalidParamExcetion("日期不合适," + month + "月不存在" + date+ "日");}if (month == 2 && date > 29) {throw new InvalidParamExcetion("日期不合适,2月不存在" + date + "日");}if (year % 4 != 0 && month == 2 && date == 29) {throw new InvalidParamExcetion("日期不合适," + year + "不是闰年,所以2月不存在"+ date + "日");}
System.out.println("生日为:" + year + "年" + month + "月 " + date + "日 ");}
public static void main(String[] args) throws InvalidParamExcetion {Brithday person = new Brithday();try {person.setBirthday(2015, 12, 5);person.setBirthday(2016, 2, 29);person.setBirthday(2015, 2, 29);
person.setBirthday(2015, 3, 5);} catch (InvalidParamExcetion e) {}
}
}
class InvalidParamExcetion extends Exception {
public InvalidParamExcetion(String msg) {super(msg);System.out.println(msg);}
}
package com.cn;
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
RichMan r = new RichMan();
r.marry(new IWhite(){
public void white() {
System.out.println("haha");
}
});
}
}
interface IWhite {
public abstract void white();
}
interface IRich {
public void rich();
}
interface IBeauti {
public void beauti();
}
interface IWRB extends IWhite, IRich, IBeauti {
}
class RichMan {
public void marry(IWhite i) {
System.out.println("白好");
i.white();
}
public void marry(IRich i) {
System.out.println("富很好");
i.rich();
}
public void marry(IBeauti i) {
System.out.println("美非常好");
i.beauti();
}
public void marry(IWRB i) {
System.out.println("白富美最好不过");
i.white();
i.rich();
i.beauti();
}
}
2.定义三角形类Trianle,里面包含三个int类型属性,分别表示三条边的长度, 构造三角形对象时,任意两边之和是否大于第三边,如若不成立,抛出自定义异常。package com.cn;
public class Demo {
public static void main(String[] args) throws Exception {
Trianle t = new Trianle(1, 2, 3);
t.chech();
}
}
class myExcepton extends Exception {
String info;
public myExcepton(String info){
this.info = info;
}
}
class Trianle {
private int a;
private int b;
private int c;
public Trianle(int a,int b, int c){
this.a = a;
this.b = b;
this.c = c;
}
public void chech(int a,int b, int c) {
if (a + b < c || a + c < b || b + c < a) {
new myExcepton("bo bo ");
}
}
public void chech() throws Exception {
if (a + b < c || a + c < b || b + c < a) {
throw new myExcepton("bo bo ");
}
System.out.println("hao hao ");
}
}
3.Person类中增加birthday属性,对setBirthday(int ,int , int )方法进行异常处理, 要求年有效、月有效、日有效、年月日指定的具体日期有效,对不同情况分别抛出不同的异常。答:
public class Brithday {private String birthday;
public String getBirthday() {return birthday;}
public void setBirthday(int year, int month, int date)throws InvalidParamExcetion {
if (year < 1900 || year > 2016) {throw new InvalidParamExcetion("年份不合适,请传入1900年到2016年之间的年份");}
if (month <= 0 || month > 12) {throw new InvalidParamExcetion("月份不合适,不存在" + month + "月");}
if (date > 31 || date <= 0) {throw new InvalidParamExcetion("日期不合适,不存在" + date + "日");}boolean isThirdOne = date == 1 || date == 3 || date == 5 || date == 7|| date == 8 || date == 10 || date == 12;if (!isThirdOne && date == 31) {throw new InvalidParamExcetion("日期不合适," + month + "月不存在" + date+ "日");}if (month == 2 && date > 29) {throw new InvalidParamExcetion("日期不合适,2月不存在" + date + "日");}if (year % 4 != 0 && month == 2 && date == 29) {throw new InvalidParamExcetion("日期不合适," + year + "不是闰年,所以2月不存在"+ date + "日");}
System.out.println("生日为:" + year + "年" + month + "月 " + date + "日 ");}
public static void main(String[] args) throws InvalidParamExcetion {Brithday person = new Brithday();try {person.setBirthday(2015, 12, 5);person.setBirthday(2016, 2, 29);person.setBirthday(2015, 2, 29);
person.setBirthday(2015, 3, 5);} catch (InvalidParamExcetion e) {}
}
}
class InvalidParamExcetion extends Exception {
public InvalidParamExcetion(String msg) {super(msg);System.out.println(msg);}
}
相关文章推荐
- Java基础知识
- java基础(一)
- 怎样学习java,漫谈java学习之路
- 设置jdk环境变量时lib中的rt.jar ,dt.jar ,tool.jar是什么,作用是什么
- Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
- 学习日志---treemap
- java基础知识笔记
- java中web应用中重定向与转发的区别
- java基础篇---枚举详解
- java基础数据类型包装类
- equals与null
- java基础第三天_数组
- java基础第五天_静态代码块、类的继承和接口
- 作业_java基础第七天_匿名内部类、异常、包和jar
- 【Java基础】Java入门程序&基础数据类型(转换)&逻辑判断&运算等
- Java.基础(学习笔记)
- 一个简单的加密解密程序
- 20160411--相等测试与继承
- 【代码练习】用FIle.list()打印多级目录
- 【学习日记】有关java的IO的知识点总结