Java期末作品设计(2)——十二星系

以天空之城为主题背景的期末作品设计,在天马行空中现在又新增入十二星系。在星系中会把银河系去展开来写,逐步向星城靠近。跟十二星座的设计是基本一样的。

十二星系的对象类实现,直接在星星类存放初始化变量。

package StarCitySystem2_0_.DataCenter;

/**
 * YicStudio
 *
 * @ClassName类名: stars_Data
 * @Description描述: 星空中的星类数据
 * @author编程者: 一冲子
 * @date日期: 2022/12/14 23:28
 * @Blog小猴子: https://blog.csdn.net/YIC020920/
 * @Blog博客园: https://www.cnblogs.com/YICHONG-777/
 */
public class stars_Data {
    /** 编号 */
    private static int id;
    /** 名称 */
    private static String name;
    /** 经度 */
    private String latitude;
    /** 纬度 */
    private String longitude;
    /** 视径 */
    private double visualPath;
    /** 光度 */
    private static double luminosity;
    /** 距离 */
    private static double distance;
    /** 星系 */
    private static String galaxy;
    /** 恒星数 */
    private String numberOfStars;
    /** 质量 */
    private double quality;
    /** 转速 */
    private double rotateSpeed;

    public stars_Data(int id, String name, String latitude, String longitude, double visualPath, double luminosity, double distance, String galaxy) {
        stars_Data.id = id;
        stars_Data.name = name;
        this.latitude = latitude;
        this.longitude = longitude;
        this.visualPath = visualPath;
        stars_Data.luminosity = luminosity;
        stars_Data.distance = distance;
        stars_Data.galaxy = galaxy;
    }

    public stars_Data(int id, String name, double visualPath, double luminosity, double distance, String galaxy) {
        stars_Data.id = id;
        stars_Data.name = name;
        this.visualPath = visualPath;
        stars_Data.luminosity = luminosity;
        stars_Data.distance = distance;
        stars_Data.galaxy = galaxy;
    }

    public stars_Data() {

    }

    public String getNumberOfStars() {
        return numberOfStars;
    }

    public void setNumberOfStars(String numberOfStars) {
        this.numberOfStars = numberOfStars;
    }

    public double getQuality() {
        return quality;
    }

    public void setQuality(double quality) {
        this.quality = quality;
    }

    public double getRotateSpeed() {
        return rotateSpeed;
    }

    public void setRotateSpeed(double rotateSpeed) {
        this.rotateSpeed = rotateSpeed;
    }

    public static int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public static String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public double getVisualPath() {
        return visualPath;
    }

    public void setVisualPath(double visualPath) {
        this.visualPath = visualPath;
    }

    public static double getLuminosity() {
        return luminosity;
    }

    public void setLuminosity(double luminosity) {
        this.luminosity = luminosity;
    }

    public static double getDistance() {
        return distance;
    }

    public void setDistance(double distance) {
        this.distance = distance;
    }

    public static String getGalaxy() {
        return galaxy;
    }

    public void setGalaxy(String galaxy) {
        this.galaxy = galaxy;
    }
}

介绍的接口里新增了一个默认方法,用来介绍十二星系的星系简单描述,同样的方法实现了十二遍的重载。

package StarCitySystem2_0_.InterfaceHub;

/**
 * @introduce 翻译:介绍
 */
public interface introduce {
    /** 介绍十二星座的接口 */
    default void introducingTheConstellations(){

    }
    /** 介绍十二大星系 */
    default void introducingGalaxies(){

    }
}

这里有三个构造器还没有被使用,可能后面会用到,所以就保留下来了。 实现十二遍重载的过程:

package StarCitySystem2_0_.PlanetClass;

/**
 * YicStudio
 *
 * @ClassName类名: galaxy
 * @Description描述: 星系介绍与存储
 * @author编程者: 一冲子
 * @date日期: 2022/12/15 1:14
 * @Blog小猴子: https://blog.csdn.net/YIC020920/
 * @Blog博客园: https://www.cnblogs.com/YICHONG-777/
 */

import StarCitySystem2_0_.DataCenter.stars_Data;
import StarCitySystem2_0_.DataCenter.zodiacSigns_Data;
import StarCitySystem2_0_.InterfaceHub.introduce;

/** galaxy星系 */
public class galaxy extends stars_Data {
    public galaxy(int id, String name, String latitude, String longitude, double visualPath, double luminosity, double distance, String galaxy) {
        super(id, name, latitude, longitude, visualPath, luminosity, distance, galaxy);
    }

    public galaxy(int id, String name, double visualPath, double luminosity, double distance, String galaxy) {
        super(id, name, visualPath, luminosity, distance, galaxy);
    }

    public galaxy() {

    }

    /** 梅西m102 */
    public static class messiM102  implements introduce {
        @Override
        public void introducingGalaxies() {
            stars_Data galaxy01 = new galaxy();
            galaxy01.setId(101);
            galaxy01.setName("梅西m102");
            galaxy01.setGalaxy("风车星系");
            System.out.println("星系:"+getGalaxy()+",名称:"+getName());
        }
    }

    /** 银河系 */
    public static class milkyWayGalaxy implements introduce{
        @Override
        public void introducingGalaxies() {
            stars_Data galaxy02 = new galaxy();
            galaxy02.setName("银河系");
            galaxy02.setGalaxy("棒旋星系");
            /** 质量 */
            galaxy02.setQuality(2*Math.pow(10,12));
            /** 恒星数 */
            galaxy02.setNumberOfStars("2.5×10^11±1.5×10^11");
            System.out.println("星系:"+getGalaxy()+",名称:"+getName());
        }
    }

    /** NGC6240 */
    public static class NGC6240 implements introduce{
        @Override
        public void introducingGalaxies() {
            stars_Data galaxy03 = new galaxy();
            galaxy03.setId(6240);
            galaxy03.setName("NGC6240");
            galaxy03.setGalaxy("蛇夫座内的极亮红外星系");
            System.out.println("星系:"+getGalaxy()+",名称:"+getName());
        }
    }

    /** 霍格天体 */
    public static class hoggObjects implements introduce{
        @Override
        public void introducingGalaxies() {
            stars_Data galaxy04 = new galaxy();
            galaxy04.setName("霍格天体");
            galaxy04.setGalaxy("环状星系");
            System.out.println("星系:"+getGalaxy()+",名称:"+getName());
        }
    }

    /** NGC 1512 */
    public static class NGC1512 extends zodiacSigns_Data implements introduce{
        @Override
        public void introducingGalaxies() {
            stars_Data galaxy = new galaxy();
            zodiacSigns_Data galaxy05 = new zodiacSigns_Data();
            galaxy.setId(1512);
            galaxy.setName("NGC 1512");
            galaxy.setGalaxy("棒旋星系");
            galaxy05.setConstellation("时钟座");
            System.out.println("编号:"+getId()+",星系:"+getGalaxy()+",名称:"+getName()+",所在星座:"+getConstellation());
        }
    }

    /** NGC3738矮星系 */
    public static class NGC3738DwarfGalaxy extends zodiacSigns_Data implements introduce{
        @Override
        public void introducingGalaxies() {
            stars_Data galaxy = new galaxy();
            zodiacSigns_Data galaxy06 = new zodiacSigns_Data();
            galaxy.setId(3738);
            galaxy.setName("NGC3738矮星系");
            galaxy.setGalaxy("星暴星系");
            galaxy06.setConstellation("大熊座");
            System.out.println("编号:"+getId()+",星系:"+getGalaxy()+",名称:"+getName()+",所在星座:"+getConstellation());
        }
    }

    /** 波德星系 */
    public static class bodeGalaxy extends zodiacSigns_Data implements introduce{
        @Override
        public void introducingGalaxies() {
            stars_Data galaxy = new galaxy();
            galaxy.setId(3031);
            galaxy.setName("波德星系");
            galaxy.setGalaxy("Sb型漩涡星系");
            galaxy.setLuminosity(6.8);
            System.out.println("编号:"+getId()+",星系:"+getGalaxy()+",名称:"+getName()+",光度:"+getLuminosity());
        }
    }
    /** NGC3034不规则星系 */
    public static class irregularGalaxy extends zodiacSigns_Data implements introduce{
        @Override
        public void introducingGalaxies() {
            stars_Data g = new galaxy();
            g.setId(3034);
            g.setName("NGC3034不规则星系");
            g.setGalaxy("大熊座的星系");
            g.setDistance(1400*Math.pow(10,4));
            System.out.println("编号:"+getId()+",星系:"+getGalaxy()+",名称:"+getName()+",距离地球:"+getDistance()+"光年");
        }
    }
    /** 黑眼星系 */
    public static class blackEyedGalaxies extends zodiacSigns_Data implements introduce{
        public void introducingGalaxies() {
            stars_Data g = new galaxy();
            g.setId(4826);
            g.setName("黑眼星系");
            g.setGalaxy("睡美人星系");
            g.setDistance(17*Math.pow(10,6));
            System.out.println("编号:"+getId()+",星系:"+getGalaxy()+",名称:"+getName()+",距离地球:"+getDistance()+"光年");
        }
    }
    /** 小麦哲伦星云 */
    public static class theSmallMagellanicCloud extends zodiacSigns_Data implements introduce{
        public void introducingGalaxies() {
            stars_Data g = new galaxy();
            g.setId(3034);
            g.setName("小麦哲伦星云");
            g.setGalaxy("银河系卫星星系");
            g.setDistance(201*Math.pow(10,3));
            System.out.println("编号:"+getId()+",星系:"+getGalaxy()+",名称:"+getName()+",距离地球:"+getDistance()+"光年");
        }
    }
    /** 仙女星系 */
    public static class andromedaGalaxy extends zodiacSigns_Data implements introduce{
        public void introducingGalaxies() {
            stars_Data g = new galaxy();
            g.setId(224454);
            g.setName("仙女座大星系");
            g.setGalaxy("旋涡星系");
            g.setDistance(2.65*Math.pow(10,6));
            System.out.println("编号:"+getId()+",星系:"+getGalaxy()+",名称:"+getName()+",距离地球:"+getDistance()+"光年");
        }
    }
    /** NGC 4013 */
    public static class NGC4013 extends zodiacSigns_Data implements introduce{
        public void introducingGalaxies() {
            stars_Data g = new galaxy();
            g.setId(4013);
            g.setName("NGC 4013");
            g.setGalaxy("螺旋星系");
            g.setDistance(59148459.09);
            System.out.println("编号:"+getId()+",星系:"+getGalaxy()+",名称:"+getName()+",距离地球:"+getDistance()+"光年");
        }
    }
}

 从星系类中获取到信息,就交给星空执行中心进行调用:

package StarCitySystem2_0_.MethodExecutionCenter;

import StarCitySystem2_0_.PlanetClass.galaxy;

import java.util.Scanner;

/**
 * YicStudio
 *
 * @ClassName类名: introducingGalaxies
 * @Description描述: 用来选择星系,简单介绍星系
 * @author编程者: 一冲子
 * @date日期: 2022/12/15 10:40
 * @Blog小猴子: https://blog.csdn.net/YIC020920/
 * @Blog博客园: https://www.cnblogs.com/YICHONG-777/
 */
public class introducingGalaxies {
    public void viewGalaxies(){
        galaxy.messiM102 messiM102 = new galaxy.messiM102();
        galaxy.milkyWayGalaxy milkyWayGalaxy = new galaxy.milkyWayGalaxy();
        galaxy.NGC6240 NGC6240 = new galaxy.NGC6240();
        galaxy.hoggObjects hoggObjects = new galaxy.hoggObjects();
        galaxy.NGC1512 NGC1512 = new galaxy.NGC1512();
        galaxy.NGC3738DwarfGalaxy NGC3738DwarfGalaxy = new galaxy.NGC3738DwarfGalaxy();
        galaxy.bodeGalaxy bodeGalaxy = new galaxy.bodeGalaxy();
        galaxy.irregularGalaxy irregularGalaxy = new galaxy.irregularGalaxy();
        galaxy.blackEyedGalaxies blackEyedGalaxies = new galaxy.blackEyedGalaxies();
        galaxy.theSmallMagellanicCloud theSmallMagellanicCloud = new galaxy.theSmallMagellanicCloud();
        galaxy.andromedaGalaxy andromedaGalaxy = new galaxy.andromedaGalaxy();
        galaxy.NGC4013 NGC4013 = new galaxy.NGC4013();

        Scanner sc1 = new Scanner(System.in);
        while (true){
            System.out.println("欢迎来到星系管理中心~\n以下是十二星系的编号,请根据编号选择查看各星系的简介~");
            System.out.println("1、梅西m102星系\t2、银河系\t3、NGC6240星系\t4、霍格天体\n" +
                    "5、NGC1512星系\t6、NGC3738矮星系\t7、波德星系\t8、NGC3034不规则星系\n" +
                    "9、黑眼星系\t10、小麦哲伦星云\t11、仙女星系\t12、NGC4013星系");
            System.out.println("请输入序号:(按0退出哦!)");
            String i = sc1.next();
            if ("1".equals(i)) {
                messiM102.introducingGalaxies();
            } else if ("2".equals(i)) {
                milkyWayGalaxy.introducingGalaxies();
            } else if ("3".equals(i)) {
                NGC6240.introducingGalaxies();
            } else if ("4".equals(i)) {
                hoggObjects.introducingGalaxies();
            } else if ("5".equals(i)) {
                NGC1512.introducingGalaxies();
            } else if ("6".equals(i)) {
                NGC3738DwarfGalaxy.introducingGalaxies();
            } else if ("7".equals(i)) {
                bodeGalaxy.introducingGalaxies();
            } else if ("8".equals(i)) {
                irregularGalaxy.introducingGalaxies();
            } else if ("9".equals(i)) {
                blackEyedGalaxies.introducingGalaxies();
            } else if ("10".equals(i)) {
                theSmallMagellanicCloud.introducingGalaxies();
            } else if ("11".equals(i)) {
                andromedaGalaxy.introducingGalaxies();
            } else if ("12".equals(i)) {
                NGC4013.introducingGalaxies();
            } else if ("0".equals(i)){
                System.out.println("感谢光临十二星系,下次见!");
                break;
            } else {
                System.out.println("调皮,又随便按啦!");
                continue;
            }
        }
    }
}

 主方法的实现与十二星座是一模一样的。

 

感谢观看!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值