Please see the attached file.
? Construct and use Objects
? Design the public interface of a class
? Determine the instance variables necessary for a class
? Implement stubs with comments
? Implement constructors
? Implement simple methods using conditionals
? Access instance fields and local variables
The project folder should include the following files:
? the public interface as a text or Word file
Write a program to construct and manipulate Length objects that can handle any of the following units: meters, inches, feet, yards, miles. In addition to modifying the methods, you will include methods for returning the number of meters, for adding two Length objects, and testing whether two Length objects are approximately equal.
Writing the New and Improved Length Class
The following constants should be included in the Length class before the instance fields. These constants should be used by your methods. Do not use the numbers in your methods instead of the named constants.
public static final double INCHES_PER_YARD = 36;
public static final double FEET_PER_YARD = 3;
public static final double METERS_PER_YARD = 0.9144;
public static final double YARDS_PER_MILE = 1760;
public static final double EPSILON = 0.000001;
myNumber - a double value representing the number of the measurement
myUnit - a String value representing the unit of the measurement
/* The constructor has two parameters: */
/* the number and the unit of the measurement. */
public Length(double number, String unit)
Methods:Three methods will be added, and the behavior of some methods will be changed.
The following methods should be added. The comments contain some hints.
/* getMeters returns the length in meters.
This should be implemented to calculate the appropriate conversion
based on the value of myUnit, e.g.,
if ( myUnit.equals("yards") )
meters = myNumber * METERS_PER_YARD;
If myUnit cannot be recognized, assume the unit is meters.
public double getMeters( )
/* add returns a Length that is the sum of two Lengths, e.g.,
if length1 and length2 are two Length objects, then
length1.add(length2) will return a new Length object.
This can be implemented by using the getMeters method,
e.g., this.getMeters() + other.getMeters(), then returning
new Length(sum, "meters")
public Length add(Length other)
/* aboutEqual returns true if the two lengths are within EPSILON
meters of each other.
First, get this.getMeters() and other.getMeters(). Then, return
true if they are close to each other (within EPSILON).
public boolean aboutEqual(Length other)
The getInches, getFeet, getYards, and getMiles methods should be modified. First get the value of the getMeters method, e.g., this.getMeters(), then convert the number of meters to the desired unit using the named constants, and finally return that value.
Testing your Length class:
1. Ask the user to enter a number as a double from the keyboard. Store the response in number2.
2. Ask the user to enter a unit as a String from the keyboard. Store the response in unit2.
3. If unit2 is not "meters", "inches", "feet", "yards", or "miles", then print a warning message and set unit2 to "meters".
4. Instantiate a Length object named length2 using the input from above, and print length2 using the toString method. Be sure to use a descriptive label.
5. Print the values from calling length2 with the getMeters, getInches, getFeet, getYards, and getMiles methods. Be sure to use descriptive labels.
6. Ask the user to enter another number and another unit from the keyboard. Store the responses in number3 and unit3.
7. If unit3 is not "meters", "inches", "feet", "yards", or "miles", then print a warning message and set unit2 to "meters".
8. Instantiate a Length object named length3 using the input from above, and print length3 using the toString method. Be sure to use a descriptive label.
9. Determine whether length2 is about equal to length3, and assign the result to a boolean variable. Print different messages depending on the value of the variable.
10. Assign the result of adding length2 and length3 to length4, and print length4 using the toString method. Be sure to use a descriptive label.
This solution provides a Java class that converts between various length units (meters, feet, miles, etc.). A test program is included.
Vector class in Java
Create a Vector class implementing a number of vector operations as methods along with a testing program to verify the class is working.
1. Create a Vector class incorporating the following features:
a. a constructor taking an array of doubles as an argument
b. a toString method returning proper vector notation, e.g < 1.0, -1.0, 0.0, 2.0 >
c. a method to return the size (number of components) of a vector
d. a method to return the norm of a vector
e. a method unitize that will return a unit vector for a given vector
f. a method scale for computing the product of a scalar and a vector
g. a method add for adding two vectors
h. a method dot for computing the dot product of two vectors
i. a method cross for computing the cross product of two vectors (you can assume the vectors passed to the cross produce method have size 3, ie < i, j, k >
j. some of the methods should be static methods
k. the class should properly handle vectors of different sizes
l. methods working with two vectors should check that the input vectors meet the requirements of the operation and if not should return the vector < -0.0001 > for methods returning vectors or -.0001 for methods returning scalars to indicate this failure
2. Create a separate class, VectorTest, that will demonstrate the use of your Vector class. You must create at least two vectors, and demonstrate the use of each method. When you demonstrate the use of each method, print the results to the console in a manner where the values of the vectors are clear, and the method you called as well as its results are clear.
a. Example output: (this does not illustrate the use of all the methods, your VectorTest class should illustrate the use of all of the methods described above).
myVector1 is: <1.0,2.0,3.0>
myVector2 is: <1.0,1.0,1.0>
The sum of myVector1 and myVector2 is: <2.0,3.0,4.0>
The norm of myVector2 is: 1.73
The dot product of myVector1 and myVector2 is: 6.0