34
Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

  • View
    227

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Begin Java having used Alice

Pepper

- Some slides from Alice in Action with Java

Page 2: 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

Page 3: Begin Java having used Alice Pepper - Some slides from Alice in Action with 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

Page 4: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

A very simple Alice program

Page 5: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

A Very Simple Java Program

public class JavaWorld { public static void main(String[] args) { System.out.println

("This is my first Java program."); }}

Class header

Method header

statements

Close braces markthe end

Open braces markthe beginning

Page 6: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

A First Program – What Does It Do?

Prints the messageThis is my first Java program.

Ends the line

System.out.println("This is my first Java program.");

Page 7: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Same steps to create a program

Alice Java

Storywrite Design

Code Code

Compile

Play Run

Test Test

Page 8: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Make the Program Run

• Compile (translate to java byte code)

• Run (interpreter for that OS reads java byte code and translates for machine)

Sourcex.java

Compile(javac x.java)

Objectx.class

Execute(java x)

Page 9: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Development Environment

Blue Jay

Lets you enter code just like Alice did

Download at:

http://www.bluej.org/download/download.html

Instructions on syllabus

Page 10: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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.”

Page 11: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

A program that does something

Convert Dollars to Euros

Where to start?

Page 12: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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

Page 13: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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)

Page 14: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Nouns objects

? = make a Class

Page 15: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Verbs -> Operations

Page 16: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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

Page 17: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Design 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

Page 18: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Design by class diagram

DollarsToEuroConverter

main

Scanner

nextDouble

Keyboard Input

Page 19: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Design by flowchart

Ask for dollars

start

Read Dollars

Ask for rate

Read rate

Compute euros

Print euros

end

Page 20: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Let’s start coding – setup #1

Create a new project in BlueJCreate a new classWrite the standard new World starter: public class DollarsToEuroConverter { public static void main(String[ ] args) { }}

Page 21: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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

Page 22: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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.scannerPublic class DollarsToEurosConverter

Page 23: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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?”); }}

Page 24: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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);

Page 25: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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

Page 26: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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 variableeurosPerDollar = kbd.nextDouble(); -> gets the

input from the user and puts it into eurosPerDollar

Page 27: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Step 5 - compute

• Step 5– Compute euros = dollars * eurosPerDollar– Assign the value in the expression to euros

variable

double euros;

euros = dollars * eurosPerDollar;

Page 28: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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

Page 29: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Check 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

Page 30: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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

Page 31: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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

Page 32: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Some Java Statements (continued)

Page 33: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

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);

Page 34: Begin Java having used Alice Pepper - Some slides from Alice in Action with Java

Your toolset

• Basic setup including comments and importing packages

• Print to screen with formatting

• Read from screen

• Create variables to hold decimal values

• Calculate (*,/,+,-,^)