Chapter 5 Snippets

p. 140

Annotated Java Code Example:

package shapes;
import java.lang.*;

/*
This class defines a shape with three dimensions
*/
public class Box extends Shape {
  int height; // override the Shape height
  int depth; // unique to Box

  public Box() {
    height = 4;
    width = 3; // width is inherited from Shape
    depth = 2;
  }

  public int getDepth() {
    return depth;
  }

  public void setDepth(int newDepth) {
    depth = newDepth;
  }

  // super.getWidth is the same as getWidth() here
  public int getVolume() {
    return height * super.getWidth() * getDepth();
  }
}

p. 143

Subclassing (extends) example:

package shapes;

public class Shape {
  int height;
  int width;

  public Shape() {
    height = 1;
    width = 1;
  }

  public int getHeight() {
    return height;
  }

  public void setHeight(int newHeight) {
    height = newHeight;
  }

  // getWidth() and setWidth() methods go here

}

p. 146

Annotated Use of the Box Example Class:

package shapes;

public class TestBox {

  public static void main(String[] args) {
    // this creates an object called someBox
    Box someBox = new Box();
    someBox.setDepth(3);
    // getHeight() and setHeight() are from Shape
    // height shows the height variable from Box
    System.out.println (
      "The height of Shape is " + someBox.getHeight() +
      " and of someBox is " + someBox.height);

    // getDepth and getVolume are from Box
    System.out.println (
      "The depth of someBox is " + someBox.getDepth() +
      " and the volume of someBox is " + someBox.getVolume());
  }
}

p. 149

Conditional Branching:

class ShowQuarter {

  public static void main (String args[]) {
    int taxMonth = 10;
    String taxQuarter;

    if (taxMonth == 1 || taxMonth == 2 || taxMonth == 3) {
      taxQuarter = "1st Quarter";
    } else if (taxMonth == 4 || taxMonth == 5 || taxMonth == 6) {
      taxQuarter = "2nd Quarter";
    // more conditions would appear here
    } else {
      taxQuarter = "Not Valid";
    }
    System.out.println("Your current Tax Quarter is: " + taxQuarter );
  }
}

Second example for Conditional Branching:

class ShowQuarter2 {
  public static void main (String args[]) {
    int taxMonth = 10;
    String taxQuarter;
    // The break statement jumps out of the conditional testing
    switch (taxMonth) {
      case 1: case 2: case 3:
        taxQuarter = "1st Quarter";
        break;
      case 4: case 5: case 6:
        taxQuarter = "2nd Quarter";
        break;
      // more conditions would appear here
      default:
        taxQuarter = "Not Valid";
  }   // end of the switch
  System.out.println("Your current Tax Quarter is: " + taxQuarter);
  }   // end of the main() method
}     // end of the class

p. 150

Iteration or Looping:

class TestLoops
{
  public static void main (String args[]) {
    for (int i = 1; i <= 10; i++) {
      System.out.println("Loop 1 count is " + i);
    }
  }
}

Exception Handling:

public class TestException {
  public static void main(String[] args) {
    int numerator = 5, denominator = 0;
    int ratio;
    try {
      ratio = numerator / denominator ;
      System.out.println("The ratio is " + ratio);
    }
    catch (Exception e) {
      // This shows an error message on the console
      e.printStackTrace();
    }
    finally {
      System.out.println("The end.");
    }
  }
}

p. 151

Variable Scope:

class TestScope {

  public static void main (String[] args) {
    int currentSalary = 0;
    if (currentSalary < 0) {
      int currentCommission = 10;
      System.out.println("No salary but the commission is " + currentCommission);
    }
    else {
      System.out.println("Salary but no commission.");
    }
    // This will cause a compilation error.
    System.out.println(currentCommission);
  }
}

Second example for Variable Scope:

class ShowSalary {
  static int previousSalary = 0;
  int commission = 10;

  public static void main (String[] args) {
    int currentSalary = 100;
    if (currentSalary == 0) {
      System.out.println("There is only a commission.");
    }
    else {
      System.out.println("Current salary is " + currentSalary);
    }
    System.out.println("{Previous salary is " + previousSalary);

    // The following would cause a compile error.
    // System.out.println(commission);
  }
}

p. 153

Top of page:

class TestShowSalary
{
  public static void main(String[] args)
  {
    ShowSalary salary1 = new ShowSalary();
    ShowSalary salary2 = new ShowSalary();
    //
    System.out.println("From salary1: " + salary1.previousSalary);
    salary2.previousSalary = 300;
    System.out.println("After salary2 changed it: " + salary1.previousSalary);
  }
}

p. 154

Primitive Datatypes:

// decimal equivalent of the letter 'a'
char charDecimal = 97;
// using an actual character inside single quotes
char charChar = 'a';
// octal equivalent of the letter 'a'
char charOctal = '\141';
// Hex value for the letter 'a'
char charHex = 0x0061;
// Unicode (hex) value for the letter 'a'
char charUnicode = '\u0061';

p. 155

PetNames class:

class PetNames {
  public static main (String args[]) {
    String petFriends[ ][ ] = {
      {"George", "Snake", "Alligator"},
      {"Denise", "Butterfly"},
      {"Christine", "Tiger"},
      {"Robert", "Parrot", "Dove", "Dog", "Cat"}
    };
  }
}

p. 157

StringBuffer class:

class StringAppend {
  public static void main (String args[]) {
    StringBuffer stringBuff = new StringBuffer("A string");
    stringBuff = stringBuff.append(" is added");
    System.out.println(stringBuff.toString());
  }
}

p. 158

Top of page:

public class TestCast {
  public static void main (String args[]) {
    byte smallNumber = 10;
    int largeNumber;
    largeNumber = smallNumber * 5;
    System.out.println("largeNumber is " + largeNumber);
    // smallNumber = largeNumber;
    smallNumber = (byte) largeNumber;
    System.out.println("smallNumber is " + smallNumber);
  }
}

p. 162

Step 4:

package shapes.client;

public class Shape {
  int height;
  int width;

  public Shape() {
    height = 1;
    width = 1;
  }

  public int getHeight() {
    return height;
  }

  public void setHeight(int newHeight) {
    height = newHeight;
  }

  public int getWidth() {
    return width;
  }

  public void setWidth(int newWidth) {
    width = newWidth;
  }
}

p. 164

Step 4:

package shapes.client;

public class Box extends Shape {
  int height; // override the Shape height
  int depth; // unique to Box

  public Box() {
    height = 4;
    width = 3; // the width from Shape
    depth = 2;
  }

  public int getDepth() {
    return depth;
  }

  public void setDepth(int newDepth) {
    depth = newDepth;
  }

  // super.getWidth is the same as getWidth() here
  public int getVolume() {
    return height * super.getWidth() * getDepth();
  }
}

p. 165

Step 3:

package shapes.client;

public class TestBox {

  public static void main(String[] args) {
    // this creates an object called someBox
    Box someBox = new Box();
    someBox.setDepth(3);
    // getHeight() and setHeight() are from Shape
    // height shows the height variable from Box
    System.out.println (
      "The height of Shape is " + someBox.getHeight() +
      " and of someBox is " + someBox.height);

    // getDepth and getVolume are from Box
    System.out.println (
      "The depth of someBox is " + someBox.getDepth() +
      " and the volume of someBox is " + someBox.getVolume());
  }
}

p. 166

First sample:

package sample;

public class WrappedClass {

  public WrappedClass() {
  }

  int sumNumbers(int number1, int number2, boolean reallySum) {
    int result = 0;
    if (reallySum){
      result = number1 + number2;
    }
    return result;
  }
}

Second sample:

package sample;

public class WrapperClass {
  private final WrappedClass contents;

  public WrapperClass(WrappedClass newContents) {
    contents = newContents;
  }

  public int sumNumbers(int number1, int number2) {
    return contents.sumNumbers(number1, number2, true);
  }
}