题目:实现对数字的判断,要求若输入的数字为负数或小数都不能计算其平方根。计算方法通过throws将异常抛出。请自定义异常类:NoPositiveNumber(不是正数)和Decimal(小数)实现该程序。
package Project1;
class Decimal extends Exception{
public Decimal(String msg){
super(msg);
}
}
class NoPositiveNumber extends Exception {
public NoPositiveNumber(String msg){
super(msg);
}
}
public class Math{
public static int sqrt(int i)throws NoPositiveNumber{
if(i<0){
throw new NoPositiveNumber(“输入的”+i+”是负数”);
}
return Math.sqrt(i);
}
public static double sqrt(double i)throws Decimal{
throw new Decimal(“输入的:”+i+”是小数”);
}
public static void main(String[] args){
Math m=new Math();
try{
System.out.println("开方根:"+m.sqrt(-9));
}catch(NoPositiveNumber e){
e.printStackTrace();
}
try{
System.out.println("开方根:"+m.sqrt(3.6));
}catch(Decimal e){
e.printStackTrace();
}
}
}
2.创建自定义包MyPackage,在包中创建类Birthday类,用于计算该生日的年龄和星座。编写使用MyPackage包中Birthday类的程序。编写Person类:给定某人姓名与出生日期,计算该人年龄,并输出该人姓名、年龄、星座。
package MyPackage;
public class Birthday {
private int year,month,day;
public Birthday(int year,int month,int day){
this.year=year;
this.month=month;
this.day=day;
}
public int age(){
if(month<10&&day<=31){
return 2017-year;
}else{
return 2016-year;
}
}
public String constellation(){
if((this.month==3&this.day>=21)||(this.month==4&this.day<=20)){
return “Aries” ;
}else if((this.month==4&this.day>=21)||(this.month==5&this.day<=21)){
return “Taurus”;
}else if((this.month==5&this.day>=22)||(this.month==6&this.day<=21)){
return “Gemini”;
}else if((this.month==6&this.day>=22)||(this.month==7&this.day<=22)){
return “Cancer”;
}else if((this.month==7&this.day>=23)||(this.month==8&this.day<=22)){
return “Leo”;
}else if((this.month==8&this.day>=23)||(this.month==9&this.day<=22)){
return “Virgo”;
}else if((this.month==9&this.day>=23)||(this.month==10&this.day<=23)){
return “Libra”;
}else if((this.month==10&this.day>=24)||(this.month==11&this.day<=22)){
return “Scorpio”;
}else if((this.month==11&this.day>=23)||(this.month==12&this.day<=21)){
return “Sagittarius”;
}else if((this.month==12&this.day>=22)||(this.month==1&this.day<=20)){
return “Capricorn”;
}else if((this.month==1&this.day>=21)||(this.month==2&this.day<=19)){
return “Aquarius”;
}else if((this.month==2&this.day>=20)||(this.month==3&this.day<=20)){
return”Pisces”;
}else{
return “输入错误,找不到星座”;
}
}
}
package MyPackage;
import MyPackage.Birthday;
public class Person {
private String name;
private int year,month,day;
Birthday bir=new Birthday(year,month,day);
public Person(String name,Birthday b){
this.name=name;
this.bir=b;
}
public void print(){
package MyPackage;
import MyPackage.Birthday;
public class Person {
private String name;
private int year,month,day;
Birthday bir=new Birthday(year,month,day);
public Person(String name,Birthday b){
this.name=name;
this.bir=b;
}
public void print(){
System.out.println(“姓名:”+this.name+”\t年龄:”+bir.age()+”\t星座:”+bir.constellation());
}
public static void main(String[] args){
Birthday b=new Birthday(1959 ,9,28);
Person per=new Person(“二狗”,b);
per.print();
}
}