以上是在控制台运行截图。
主程序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;
}
}