Homework Solution: Problem: Using the ‘Name.java’ and ‘Student.java’ files, expand both classes to include the following methods: A ‘copy’ constructor,…

    In java 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. Chapter01 File 'TestStudentName.java' below. // ----------------------------------------------- // 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 ( "ttError - students should not be the same" ); System.out.println ( "tts1 = " + s1 ); System.out.println ( "tts1 = " + s2 ); } else { System.out.println ( "ttSuccess - students are not the same" ); System.out.println ( "tts1 = " + s1 ); System.out.println ( "tts1 = " + s2 ); } // ---- Test the clone method ------------ System.out.println ( "nnTest the 'clone' method ------------" ); Student s3 = (Student) s1.clone ( ); if ( s1.equals ( s3 ) ) System.out.println ( "ttSuccess - Students s1 and s3 are the same." ); else { System.out.println ( "ttError - Students s1 and s3 are not the same" ); System.out.println ( "tts1 = " + s1 ); System.out.println ( "tts3 = " + s3 ); } s3.setStudent ( n2, "234567" ); if ( s1.equals ( s3 ) ) { System.out.println ( "ttError - students should not be the same" ); System.out.println ( "tts1 = " + s1 ); System.out.println ( "tts1 = " + s3 ); } else System.out.println ( "ttSuccess - students are not the same" ); // ---- Test the finalize method --------- System.out.println ( "nnTest the 'finalize' method ------------" ); s1 = null; System.gc(); System.out.println ( "ttShould see the 'finalize' message ------------" ); // ---- Test the dispose method ---------- System.out.println ( "nnTest the 'dispose' method ------------" ); s2.dispose(); System.out.println ( "ttShould see the 'dispose' message ------------" ); s2 = null; // ---- Test the hashCode method --------- s1 = new Student ( s3 ); System.out.println ( "nnTest the 'hashCode' method ------------" ); if ( s1.hashCode ( ) == s3.hashCode ( ) ) System.out.println ( "ttSuccess - hashCode for s1 and s3 are the same." ); else { System.out.println ( "ttError - hashCode for s1 and s3 are not the same." ); System.out.println ( "tts1.hashCode = " + s1.hashCode() ); System.out.println ( "tts3.hashCode = " + s3.hashCode() ); } System.out.println ( ); } }

    Expert Answer

     
    TestingStudentName.java

    In java

    Problem: Using the ‘Name.java’ and ‘Student.java’ improves, dilate twain directes to enclose the aftercited arrangements:

    A ‘copy’ fabricator,

    A ‘clone’ arrangement,

    A ‘finalize’ arrangement,

    A ‘dispose’ arrangement, and

    A ‘hashCode’ arrangement.

    A ‘compareTo’ arrangement

    Test the upgraded directes using the collision ‘TestStudentName.java’ located in ‘Chapter01_Files.zip’. Be safe to enclose quenchedput intimations in twain the ‘finalize’ arrangement and the ‘dispose’ arrangement.

    Chapter01 Improve ‘TestStudentName.java’ under.

    // ———————————————–

    // TestStudentName.java

    // ———————————————–

    public direct TestStudentName

    {

    public static invalid ocean ( String [ ] args )

    {

    Name n1 = innovating Name ( “Ty”, “Cobb” );

    Name n2 = innovating Name ( “Babe”, “Ruth” );

    // —- Test the portraiture fabricator ——–

    System.out.println ( “Test the portraiture fabricator ————” );

    Student s1 = innovating Student ( n1, “123456” );

    Student s2 = innovating Student ( s1 );

    s2.setStudent ( n2, “234567” );

    if ( s1.equals ( s2 ) )

    {

    System.out.println ( “ttError – students should referable be the similar” );

    System.out.println ( “tts1 = ” + s1 );

    System.out.println ( “tts1 = ” + s2 );

    }

    else

    {

    System.out.println ( “ttSuccess – students are referable the similar” );

    System.out.println ( “tts1 = ” + s1 );

    System.out.println ( “tts1 = ” + s2 );

    }

    // —- Test the clone arrangement ————

    System.out.println ( “nnTest the ‘clone’ arrangement ————” );

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

    if ( s1.equals ( s3 ) )

    System.out.println ( “ttSuccess – Students s1 and s3 are the similar.” );

    else

    {

    System.out.println ( “ttError – Students s1 and s3 are referable the similar” );

    System.out.println ( “tts1 = ” + s1 );

    System.out.println ( “tts3 = ” + s3 );

    }

    s3.setStudent ( n2, “234567” );

    if ( s1.equals ( s3 ) )

    {

    System.out.println ( “ttError – students should referable be the similar” );

    System.out.println ( “tts1 = ” + s1 );

    System.out.println ( “tts1 = ” + s3 );

    }

    else

    System.out.println ( “ttSuccess – students are referable the similar” );

    // —- Test the finalize arrangement ———

    System.out.println ( “nnTest the ‘finalize’ arrangement ————” );

    s1 = null;

    System.gc();

    System.out.println ( “ttShould attend the ‘finalize’ intimation ————” );

    // —- Test the direct arrangement ———-

    System.out.println ( “nnTest the ‘dispose’ arrangement ————” );

    s2.dispose();

    System.out.println ( “ttShould attend the ‘dispose’ intimation ————” );

    s2 = null;

    // —- Test the hashCode arrangement ———

    s1 = innovating Student ( s3 );

    System.out.println ( “nnTest the ‘hashCode’ arrangement ————” );

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

    System.out.println ( “ttSuccess – hashCode ce s1 and s3 are the similar.” );

    else

    {

    System.out.println ( “ttError – hashCode ce s1 and s3 are referable the similar.” );

    System.out.println ( “tts1.hashCode = ” + s1.hashCode() );

    System.out.println ( “tts3.hashCode = ” + s3.hashCode() );

    }

    System.out.println ( );

    }

    }

    Expert Counter-argument

     

    TestingStudentName.java

    /*

    * To diversify this permit header, cull Permit Headers in Project Properties.

    * To diversify this template improve, cull Tools | Templates

    * and referable attributable attributableorious the template in the editor.

    */

    package testingstudentname;

    public direct TestingStudentName

    {

    public static invalid ocean ( String [ ] args ) throws CloneNotSupportedException

    {

    Name n1 = innovating Name ( “Ty”, “Cobb” );

    Name n2 = innovating Name ( “Babe”, “Ruth” );

    // —- Test the portraiture fabricator ——–

    System.out.println ( “Test the portraiture fabricator ————” );

    Student s1 = innovating Student ( n1, “123456” );

    Student s2 = innovating Student ( s1 );

    s2.setStudent ( n2, “234567” );

    if ( s1.equals ( s2 ) )

    {

    System.out.println ( “ttError – students should referable be the similar” );

    System.out.println ( “tts1 = ” + s1 );

    System.out.println ( “tts1 = ” + s2 );

    }

    else

    {

    System.out.println ( “ttSuccess – students are referable the similar” );

    System.out.println ( “tts1 = ” + s1 );

    System.out.println ( “tts1 = ” + s2 );

    }

    // —- Test the clone arrangement ————

    System.out.println ( “nnTest the ‘clone’ arrangement ————” );

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

    if ( s1.equals ( s3 ) )

    System.out.println ( “ttSuccess – Students s1 and s3 are the similar.” );

    else

    {

    System.out.println ( “ttError – Students s1 and s3 are referable the similar” );

    System.out.println ( “tts1 = ” + s1 );

    System.out.println ( “tts3 = ” + s3 );

    }

    s3.setStudent ( n2, “234567” );

    if ( s1.equals ( s3 ) )

    {

    System.out.println ( “ttError – students should referable be the similar” );

    System.out.println ( “tts1 = ” + s1 );

    System.out.println ( “tts1 = ” + s3 );

    }

    else

    System.out.println ( “ttSuccess – students are referable the similar” );

    // —- Test the finalize arrangement ———

    System.out.println ( “nnTest the ‘finalize’ arrangement ————” );

    s1 = null;

    System.gc();

    System.out.println ( “ttShould attend the ‘finalize’ intimation ————” );

    // —- Test the direct arrangement ———-

    System.out.println ( “nnTest the ‘dispose’ arrangement ————” );

    s2.dispose();

    System.out.println ( “ttShould attend the ‘dispose’ intimation ————” );

    s2 = null;

    // —- Test the hashCode arrangement ———

    s1 = innovating Student ( s3 );

    System.out.println ( “nnTest the ‘hashCode’ arrangement ————” );

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

    System.out.println ( “ttSuccess – hashCode ce s1 and s3 are the similar.” );

    else

    {

    System.out.println ( “ttError – hashCode ce s1 and s3 are referable the similar.” );

    System.out.println ( “tts1.hashCode = ” + s1.hashCode() );

    System.out.println ( “tts3.hashCode = ” + s3.hashCode() );

    }

    System.out.println ( );

    }

    }

    Name.java

    /*

    * To diversify this permit header, cull Permit Headers in Project Properties.

    * To diversify this template improve, cull Tools | Templates

    * and referable attributable attributableorious the template in the editor.

    */

    package testingstudentname;

    /**

    direct Name {

    private String ty;

    private String cobb;

    Name(String ty, String cobb) {

    this.ty =ty;

    this.cobb =cobb;

    }

     

    }

    Student.java

    /*

    * To diversify this permit header, cull Permit Headers in Project Properties.

    * To diversify this template improve, cull Tools | Templates

    * and referable attributable attributableorious the template in the editor.

    */

    package testingstudentname;

    /**

    direct Student implements Cloneable {

    private Name n1;

    private String string;

    private Name n2;

    Student(Student s3) {

    }

    Student(Name n1, String string) {

    this.n1 = n1;

    this.string = string;

    }

    invalid setStudent(Name n2, String string) {

    this.n2 =n2;

    this.string=string;

    }

    invalid direct() {

    }

    public Object clone() throws CloneNotSupportedException

    {

    return super.clone();

    }

    }

    Output: