Title: Begin Java having used Alice
1Begin Java having used Alice
- Pepper
- - Some slides from Alice in Action with Java
2Objectives
- Write some first Java programs
- Learn the basics of the BlueJ Integrated
Development Environment (IDE) - Begin making the transition from Alice to Java
3Alice vs Java
Alice Java
3D graphics let you visualize programming concepts Drag-and-drop coding reduces syntax errors Create new objects - Run Java programs across various platforms Build applets to make Web pages interactive
Much of Alice is written in Java
4A very simple Alice program
5A Very Simple Java Program
Open braces mark the beginning
Class header
Method header
public class JavaWorld public static void
main(String args) System.out.println ("T
his is my first Java program.")
statements
Close braces mark the end
6A First Program What Does It Do?
System.out.println ("This is my first Java
program.")
Prints the message This is my first Java program.
Ends the line
7Same steps to create a program
Alice Java
Storywrite Design
Code Code Compile
Play Run
Test Test
8Make the Program Run
- Compile (translate to java byte code)
- Run (interpreter for that OS reads java byte code
and translates for machine)
9Development Environment
- Blue Jay
- Lets you enter code just like Alice did
- Download at
- http//www.bluej.org/download/download.html
- Instructions on syllabus
10Exercise
- Add the line Welcome to Java
- When you run the program, you will see
- This is my first Java Program. Welcome to
Java. - Extra
- Info print() does not go to the next line
- Try splitting Welcome to Java into two
statements Welcome and then to Java.
11A program that does something
- Convert Dollars to Euros
- Where to start?
12Design possibilities
- By words Nouns and Verbs ? algorithm
- By test data List some possible inputs and
outputs before coding - By class diagram Design object pictures
- By flow chart chart the sequential steps and
decisions
13Designing by words
- 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)
14Nouns ? objects
? make a Class
15Verbs -gt Operations
16The 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
17Design by test data
- Possible inputs and outputs
Input Dollar Input euros per dollar Rate Output Euros
10 100 1000
10.55 100 1055
10 .055 .55
0 100 0
100 0 0
18Design by class diagram
DollarsToEuroConverter
Scanner
Keyboard Input
main
nextDouble
19Design by flowchart
start
Ask for dollars
Read Dollars
Ask for rate
Read rate
Compute euros
Print euros
end
20Lets start coding setup 1
- Create a new project in BlueJ
- Create a new class
- Write the standard new World starter
- public class DollarsToEuroConverter
- public static void main(String args)
-
-
-
21Comments setup 2
- Comments
- Inline begins comment with // and ends at lines
end - Block (C-style) begins with / and ends with /
- Javadoc begins with / and ends with /
- Add comments to your class now at the top
- / DollarsToEurosConverter.java converts dollars
to euros. - _at_author you
- /
- Public class DollarsToEurosConverter
22Import Packages setup 3
- Like importing other character blueprints
actually groups of characters - Package Example Scanner class is in java.util
package - Bring it in with an import statement
- Example import java.util.Scanner - lets us
talk with the user like worlds ask user for
functions - Do it now in your program between comment and
class start
/ DollarsToEurosConverter.java converts dollars
to euros. _at_author you / Import
java.util.scanner Public class DollarsToEurosConve
rter
23Some 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) Like SAY
- Ask now in your program, and then run it
public class DollarsToEuroConverter public
static void main(String args)
System.out.print("How many dollars do you want to
convert?)
24Step 2 Read dollars from screen
- Step 2
- Read dollars
- This means we have to read from the screen. We
need an object that knows how to do this.?
Scanner. - Once we create him, we can ask him what the user
typed on the screen. We can ask him as many times
as we like once he is created. - Create a scanner in your program now
- Scanner kbd new Scanner (System.in)
-
25Step 2 read the dollars cont.
- Now we can ask scanner for the dollars, but we
will need to save those dollars into a variable - double dollars -gt creates a variable
- dollars kbd.nextDouble() -gt gets the input
from the user and puts it into dollars
26Step 3 4 same thing for rate
- Step 3
- Display "What is the euros-per-dollar exchange
rate? - Use System.out.print(String query)
- System.out.print(What is the Euros per dollar
exchange rate?) - Step 4
- Read eurosPerDollar
- Reuse the Scanner object from Step 2
- double eurosPerDollar -gt creates a variable
- eurosPerDollar kbd.nextDouble() -gt gets the
input from the user and puts it into
eurosPerDollar
27Step 5 - compute
- Step 5
- Compute euros dollars eurosPerDollar
- Assign the value in the expression to euros
variable - double euros
- euros dollars eurosPerDollar
28Step 6 tell result
- Display dollars and euros, plus descriptive
labels - Use System.out.println(String output)
- Concatenation operator () combines String values
- Type
- System.out.println(dollars dollars gt
euros euros) - RUN YOUR Program
29Check test data
- Possible inputs and outputs
Input Dollar Input euros per dollar Rate Output Euros
10 100 1000
10.55 100 1055
10 .055 .55
0 100 0
100 0 0
30Testing a Java Program Using BlueJ
- Functional testing
- Running a program multiple times, using various
values - Example use various dollar values and exchange
rates - Sanity checking testing with easily verified
values - Logic error problem with the program structure
- User testing
- Utilizing another person to uncover hidden flaws
- Example roommate reveals euros formatting error
- Solution use printf()to round off values of
euros
31Print statement a bit more
-
- 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 gt .2f euros
- Placeholder .2f provides precision and type
information
32Some Java Statements (continued)
33Step 6 a bit better
- Type the statement to print the result to the
screen in place of println - System.out.printf(
- .2f dollars gt .2f euros,dollars, euros)
34Your toolset
- Basic setup including comments and importing
packages - Print to screen with formatting
- Read from screen
- Create variables to hold decimal values
- Calculate (,/,,-,)