Star.java


Below is the syntax highlighted version of Star.java from §3.5 Inheritance.


 /*************************************************************************
 *  Compilation:  javac Star.java
 *
 *
 ******************************************************************************/

public class Star {
    private String name;
    private double x, y, z;
    private double magnitude;

    // create a new star with given parameters
    public Star(String name, double x, double y, double z, double magnitude) {
        this.name = name;
        this.x = x;
        this.y = y;
        this.z = z;
        this.magnitude = magnitude;
     }

    // draw the star
    public void draw() {
        StdDraw.filledCircle(x, y, .02/(magnitude + 2));
    }

    public String toString() {
        return name + "," + x + "," + y + "," + z + "," + magnitude;
    }

    public static void main(String[] args) {
        StdDraw.setXscale(-1, +1);
        StdDraw.setYscale(-1, +1);
        StdDraw.enableDoubleBuffering();

        Star a = new Star("CAS BETA", 0.512379, 0.020508, 0.858515, 2.28);
        Star b = new Star("ALGENIB",  0.963482, 0.055705, 0.261913, 2.83);
        while (!StdIn.isEmpty()) {
            String line = StdIn.readLine();
            String[] fields = line.split("\\s+");
            double x = Double.parseDouble(fields[0]);
            double y = Double.parseDouble(fields[1]);
            double z = Double.parseDouble(fields[2]);
            int draper = Integer.parseInt(fields[3]);
            double magnitude = Double.parseDouble(fields[4]);
            String name = fields[3];
            if (fields.length >= 9) name += "(" + fields[6] + "_" + fields[7] + "_" + fields[8] + ")";
            else if (fields.length >= 8) name += "(" + fields[6] + "_" + fields[7] + ")";
            else if (fields.length >= 7) name += "(" + fields[6] + ")";
//            if (fields.length >= 7) StdOut.println(name);
            Star star = new Star(name, x, y, z, magnitude);
if (magnitude <= 0) StdOut.println(star);
            star.draw();
            // StdOut.println(star);
        }
        StdDraw.show();
    }
}


Copyright © 2000–2022, Robert Sedgewick and Kevin Wayne.
Last updated: Thu Aug 11 10:27:11 EDT 2022.