以天空之城为主题背景的期末作品设计,在天马行空中现在又新增入十二星系。在星系中会把银河系去展开来写,逐步向星城靠近。跟十二星座的设计是基本一样的。
十二星系的对象类实现,直接在星星类存放初始化变量。
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;
}
}
}
}
主方法的实现与十二星座是一模一样的。
感谢观看!