类的学习Java写查询星座小程序

以上是在控制台运行截图。

主程序demo.java

import java.util.Scanner;

public class demo {
    public static void main(String[] args) {
        System.out.println("输入想知道日期的月份和几号即可,退出请输入888");
        Scanner input = new Scanner(System.in);
        System.out.print("请输入月份:");
        int m = input.nextInt();
        System.out.print("请输入几号:");
        int d = input.nextInt();
        Star s = new Star(m, d); //输入值传入全参构造方法
        while (true) {           //循环以便多次查询
            System.out.println(m + "月" + d + "日>>" + s.starJudge() + "\n");
            System.out.print("请输入月份:");
            s.setMon(input.nextInt());  //Setter设置Star类中变量
            if (s.getMon() == 888) {    //退出条件
                break;
            }
            System.out.print("请输入几号:");
            s.setDay(input.nextInt());
            if (s.getDay() == 888) {
                break;
            }
            s.starJudge();              //调用类中判断星座方法
            m = s.getMon();             //Getter获取Star类中变量
            d = s.getDay();
        }
        System.out.println("已退出");
    }
}

Star类:

public class Star {
    private int mon;    //定义两个private私有变量,不能直接被其他类调用
    private int day;    //该变量也为成员变量
    public Star(int mon, int day) { //全参构造,内部变量为局部变量
        this.mon = mon; //this使用作用:区分方法中相同变量名,这里是当前类
        this.day = day; //否则就近原则使用方法中的day跟mon
    }

    public String starJudge() {  //判断星座
        if (mon == 3 && day >= 21 && day <= 31 || mon == 4 && day >= 1 && day <= 19) {
            return "白羊座";//1
        }else if (mon == 4 && day >= 20 && day <= 30 || mon == 5 && day >= 1 && day <= 20){
            return "金牛座";//2
        }else if (mon == 5 && day >= 21 && day <= 31 || mon == 6 && day >= 1 && day <= 20){
            return "双子座";//3
        }else if (mon == 6 && day >= 21 && day <= 30 || mon == 7 && day >= 1 && day <= 21){
            return "巨蟹座";//4
        }else if (mon == 7 && day >= 22 && day <= 31 || mon == 8 && day >= 1 && day <= 22){
            return "狮子座";//5
        }else if (mon == 8 && day >= 23 && day <= 31 || mon == 9 && day >= 1 && day <= 22){
            return "处女座";//6
        }else if (mon == 9 && day >= 23 && day <= 30 || mon == 10 && day >= 1 && day <= 22){
            return "天秤座";//7
        }else if (mon == 10 && day >= 23 && day <= 31 || mon == 11 && day >= 1 && day <= 21){
            return "天蝎座";//8
        }else if (mon == 11 && day >= 22 && day <= 30 || mon == 12 && day >= 1 && day <= 21){
            return "射手座";//9
        }else if (mon == 12 && day >= 22 && day <= 31 || mon == 1 && day >= 1 && day <= 19){
            return "金牛座";//10
        }else if (mon == 1 && day >= 20 && day <= 31 || mon == 2 && day >= 1 && day <= 18){
            return "水瓶座";//11
        }else if (mon == 2 && day >= 19 && day <= 29 || mon == 3 && day >= 1 && day <= 20){
            return "双鱼座";//12
        }
        else{
             return "可能不是一个有效日期";
        }
    }

    public int getMon() {           //一系列Getter/Setter方法
        return mon;
    }

    public void setMon(int mon) {
        this.mon = mon;
    }

    public int getDay() {
        return day;
    }

    public void setDay(int day) {
        this.day = day;
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值