Transcript Chapter 7

Alice in Action with Java
Chapter 7
From Alice to Java
Objectives
• Write some first Java programs
• Learn the basics of the development process for
Java programs
• Begin making the transition from Alice to Java
Alice in Action with Java
2
From Alice to Java
• Benefits of program development using Alice
– 3D graphics let you visualize programming concepts
– Drag-and-drop coding reduces syntax errors
• Benefits of program development using Java
– Build reusable classes
– Run Java programs across various platforms
– Build applets to make Web pages interactive
Alice in Action with Java
3
Program Development
• The four steps of computer programming
–
–
–
–
1. Designing the program
2. Writing the program
3. Running the program
4. Testing the program
Alice in Action with Java
4
Program development using Alice
• Step 1: Write user stories and construct storyboards
• Step 2: Add objects to world, animate with
messages
• Step 3: Press the Play button
• Step 4: Scrutinize a number of executions
Alice in Action with Java
5
Designing a First Java Program
• Use many techniques learned in Alice
• First step: write a user story to help setup structure
• User story for dollars-to-euros currency conversion
–
–
–
–
–
–
Query user for dollar amount to convert to euros
Read the dollar amount from the user
Query user for euros-per-dollar exchange rate
Read euros-per-dollar exchange rate
Compute corresponding number of euros
Display dollar and (computed euros values)
Alice in Action with Java
6
The Object List
• Review: class is blueprint for an object
• Procedure for isolating objects in the user story
– Identify the noun phrases (primary object indicators)
– Create a table listing nouns, values stored, and names
• The name should also be a noun (or noun phrase)
• The name should be descriptive
– If no Java type matches the value, define a class
• Naming convention
– Class: capitalize each word in the name
– Variable or method: capitalize each word except first
Alice in Action with Java
7
The Object List (continued)
Alice in Action with Java
8
The Operations List
• Operations correspond to verb phrases in user story
• Procedure for isolating verbs in the user story
– Identify the verb phrases (primary operation indicators)
– Create a table listing verbs and matching operations
• There are five verb phrases in the user story
Alice in Action with Java
9
The Operations List (continued)
Alice in Action with Java
10
The Algorithm
• Algorithm: sequence of steps that solve a problem
• Algorithm for converting dollars to euros
– 1. Display "How many dollars do you want to convert?"
– 2. Read dollars
– 3. Display "What is the euros-per-dollar exchange
rate?"
– 4. Read eurosPerDollar
– 5. Compute euros = dollars * eurosPerDollar
– 6. Display dollars and euros, plus descriptive labels
Alice in Action with Java
11
Writing a First Java Program
• Integrated development environment (IDE)
–
–
–
–
Program editor
Compiler
Run-time environment
Debugger
• Some features of the Alice IDE
– World window, object tree, editing area, Play button
• We are going to learn to develop programs using
command line tools
• BlueJ is a simple-to-use IDE for Java
Alice in Action with Java
12
Java Programming Process
• Use a text editor to create a file containing the
program code
– vim MyFirstProgram.java
• Compile the program
– javac MyFirstProgram
• Run the program
– java MyFirstProgram
Alice in Action with Java
13
Java Basics
• Strategy: compare the first program to the algorithm
• References
– Algorithm developed in Section 7.1
– DollarsToEurosConverter.java in Figure 7-20
Alice in Action with Java
14
DollarsToEurosConverter
import java.util.Scanner;
/** DollarsToEurosConverter converts dollars to euros
@author Joel Adams
*/
public class DollarsToEurosConverter {
public static void main( String [] args) {
System.out.print( "How many dollars? ");
Scanner keyboard = new Scanner( System.in);
double dollars = keyboard.nextDouble();
System.out.print(
"How many euros per dollar? ");
double eurosPerDollar = keyboard.nextDouble();
double euros = dollars * eurosPerDollar;
System.out.printf(
"%.2f dollars => %.2f euros\n", dollars, euros);
}
}
Alice in Action with Java
15
Import Statements and Packages
• Package: group of related, predefined classes
– Example: Scanner class is in java.util package
• Access packaged classes with an import statement
– Place import statements before class declaration
– Example: import java.util.Scanner;
• Wild-card import statement
– Used to import all of the classes in a package
– Example: import java.util.*;
• java.lang contains commonly used classes
– Automatically imported into a program
Alice in Action with Java
16
Comments
• Comments: explanatory remarks
• Comments are ignored by the Java compiler
• Three different kinds of comments
– Inline: begins comment with // and ends at line’s end
– Block (C-style): begins with /* and ends with */
– Javadoc: begins with /** and ends with */
• Opening comments of converter are Javadoc type
– Every class should have an opening comment
– Place it just above the "public class …"
• In general, add comments to improve readability
Alice in Action with Java
17
The Simplest Java Program
• Consists of a class and an empty main()method
• General pattern used to define a class:
public class NameOfTheClass {
}
– The word public makes the class visible to users
– The word class indicates a new type name follows
• Every Java program needs a main()method
• The main()method is defined within the class body
• main()is like myFirstMethod()in Alice
– However, you cannot replace main with another
method
Alice in Action with Java
18
The Simplest Java Program
Alice in Action with Java
19
The main Method
• Understanding the structure of the main()method
–
–
–
–
–
public allows method to be invoked outside class
static indicates that main()belongs to the class
void indicates that main()does not return a value
main is the name of the method
String[]args provides a way to pass values
– Statements placed within body are delimited by { and }
Alice in Action with Java
20
Some Java Statements
• Technique for writing a program
– Go through an algorithm step by step
– Translate each step into an equivalent Java statement
• Goal: apply technique to dollars-to-euros algorithm
• Step 1
– Display "How many dollars do you want to convert?”
– Use System.out.print(String query)
• Step 2
– Read dollars
– Use a Scanner object to retrieve value from keyboard
Alice in Action with Java
21
Some Java Statements (continued)
• Step 3
– Display "What is the euros-per-dollar exchange rate?”
– Use System.out.print(String query)
• Step 4
– Read eurosPerDollar
– Reuse the Scanner object from Step 2
• Step 5
– Compute euros = dollars * eurosPerDollar
– Assign the value in the expression to euros variable
– double euros = dollars * eurosPerDollar;
Alice in Action with Java
22
Some Java Statements (continued)
• Step 6
– Display dollars and euros, plus descriptive labels
– Use System.out.println(String output)
• Concatenation operator (+) combines String values
• The printf()statement
–
–
–
–
Controls the format of printed values
Must have at least one argument (format-string)
Arguments after the format-string need a placeholder
Example: "%.2f dollars => %.2f euros“
• Placeholder %.2f provides precision and type information
Alice in Action with Java
23
Use printf for formatting numbers
Alice in Action with Java
24
A Second Java Program
• Problem: how to determine relative value
• Scenario 1
– Regular size cereal costs $2.90 per 12 ounces
– Economy size cereal costs $4.00 per 15 ounces
• Scenario 2
– 60-gigabyte MP3 player costs $150
– 80-gigabyte model costs $190
• Solution: compare items using unit prices
• Goal: program should find the unit price of an item
Alice in Action with Java
25
Designing the UnitPricer Program
• Step 1: elements of user story built around unit price
–
–
–
–
–
–
–
Query: “What is the price of the first item?”
Read the first price from the keyboard
Query “How many units are in the first item?”
Read the number of units in the first item
Perform the first four actions for the second item
Compute and display the unit prices of the two items
Use of a generic item broadens program’s application
• Step 2: extract the objects from the noun phrases
• Step 3: extract the methods from the verb phrases
Alice in Action with Java
26
Designing the UnitPricer Program
(continued)
Alice in Action with Java
27
Designing the UnitPricer Program
(continued)
Alice in Action with Java
28
Designing the UnitPricer Program
(continued)
• Step 4: develop the UnitPricer algorithm
• The algorithm is the blueprint for the program
• Generalization: broadens application of a program
• Generalization in the UnitPricer algorithm
– The use of “item” in place of cereal box and MP3 player
– “Item” is a generic term embracing a variety of objects
Alice in Action with Java
29
Designing the UnitPricer Program
(continued)
Alice in Action with Java
30
Writing the UnitPricer Program
• A summary of the steps
– Create a new Java project in Eclipse
– Create the UnitPricer class
– Implement the algorithm in main()
• Figure 7-24 presents the final version
Alice in Action with Java
31
Writing the UnitPricer Program
(continued)
Alice in Action with Java
32
Testing the UnitPricer Program
• Conduct testing using easy-to-verify values
• The printf() message revisited
– Begin format-string with %n to advance cursor one line
– %w.pf placeholder used to specify width and precision
• Format-string: "%nItem 1 unit price: $%7.2f“
– %n advances the cursor to the next line
– %7.2f: 7 spaces, two decimal places for a real number
Alice in Action with Java
33
Testing the UnitPricer Program
(continued)
Alice in Action with Java
34
Testing the UnitPricer Program
(continued)
Alice in Action with Java
35
Solving the Problems
• Solve the MP3 player problem
– Reminder: the 60-gigabyte model cost $150
– Reminder: the 80-gigabyte model cost $190
• MP3 player solution: 80-GB model is a better value
• Solve the corn flakes problem
– Reminder: the 12-ounce “regular” size cost $2.90
– Reminder: the 15-ounce “economy” size cost $4.00
• Corn flakes solution: regular size box is a better value
Alice in Action with Java
36
Solving the Problems (continued)
Alice in Action with Java
37
Solving the Problems (continued)
Alice in Action with Java
38
The Software Engineering Process
•
•
•
•
Six steps are similar for Java and Alice development
Software design: Steps 1-4
Software implementation and testing: Steps 5 and 6
Software engineering:
– Includes software design, implementation, and testing
Alice in Action with Java
39
The Software Engineering Process
(continued)
Alice in Action with Java
40
Summary
• Steps in program development: designing, writing,
running, and testing
• Java: object-oriented language used to develop
cross-platform applications
• Algorithm: sequence of steps that solves a problem
• IDE: program development tool that bundles an editor,
compiler, run-time environment, and debugger
• Eclipse: free IDE for Java developed by IBM
Alice in Action with Java
41
Summary (continued)
• Package: group of related, predefined classes
• import statement: exposes a program to classes in
a package
• Display values by sending print(), println(), or
printf()to an instance of System.out
• Connect a program to the keyboard using a Scanner
object
• Software engineering: methodology for designing,
implementing, and testing software
Alice in Action with Java
42