Chapter 2
E N D
Presentation Transcript
Chapter 2 Wrap Up 9/20/16 & 9/26/16
Topics • Review for Exam I • More Style Conventions • Debugging using eclipse • The Java API
Exam I • Next week • More details on my website. • Review material on my website
Previous Style Conventions • Class names begin with upper case • Method names and variable names begin with lower case • Braces • eclipse puts open brace on the line with the heading • Line up indentation of the closing brace with whatever it is ending. • End brace commented(optional) • Lines within braces indented • Skip lines for readability (white space)
More Conventions from 2.10 • Each statement on its own line. • A blank line can separate groups of statements, but related statements usually have no blank lines between them. • Arithmetic operators and = separate by one space. No space precedes an ending semicolon or ( ). • Variable/parameter names are descriptive, use at least two words. • exceptions for loop indices (i, j), or math items like point coordinates (x, y).
More Conventions from 2.10 • Variables usually defined early (not within code), and initialized to be safe (if practical). • Lines of code are typically less than 100 characters wide. • Look at GramsToOuncesStyle2.java
What is wrong with this style? import java.util.Scanner; public class GramsToOuncesStyle2 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); final double CONVfactor = 28.35; double g; System.out.println("Grams?"); g = scan.nextDouble(); double o=g/CONVfactor; System.out.println(g+" grams is "+ o+" ounces"); scan.close(); }}
Questions • In the following program give an example of something that is not properly named. • Give an example of bad indentation. • What is wrong with the println statement?
Copy This Program and Fix the Style publicclass ShippingCalculator { publicstaticvoid main (String [] args) { intshipWeightPounds = 10; intshipCostCents; finalintFLAT_FEE_CENTS = 75 ;finalintcentsPerPound=25 ; shipCostCents = FLAT_FEE_CENTS + shipWeightPounds * centsPerPound; System.out.println("Weight(lb): " + shipWeightPounds + ", Flat fee(cents): " + FLAT_FEE_CENTS + ", Cents per pound: " + centsPerPound + ", Shipping cost(cents): " + shipCostCents); return; } }
Debugging 10/11/16 & 10/12/16
Debugging in Eclipse 2.8 • Syntax Errors • Caught by the Editor. • Logic Errors • Bad Results • Can use diagnostic prints to examine variables • In eclipse you can exam the contents of variable
Debugging • Do • Predict a cause of the problem. • Conduct a test to validate the cause. • Repeat • Don't • Make random changes • Stare at the program • A “walk-through” can be good.
Debugging in Eclipse GramstoOunces Example, 42.0 g→1.48 oz • Set a break point in the program near a possible bug. • Right click in margin left of code • Can right click again to untoggle • Run the program with “Debug as” • Click yes when dialog box appears • Gets you into Debug mode • Use box in upper right to examine variables.
Debugging in Eclipse • Use buttons to execute one statement at a time. • Step-into • Step-over for java methods • Click “Java” on top tool bar to get back to normal mode.
import java.util.Scanner; //Program to convert grams to ounces publicclass GramsToOunces{ publicstaticvoid main(String[] args) { Scanner scan = new Scanner(System.in); finaldoubleCONV_FACTOR = 28.35; doublegrams = 0.0; System.out.println("Grams?"); grams = scan.nextDouble(); doubleounces = grams / CONV_FACTOR; System.out.println(grams + " grams is " + ounces + " ounces"); scan.close(); }
Questions • How do you toggle a breakpoint in eclipse? • How do you get into Debug mode? • Why would you want to examine a variable's contents? • What is the difference between step-into and step-over?
Java API 2.7 • Google “Java API” • Oracle owns the language. • Use API to look up the String class. • Find the toUpperCase() method.
Lab • Copy the program in AllCaps.java into eclipse. • Predict the bug in the program. • Write down the prediction for class today. • Set a break point in the above program to test the prediction. • Examine variable contents • Fix the bug in the program. • Show me the prediction and how you used a break point.