[1725989] | 1 | import java.io.*; |
---|
| 2 | |
---|
| 3 | public class testP1 { |
---|
| 4 | public enum Planet { |
---|
| 5 | // mass radius |
---|
| 6 | MERCURY ( 3.303E23, 2.4397E6 ), |
---|
| 7 | VENUS ( 4.869E24, 6.0518E6 ), |
---|
| 8 | EARTH ( 5.976E24, 6.37814E6 ), |
---|
| 9 | MARS ( 6.421E23, 3.3972E6 ), |
---|
| 10 | JUPITER ( 1.9E27, 7.1492E7 ), |
---|
| 11 | SATURN ( 5.688E26, 6.0268E7 ), |
---|
| 12 | URANUS ( 8.686E25, 2.5559E7 ), |
---|
| 13 | NEPTUNE ( 1.024E26, 2.4746E7 ); |
---|
| 14 | |
---|
| 15 | private final double mass; // in kilograms |
---|
| 16 | private final double radius; // in meters |
---|
| 17 | |
---|
| 18 | Planet( double mass, double radius ) { |
---|
| 19 | this.mass = mass; |
---|
| 20 | this.radius = radius; |
---|
| 21 | } |
---|
| 22 | private double mass() { return mass; } |
---|
| 23 | private double radius() { return radius; } |
---|
| 24 | |
---|
| 25 | // universal gravitational constant (m3 kg-1 s-2) |
---|
| 26 | public static final double G = 6.67300E-11; |
---|
| 27 | |
---|
| 28 | double surfaceGravity() { |
---|
| 29 | return G * mass / ( radius * radius ); |
---|
| 30 | } |
---|
| 31 | double surfaceWeight( double otherMass ) { |
---|
| 32 | return otherMass * surfaceGravity(); |
---|
| 33 | } |
---|
| 34 | } |
---|
| 35 | public static void main( String[] args ) { |
---|
| 36 | if ( args.length != 1 ) { |
---|
| 37 | System.err.println( "Usage: java Planet <earth_weight>" ); |
---|
| 38 | System.exit( -1 ); |
---|
| 39 | } |
---|
| 40 | double earthWeight = Double.parseDouble( args[0] ); |
---|
| 41 | double mass = earthWeight / Planet.EARTH.surfaceGravity(); |
---|
| 42 | for ( Planet p : Planet.values() ) |
---|
| 43 | System.out.printf( "Your weight on %s is %f%n", p, p.surfaceWeight( mass ) ); |
---|
| 44 | } |
---|
| 45 | } |
---|
| 46 | |
---|
| 47 | // java test |
---|