Study Guide For Chapter 4 Test
Chapter 4 Included the following topics:
- Computer Systems (page 75)
- Program Design(pp 75-77)
- Inheritance (pp 77-81)
- Class Hierarchies (pp 81-85)
- Polymorphism (pp 85-87)
- Interfaces (pp 87-92)
- Reusing code in your design of a class (p93-94)
Projects to practice with:
Objects
- Make a
Shoeclass that has the fields size (a double), isForMen (boolean), and name (String), with 2 or three constructors and accessor methods - Make a TestingClass to see if your
Shoeclass is working properly - implement the Measureable interface that returns the size.
- make a method
isBiggerthat has a parameterShoe otherreturns true if the other shoe is a larger size. - make a method
biggestthat takes anArrayListofShoeand returns the largest shoe using theisBiggermethod.
Loops
- Make a while loop that prints
2,5,8,11,14,17,20 - Make a for loop that prints
2,5,8,11,14,17,20
Arrays
Some methods to write:
arrayToStringwhich is a string with all the values of the array separated with commas and spacesattachToEndwhich makes a new array that is one longer, adding the value to the last positionattachToFrontwhich makes a new array that is one longer, adding the value to the first positionmaxwhich returns the value of the biggest elementminwhich returns the value of the smallest element
Starter Code
public class ArrayTester {
public static String arrayToString(int[] a){
// your code here
return "yet to do";
}
public static int[] attachToEnd(int[] a, int x){
// your code here
return null;
}
public static int[] attachToFront(int[] a, int x){
// your code here
return null;
}
public static int min(int [] a){
// your code here
return Integer.MAX_VALUE;
}
public static int max(int [] a){
// your code here
return Integer.MIN_VALUE;
}
public static void main(String[] args) {
int[] nums = {3,2,1};
System.out.print ("array nums has "+arrayToString(nums));
System.out.println ("--Expected [ 3, 2, 1 ]");
nums=attachToEnd(nums, 0);
System.out.print ("array nums has "+arrayToString(nums));
System.out.println ("--Expected [ 3, 2, 1, 0 ]");
nums=attachToFront(nums, 4);
System.out.print ("array nums has "+arrayToString(nums));
System.out.println ("--Expected [ 4, 3, 2, 1, 0 ]");
System.out.print ("the max is "+max(nums));
System.out.println ("--Expected 4");
System.out.print ("the min is "+min(nums));
System.out.println ("--Expected 0");
}
}
Other things to try
- add another method
maxIndexthat returns the index of the largest element - add another method
minIndexthat returns the index of the smallest element - add another method
averagethat returns the average value of the array - Do all of the above with an array of
Stringinstead of anintarray - Do all of the above with an
ArrayList<Integer>instead of and integer Array.
Super and Subclasses
- Make the classes
Fish,Cat, andDogthat are subclasses thePetclass. All pets should have a name and an age. Add a unique instance field for each subclass - Make a
Mapleand aFirwhat are both subclasses ofTree. All trees have a height andleafColor, but have theMapleoverride theleafColormethod.
Interfaces
- Make a
Measureableinterface that requires the methodgetMeasurewhich returns a double. Make a few classes that implement the interface such asBookorLumber - Consider the interface
public interface Judge
{
boolean acceptable(String text)
}
Make classes that implement the Checker interface. Here are some ideas:
Oddwhich will only find acceptable Strings that have an odd number of letters in it.Questionwhich approves of Strings that end in a question mark "?"Alliterationwhere it checks if every word in a String starts with the same letter. If is does, it would considered acceptable. For example, "We want wonderful weddings" would be acceptable, and "We want to weave" would not be acceptable since the word "to" doesn't start with the same letter. (Hint: use the String methodsplitto chop the String into an array of words.
import java.util.ArrayList;
public class JudgeTester
{
public static void main(String[] args)
{
Odd odd = new Odd();
System.out.println(odd.acceptable("odd")+" -- Expected true");
System.out.println(odd.acceptable("four")+" -- Expected false");
//Alliteration poet = new Alliteration();
//System.out.println(poet.acceptable("we wander west")+" -- Expected true");
//System.out.println(poet.acceptable("we wander east")+" -- Expected false");
ArrayList<Judge> judges = new ArrayList<Judge>();
// judges.add(odd);
// judges.add(poet);
for (Judge j:judges)
System.out.println( j.acceptable("Is this ok?");
}
}
Design
Try The ChessRating project
