Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Can anyone solve this for me using java programming? >>>>> A solar system consis

ID: 3588179 • Letter: C

Question

Can anyone solve this for me using java programming?

>>>>>

A solar system consists of a Sun (star) and planets. In support of solar system provide the following

1. Define a suitable class that represents solar system.

2. Specify what relation is preferred between solar system, sun and planets (inheritance, composition, aggregation or dependence)

3. Provide constructors, accessor and mutator methods in the class representing solar system

4. Override equals, clone and toString methods in the class representing solar system

5. Provide a driver to test implementation of solar system class

Explanation / Answer

Hi,
here are all the files,
2. The relation between solar system and sun is dependency, as solar system contains star objects with in them and same is the case with star and planets.
here is the star.java

import java.util.ArrayList;

import java.util.List;

public class Star {

private String name;

private List<Planet> planets= new ArrayList<>();

public String getName() {

return name;

}

public Star(String name, List<Planet> planets) {//constructor with fields

super();

this.name = name;

this.planets = planets;

}

@Override//overriding to string method

public String toString() {

return "Star [name=" + name + ", planets=" + planets + "]";

}

public void setName(String name) {

this.name = name;

}

public List<Planet> getPlanets() {

return planets;

}

public void setPlanets(List<Planet> planets) {

this.planets = planets;

}

}

here is planet.java

public class Planet {

private String name;

@Override//overriding to string method

public String toString() {

return "Planet [name=" + name + "]";

}

public Planet(String name) {//constructor with fields

super();

this.name = name;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

here is solarsystem.java

import java.util.ArrayList;

import java.util.List;

public class SolarSystem implements Cloneable {

private String name;

private List<Star> stars= new ArrayList<>();

@Override

protected SolarSystem clone() throws CloneNotSupportedException {

return (SolarSystem) super.clone();//overriding clone method

}

public SolarSystem(String name, List<Star> stars) {//constructor with fields

super();

this.name = name;

this.stars = stars;

}

@Override

public boolean equals(Object obj) {

// TODO Auto-generated method stub

return super.equals(obj);

}

@Override

public String toString() {

return super.toString();//overriding to string method

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public List<Star> getStars() {

return stars;

}

public void setStars(List<Star> stars) {

this.stars = stars;

}

}

here is the driver class

import java.util.ArrayList;

import java.util.List;

public class Driver {

public static void main(String[] args) {//driver method

Planet p1=new Planet("test 1");//creating new planet objects

Planet p2=new Planet("test 2");

Planet p3=new Planet("test 3");

Planet p4=new Planet("test 4");

List<Planet> planets= new ArrayList<>();

planets.add(p1);

planets.add(p2);

planets.add(p3);

planets.add(p4);

Star s=new Star("sun", planets);//creating new star object

List<Star> stars= new ArrayList<>();

SolarSystem solar=new SolarSystem("milky way",stars );//creating a new solar system

try {

SolarSystem solarcopy=solar.clone();

System.out.println(solarcopy.toString());//testing clone

System.out.println(solar.equals(solarcopy));//testing equals

} catch (CloneNotSupportedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println(solar.toString());//testing to string

}

}


I have added comments everywhere to help you understand.
Please thumbs up if this was helpful, otherwise let me know in comments