小白进击JAVA练习题(1)

题目:实现对数字的判断,要求若输入的数字为负数或小数都不能计算其平方根。计算方法通过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();

}

}
程序运行结果

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值