Question: // ---------------------------------------------------------- // Student.java // ---------------------------------------------------------- public class Student { private Name fullName; private String id; public Student() { this ( new Name ( ),

 // ---------------------------------------------------------- // Student.java // ---------------------------------------------------------- public class Student { private

// ----------------------------------------------------------

// Student.java

// ----------------------------------------------------------

public class Student

{

private Name fullName;

private String id;

public Student()

{

this ( new Name ( ), "" );

}

public Student(Name studentName, String studentId)

{

fullName = studentName;

id = studentId;

}

public Student(Student obj) throws NullPointerException { }

public Object clone() { }

public void setStudent(Name studentName, String studentId)

{

fullName = studentName;

id = studentId;

}

public void setName(Name studentName) { fullName = studentName; }

public Name getName() { return fullName; }

public void setId(String studentId) { id = studentId; }

public String getId() { return id; }

public String toString()

{

return id + " " + fullName.toString ( );

}

public boolean equals ( Object obj ) { }

public void finalize() { }

public void dispose() { }

public int hashCode() { }

public int compareTo ( ) { }

} // end Student

// ------------------------------------------------------------

// Name.java

// ------------------------------------------------------------

public class Name

{

private String first; // first name

private String last; // last name

public Name()

{

this ( "", "" );

}

public Name(String firstName, String lastName)

{

first = firstName;

last = lastName;

}

public void setName(String firstName, String lastName)

{

first = firstName;

last = lastName;

}

public Name(Name obj) throws NullPointerException { } // Copy Constructor

public void setFirst(String firstName) { first = firstName; }

public void setLast (String lastName ) { last = lastName; }

public String getFirst() { return first; }

public String getLast () { return last; }

public String getName () { return toString(); }

public void giveLastNameTo ( Name aName )

{

aName.setLast ( last );

}

public boolean equals ( Object obj ) { } // Equals method

public String toString( )

{

return first + " " + last;

}

public void finalize ( ) { } // finalize method

public void dispose ( ) { } // dispose method

public int hashCode ( ) { } // hashCode method

public int compareTo ( ) { } // compareTo Method

} // end Name

// -----------------------------------------------

// TestStudentName.java

// -----------------------------------------------

public class TestStudentName

{

public static void main ( String [ ] args )

{

Name n1 = new Name ( "Ty", "Cobb" );

Name n2 = new Name ( "Babe", "Ruth" );

// ---- Test the copy constructor --------

System.out.println ( "Test the copy constructor ------------" );

Student s1 = new Student ( n1, "123456" );

Student s2 = new Student ( s1 );

s2.setStudent ( n2, "234567" );

if ( s1.equals ( s2 ) )

{

System.out.println ( "\t\tError - students should not be the same" );

System.out.println ( "\t\ts1 = " + s1 );

System.out.println ( "\t\ts1 = " + s2 );

}

else

{

System.out.println ( "\t\tSuccess - students are not the same" );

System.out.println ( "\t\ts1 = " + s1 );

System.out.println ( "\t\ts1 = " + s2 );

}

// ---- Test the clone method ------------

System.out.println ( " Test the 'clone' method ------------" );

Student s3 = (Student) s1.clone ( );

if ( s1.equals ( s3 ) )

System.out.println ( "\t\tSuccess - Students s1 and s3 are the same." );

else

{

System.out.println ( "\t\tError - Students s1 and s3 are not the same" );

System.out.println ( "\t\ts1 = " + s1 );

System.out.println ( "\t\ts3 = " + s3 );

}

s3.setStudent ( n2, "234567" );

if ( s1.equals ( s3 ) )

{

System.out.println ( "\t\tError - students should not be the same" );

System.out.println ( "\t\ts1 = " + s1 );

System.out.println ( "\t\ts1 = " + s3 );

}

else

System.out.println ( "\t\tSuccess - students are not the same" );

// ---- Test the finalize method ---------

System.out.println ( " Test the 'finalize' method ------------" );

s1 = null;

System.gc();

System.out.println ( "\t\tShould see the 'finalize' message ------------" );

// ---- Test the dispose method ----------

System.out.println ( " Test the 'dispose' method ------------" );

s2.dispose();

System.out.println ( "\t\tShould see the 'dispose' message ------------" );

s2 = null;

// ---- Test the hashCode method ---------

s1 = new Student ( s3 );

System.out.println ( " Test the 'hashCode' method ------------" );

if ( s1.hashCode ( ) == s3.hashCode ( ) )

System.out.println ( "\t\tSuccess - hashCode for s1 and s3 are the same." );

else

{

System.out.println ( "\t\tError - hashCode for s1 and s3 are not the same." );

System.out.println ( "\t\ts1.hashCode = " + s1.hashCode() );

System.out.println ( "\t\ts3.hashCode = " + s3.hashCode() );

}

System.out.println ( );

}

}

Problem: Using the 'Name.java' and 'Student.java' files, expand both classes to include the following methods A copy' constructor, .A clone' method, A finalize' method, A dispose' method, and A hashCode' method. .A 'compareTo' method Test the upgraded classes using the application 'TestStudentName.java' located in 'Chapter01_Files.zip'. Be sure to include output messages in both the finalize' method and the 'dispose' method

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!