Difference between revisions of "CSC212 Lab 4 2014"

From dftwiki3
Jump to: navigation, search
(Private Member Variables)
(Private Member Variables)
Line 76: Line 76:
 
* Verify that you get the following output:
 
* Verify that you get the following output:
 
   
 
   
Max (3), tattooed, not vaccinated
 
 
  Max (3), tattooed, not vaccinated
 
  Max (3), tattooed, not vaccinated
 
  Max (5), not tattooed, vaccinated
 
  Max (5), not tattooed, vaccinated
Line 110: Line 109:
 
* When you have been able to get rid of all the compiler errors for TestAnimal1.java, run the program '''TestAnimal1''' and verify that you get the same output as before:
 
* When you have been able to get rid of all the compiler errors for TestAnimal1.java, run the program '''TestAnimal1''' and verify that you get the same output as before:
 
   
 
   
Max (3), tattooed, not vaccinated
 
 
  Max (3), tattooed, not vaccinated
 
  Max (3), tattooed, not vaccinated
 
  Max (5), not tattooed, vaccinated
 
  Max (5), not tattooed, vaccinated
 
  Max (6), tattooed, vaccinated
 
  Max (6), tattooed, vaccinated

Revision as of 20:39, 17 September 2014

--D. Thiebaut (talk) 21:12, 17 September 2014 (EDT)





Lab 4 deals with private member variables, and javadoc.


Private Member Variables


  • Login to beowulf2.csc.smith.edu, grendel.csc.smith.edu, or use one of the Linux Mint machines.
  • Create a new program called Animal1.java containing the code below:


public class Animal1 {
        boolean isVaccinated;
        boolean isTattooed;
        String name;
        int age;
        
        Animal1( String n, int a, boolean v, boolean t ) {
                name             = n;
                age              = a;
                isVaccinated = v;
                isTattooed   = t;
        }
        
        public void displayBasicInfo( ) {
                String v = "vaccinated";
                if ( !isVaccinated ) v = "not " + v;
                String t = "tattooed";
                if ( !isTattooed ) t = "not " + t;
                System.out.println( String.format( "%s (%d), %s, %s", 
                                name, age, t, v ) );
        }
        
}


  • In the same directory, create a second file called TestAnimal1.java, which contains this code:


class TestAnimal1 {

   TestAnimal1() { 
   }

   public static void main(String[] args) {
           // create a new animal
           Animal1 a = new Animal1( "Max", 3, false, true );
           a.displayBasicInfo();

           // modify it.  Then display it.
           a.isVaccinated = true;
           a.isTattooed = false;
           a.age = 5;
           a.displayBasicInfo();

           // modify it some more, then display it.
           a.isTattooed = ! a.isTattooed;
           a.age = a.age + 1;
           a.displayBasicInfo();
   }
}


  • Compile and run both:
 javac Animal1.java TestAnimal1.java
 java TestAnimal1

  • Verify that you get the following output:
Max (3), tattooed, not vaccinated
Max (5), not tattooed, vaccinated
Max (6), tattooed, vaccinated


Modification


  • Modify the Animal1.java program and make all its member variables private.


        private boolean isVaccinated;
        private boolean isTattooed;
        private String name;
        private int age;


  • Recompile both java programs. Notice that, now, TestAnimal1.java generates many errors. Why?
  • Add mutator and inspector methods to Animal1.java so that its member variables can be accessed by TestAnimal1.java. Here is an example of a mutator and inspector for age:


         // mutator
         public void setAge( int n ) {
               age = n;
         }

         // ispector
         public int getAge( ) {
               return age;
         }


  • When you have been able to get rid of all the compiler errors for TestAnimal1.java, run the program TestAnimal1 and verify that you get the same output as before:
Max (3), tattooed, not vaccinated
Max (5), not tattooed, vaccinated
Max (6), tattooed, vaccinated