Powerpoint intro to Java

advertisement
Begin Java having used Alice
Pepper
- Some slides from Alice in Action
with Java
Objectives
• Write some first Java programs
• Learn the basics of the BlueJ Integrated
Development Environment (IDE)
• Begin making the transition from Alice to
Java
Alice 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
A very simple Alice program
A Very Simple Java Program
Class header
Open braces mark
the beginning
Method header
public class JavaWorld {
public static void main(String[] args) {
System.out.println
("This is my first Java program.");
}
}
statements
Close braces mark
the end
A 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
Same steps to create a program
Alice
Java
Storywrite
Design
Code
Play
Code
Compile
Run
Test
Test
Make the Program Run
• Compile (translate to java byte code)
• Run (interpreter for that OS reads java
byte code and translates for machine)
Source
x.java
Compile
(javac x.java)
Object
x.class
Execute
(java x)
Development Environment
Blue Jay
Lets you enter code just like Alice did
Download at:
http://www.bluej.org/download/download.html
Instructions on syllabus
Exercise
• 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.”
A program that does something
Convert Dollars to Euros
Where to start?
Design 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
Designing 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)
Nouns  objects
? = make a Class
Verbs -> Operations
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
Design by test data
• Possible inputs and outputs:
Input
Dollar
Output Euros
10
10.55
10
Input euros
per dollar
Rate
100
100
.055
0
100
100
0
0
0
1000
1055
.55
Design by class diagram
DollarsToEuroConverter
Scanner
Keyboard Input
main
nextDouble
Design by flowchart
start
Ask for dollars
Read Dollars
Ask for rate
Read rate
Compute euros
Print euros
end
Let’s 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) {
}
}
Comments – setup #2
•
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 */
•
Add comments to your class now at the top:
/** DollarsToEurosConverter.java converts dollars to euros.
@author you
*/
Public class DollarsToEurosConverter
Import 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; let’s us talk with the user – like
world’s “ask user for”
functions
• Do it now in your program between comment
and class start:
/** DollarsToEurosConverter.java converts dollars to euros.
@author you
*/
Import java.util.scanner
Public class DollarsToEurosConverter
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) – 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?”);
}
}
Step 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);
Step 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; -> creates a variable
dollars = kbd.nextDouble(); -> gets the input
from the user and puts it into dollars
Step 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; -> creates a variable
eurosPerDollar = kbd.nextDouble(); -> gets the
input from the user and puts it into
eurosPerDollar
Step 5 - compute
• Step 5
– Compute euros = dollars * eurosPerDollar
– Assign the value in the expression to euros
variable
double euros;
euros = dollars * eurosPerDollar;
Step 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 => “ + euros +
“euros”);
• RUN YOUR Program
Check test data
• Possible inputs and outputs:
Input
Dollar
Output Euros
10
10.55
10
Input euros
per dollar
Rate
100
100
.055
0
100
100
0
0
0
1000
1055
.55
Testing 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
Print 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 => %.2f euros“
• Placeholder %.2f provides precision and type
information
Some Java Statements
(continued)
Step 6 – a bit better
Type the statement to print the result to the
screen in place of println:
System.out.printf(
“%.2f dollars => %.2f euros”,dollars,
euros);
Your toolset
• Basic setup including comments and
importing packages
• Print to screen with formatting
• Read from screen
• Create variables to hold decimal values
• Calculate (*,/,+,-,^)
Download