/*
Program Name: HeavenlyObjectTest.java
Author: Ameem Rahman
Date: Apr. 16, 2024 8:31:20 p.m.
Description:
*/
public class HeavenlyObjectTest {
public static void main(String[] args) {
// Create objects
Planet planet1 = new Planet(3327.87);
Planet planet2 = new Planet("Mala Venus", 5298.72, true);
Moon moon1 = new Moon(5432.57, 77698.8);
Moon moon2 = new Moon("Cantar", 2589.44, 9633.67);
// Print initial objects
System.out
.println
("Planet One\n**********"); System.out
.println
("Radius: " + planet1
.getRadius
()); System.out
.println
("\nPlanet Two\n**********"); System.out
.println
("Name: " + planet2
.getName
()); System.out
.println
("Radius: " + planet2
.getRadius
()); System.out
.println
("Life Supporting: " + planet2
.isSupportLife
()); System.out
.println
("\nMoon One\n************"); System.out
.println
("Radius: " + moon1
.getRadius
()); System.out
.println
("Orbit Distance: " + moon1
.getOrbitDistance
()); System.out
.println
("\nMoon Two\n************"); System.out
.println
("Name: " + moon2
.getName
()); System.out
.println
("Radius: " + moon2
.getRadius
()); System.out
.println
("Orbit Distance: " + moon2
.getOrbitDistance
());
// Change name of planet1 to "Oberon"
planet1.setName("Oberon");
System.out
.println
("\nChanged name of planet1 to Oberon"); System.out
.println
("New name: " + planet1
.getName
());
// Change orbit of moon2 to 4564.5 km
moon2.setOrbitDistance(4564.5);
System.out
.println
("\nChanged orbit of moon2 to 4564.5 km"); System.out
.println
("New orbit distance: " + moon2
.getOrbitDistance
());
// Demonstrate polymorphic behavior
HeavenlyObject[] heavenlyArray = {planet1, planet2, moon1, moon2};
System.out
.println
("\nHeavenly Body Observatory\n*************************"); for (HeavenlyObject heavenlyObject : heavenlyArray) {
System.out
.println
(heavenlyObject
); System.out
.println
("The perimeter is: " + heavenlyObject
.findPerimeter
()); System.out
.println
("The surface area is: " + heavenlyObject
.findSurfaceArea
() + "\n"); }
}
}
LyoKUHJvZ3JhbSBOYW1lOiBIZWF2ZW5seU9iamVjdFRlc3QuamF2YQoJICBBdXRob3I6IEFtZWVtIFJhaG1hbgogICAgICAgIERhdGU6IEFwci4gMTYsIDIwMjQgODozMToyMCBwLm0uCiBEZXNjcmlwdGlvbjogCgogKi8KCnB1YmxpYyBjbGFzcyBIZWF2ZW5seU9iamVjdFRlc3QgewoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICAvLyBDcmVhdGUgb2JqZWN0cwogICAgICAgIFBsYW5ldCBwbGFuZXQxID0gbmV3IFBsYW5ldCgzMzI3Ljg3KTsKICAgICAgICBQbGFuZXQgcGxhbmV0MiA9IG5ldyBQbGFuZXQoIk1hbGEgVmVudXMiLCA1Mjk4LjcyLCB0cnVlKTsKICAgICAgICBNb29uIG1vb24xID0gbmV3IE1vb24oNTQzMi41NywgNzc2OTguOCk7CiAgICAgICAgTW9vbiBtb29uMiA9IG5ldyBNb29uKCJDYW50YXIiLCAyNTg5LjQ0LCA5NjMzLjY3KTsKCiAgICAgICAgLy8gUHJpbnQgaW5pdGlhbCBvYmplY3RzCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQbGFuZXQgT25lXG4qKioqKioqKioqIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSYWRpdXM6ICIgKyBwbGFuZXQxLmdldFJhZGl1cygpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuUGxhbmV0IFR3b1xuKioqKioqKioqKiIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTmFtZTogIiArIHBsYW5ldDIuZ2V0TmFtZSgpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJhZGl1czogIiArIHBsYW5ldDIuZ2V0UmFkaXVzKCkpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTGlmZSBTdXBwb3J0aW5nOiAiICsgcGxhbmV0Mi5pc1N1cHBvcnRMaWZlKCkpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5Nb29uIE9uZVxuKioqKioqKioqKioqIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSYWRpdXM6ICIgKyBtb29uMS5nZXRSYWRpdXMoKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPcmJpdCBEaXN0YW5jZTogIiArIG1vb24xLmdldE9yYml0RGlzdGFuY2UoKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbk1vb24gVHdvXG4qKioqKioqKioqKioiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk5hbWU6ICIgKyBtb29uMi5nZXROYW1lKCkpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmFkaXVzOiAiICsgbW9vbjIuZ2V0UmFkaXVzKCkpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiT3JiaXQgRGlzdGFuY2U6ICIgKyBtb29uMi5nZXRPcmJpdERpc3RhbmNlKCkpOwoKICAgICAgICAvLyBDaGFuZ2UgbmFtZSBvZiBwbGFuZXQxIHRvICJPYmVyb24iCiAgICAgICAgcGxhbmV0MS5zZXROYW1lKCJPYmVyb24iKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuQ2hhbmdlZCBuYW1lIG9mIHBsYW5ldDEgdG8gT2Jlcm9uIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOZXcgbmFtZTogIiArIHBsYW5ldDEuZ2V0TmFtZSgpKTsKCiAgICAgICAgLy8gQ2hhbmdlIG9yYml0IG9mIG1vb24yIHRvIDQ1NjQuNSBrbQogICAgICAgIG1vb24yLnNldE9yYml0RGlzdGFuY2UoNDU2NC41KTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuQ2hhbmdlZCBvcmJpdCBvZiBtb29uMiB0byA0NTY0LjUga20iKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk5ldyBvcmJpdCBkaXN0YW5jZTogIiArIG1vb24yLmdldE9yYml0RGlzdGFuY2UoKSk7CgogICAgICAgIC8vIERlbW9uc3RyYXRlIHBvbHltb3JwaGljIGJlaGF2aW9yCiAgICAgICAgSGVhdmVubHlPYmplY3RbXSBoZWF2ZW5seUFycmF5ID0ge3BsYW5ldDEsIHBsYW5ldDIsIG1vb24xLCBtb29uMn07CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbkhlYXZlbmx5IEJvZHkgT2JzZXJ2YXRvcnlcbioqKioqKioqKioqKioqKioqKioqKioqKioiKTsKICAgICAgICBmb3IgKEhlYXZlbmx5T2JqZWN0IGhlYXZlbmx5T2JqZWN0IDogaGVhdmVubHlBcnJheSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaGVhdmVubHlPYmplY3QpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBwZXJpbWV0ZXIgaXM6ICIgKyBoZWF2ZW5seU9iamVjdC5maW5kUGVyaW1ldGVyKCkpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBzdXJmYWNlIGFyZWEgaXM6ICIgKyBoZWF2ZW5seU9iamVjdC5maW5kU3VyZmFjZUFyZWEoKSArICJcbiIpOwogICAgICAgIH0KICAgIH0KfQoK
/*
Program Name: HeavenlyObjectTest.java
Author: Ameem Rahman
Date: Apr. 16, 2024 8:31:20 p.m.
Description:
*/
public class HeavenlyObjectTest {
public static void main(String[] args) {
// Create objects
Planet planet1 = new Planet(3327.87);
Planet planet2 = new Planet("Mala Venus", 5298.72, true);
Moon moon1 = new Moon(5432.57, 77698.8);
Moon moon2 = new Moon("Cantar", 2589.44, 9633.67);
// Print initial objects
System.out.println("Planet One\n**********");
System.out.println("Radius: " + planet1.getRadius());
System.out.println("\nPlanet Two\n**********");
System.out.println("Name: " + planet2.getName());
System.out.println("Radius: " + planet2.getRadius());
System.out.println("Life Supporting: " + planet2.isSupportLife());
System.out.println("\nMoon One\n************");
System.out.println("Radius: " + moon1.getRadius());
System.out.println("Orbit Distance: " + moon1.getOrbitDistance());
System.out.println("\nMoon Two\n************");
System.out.println("Name: " + moon2.getName());
System.out.println("Radius: " + moon2.getRadius());
System.out.println("Orbit Distance: " + moon2.getOrbitDistance());
// Change name of planet1 to "Oberon"
planet1.setName("Oberon");
System.out.println("\nChanged name of planet1 to Oberon");
System.out.println("New name: " + planet1.getName());
// Change orbit of moon2 to 4564.5 km
moon2.setOrbitDistance(4564.5);
System.out.println("\nChanged orbit of moon2 to 4564.5 km");
System.out.println("New orbit distance: " + moon2.getOrbitDistance());
// Demonstrate polymorphic behavior
HeavenlyObject[] heavenlyArray = {planet1, planet2, moon1, moon2};
System.out.println("\nHeavenly Body Observatory\n*************************");
for (HeavenlyObject heavenlyObject : heavenlyArray) {
System.out.println(heavenlyObject);
System.out.println("The perimeter is: " + heavenlyObject.findPerimeter());
System.out.println("The surface area is: " + heavenlyObject.findSurfaceArea() + "\n");
}
}
}