chapter 2 data types, input, and output section 1 - java data types section 2 - declaring and...

56
Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators & Assignment Statements Section 4 - Using Scanner Objects and Concatenation Section 5 - Syntax and Compile-Time Errors Section 6 – Introduction to Calling Methods Go Go Go Go Go Go Go

Upload: nicholas-kennedy

Post on 02-Jan-2016

252 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

Chapter 2

Data Types, Input, and Output

Section 1 - Java Data Types

Section 2 - Declaring and Initializing Variables

Section 3 - Arithmetic Operators & Assignment Statements

Section 4 - Using Scanner Objects and Concatenation

Section 5 - Syntax and Compile-Time Errors

Section 6 – Introduction to Calling Methods

Section 7 - Simple Graphics Programs

Go

Go

Go

Go

Go

Go

Go

Page 2: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

Chapter 2 - Section 1

Java Data Types

2

Page 3: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.1 Primitive Data Types

Java has two different kinds of data types or data values. They are

primitive data types and object data types.

Primitive data types. These are low-level data types. They are:

• int - an integer, in other words, a whole number like any of the

following …. -2, -1, 0, 1, 2, …..

• double - a floating-point number, real number (4.2876 or -7.53)

• boolean - holds only one of two values: true or false

• char - any one character on the keyboard, whether it is an

alphabetical letter, symbol, or number as in ‘A’, ‘k’, ‘$’, ‘#’, or ‘8’.

A char value always has single quotes around it. So ‘8’ is a

char and is considered text, but 8 is an int that can be used in a

mathematical calculation.

3

Page 4: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.1 Object Data Types

Object data types. These are high-level data types. Examples are:

• String - one or more characters that can make up letters,

words, phrases or sentences. Each value is surrounded by

double quotes as in … “KCD Bearcats”. (Not the same as char)

• Scanner - an object that can read data values from the

keyboard or from files.

• Color - an object that has red, green, and blue components that

together identify a specific color.

• JApplet - a window object that can contain a drawing surface

and GUI components. Remember, GUI stands for Graphical

User Interface.

4

Page 5: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

5

2.1 Java’s Six Primitive Numeric Data Types• There are four other numeric data types besides int and double, but

we will not use them. However, there are all six numeric types. The two primary integer data types are:– int (a 32 bit integer - 4 bytes)– long (a 64 bit integer - 8 bytes)

The two primary floating-point data types are:– float (a 32 bit floating-point - 4 bytes)– double (a 64 bit floating-point - 8 bytes)

Each uses a different number of bytes for storage and each has a different range of values. We will use only int and double in this class. If you’re interested, more on these data types can be found at:

Java’s Primitive Data Types

Page 6: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.1 Int and Double Storage Requirements

These are the only two storage requirements you need to be familiar with. You don’t need to memorize the values.

When we declare an int variable, 4 bytes of memory are allocated. This is 32 bits … meaning we can have many 32 different combinations of 1s and 0s. In fact, there are 4,294,967296 possible combinations. If we divide this number in half, then we get 2,147,483,648. Half of the int range is set aside for negative values and half of the values are used to represent 0 or positive values.

6

Data Type Storage Requirements Range of Values

int 4 bytes -2,147,483,648 to 2,147,483,647

double 8 bytes-1.79769313486231570E+308 to

1.79769313486231570E+308

Page 7: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.1 Char and Boolean Data Types

Most programmers very seldom use the char data type, because the

String data type can be one character or many characters. However,

it is nice that this primitive data type exists, as it can be useful in some

applications. However, we won’t use the char data type.

The boolean data type is much more useful, because many programs

have operations that need to be performed if a condition is true and

other operations that need to be performed if a condition is false.

Programmers use boolean variables and boolean values a lot while

writing code.

7

Page 8: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.1 The String Object Data Type

String data values are similar to char data values, however, String

values can hold as many characters as needed. Remember that a

char data value can hold only one character. A String value is an

object data type, not a primitive data type. However, a String

variable’s declaration and initialization looks similar:

String phrase = “Java Rules”;

Note that instead of single quotes that are used for char values, double

quotes are used for String values.

The line of code above creates a String object that is referred to by the

variable phrase and the String object contains the value “Java

Rules”. 8

Most objects are constructed but String objects are special and this line of code constructs and initializes.

Page 9: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.1 Scanner and Color Object Data Types

9

We mentioned briefly some other object data types, including

Scanner and Color object data types. Objects of these classes

must be formally constructed first before they can be used.

They are constructed using the Java keyword named new.

Briefly here is how you do it:

Scanner reader = new Scanner (System.in);

Color myColor = new Color (red, green, blue);

Page 10: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

Chapter 2 - Section 2

Declaring and Initializing Variables

10

Page 11: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.2 Primitive and Object Variables• The Java syntax (rules) for using variables that hold primitive data

types differs for variables that hold object data types:

– Primitive variables are declared and initialized. They are not

constructed.

– Object variables are declared and then an object is constructed

for the variable to refer to.

• Important points to remember about any variable:

– The value a variable holds may change while a program is

running.

– A variable’s type cannot change while a program is running. If

you declare a variable to be of type int, then you can’t change it

to type double somewhere else in the program. 11

Page 12: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.2 A Variable Identifies a Memory Address

Programs use variables to temporarily store values so the values can

then be used while the program is running.

A variable identifies a memory address (memory location) in RAM

memory where a value can be stored.

A variable is considered to be a nickname for the memory address.

A programmer gets to decide on the names of variables. By picking

meaningful names, the code becomes more understandable.

We can think of a variable as a small box that holds a value.

X Y name

an int variable a double variable a string variable 12

Page 13: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.2 Int & Double VariablesWhen you need to use primitive data values in a program, you can

“create” variables to store the values in by declaring them without

giving them an initial value.

int z; declare z to be a variable of type int

int x; declare x to be a variable of type int

double pi; declare pi to be a variable of type double

double num; declare num to be a variable of type double

To declare a variable, you write its data type first, like int or double, and

then you write the variable name.13

Page 14: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.2 The Java Assignment Operator

We call the = sign … the assignment operator.

We use the assignment operator in Java to create assignment

statements.

Assignment statements are equations that only store a value in one

direction. The value or expression on the right side of the =

operator is stored in a variable on the left side of the = operator.

The assignment operator can be used to give a variable an initial value

as in …

int totalPoints = 0;

double kilometers = 1.0;

14

direction of storage: right to left

direction of storage: right to left

Page 15: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.2 Int & Double Primitive Data TypesWhen you declare variables you can also initialize them (give them an

initial value) when they are declared.

int z = 10; declare z as an int and initialize to 10

int x = 15; declare x as an int and initialize to 15

double pi = 3.14159; declare pi as an int and initialize to

3.14159

double num = 32.47; declare num as an int and initialize to

32.47

Notice that we initialize the variables above by using the = sign and

placing a value on the right side of the = sign. This stores the value

on the right side of the = sign into the variable on the left side. 15

Page 16: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.2 Char and Boolean Variables

A char value is only one character. So a char variable can hold only

one character. The character can be an alphabetical letter,

numeric digit, or a symbol. For example, the following are all valid

declarations and initializations:

char letter = ‘A’;

char digit = ‘8’;

char symbol = ‘#’;

A boolean variable can hold only one of two values: true or false

boolean done = false;

boolean good = true ;

Note: all char values must be surrounded with single quotes to designate that they are char values. Don’t use double quotes!

16

Note: the values true and false do NOT have double quotes around them!

Page 17: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.2 Declaring and Using String Variables

String letter = “A”;

String word = “Java”;

String phrase = “Cool Java Code”;

String sentence = “Java is the best language available!”;

Again, Strings are not like simple int, double, char or boolean primitive

values. Strings are what we call object values. They use up more

memory than primitve variables and methods can be called that

perform operations on them.17

String variables are variables that are used to store words, phrases, or

even sentences. Why do we call them String? Because if you string

together one or more letters, you have either a word, a phrase, or a

sentence. Here are some examples.

Page 18: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.2 The Names of Java Classes

In Java, the name of a class always has the first letter capitalized. For

example, the String class defines objects of type String, so the ‘S’

is capitalized.

In Java, there are a number of kinds of classes. Right now you just

need to know that there are two kinds of Java classes:

1. A class that is a “driver program” that has a main method that you

can run and see some kind of output. An example, is the Rocket

program. The class declaration line was: public class Rocket

2. A class that is a “model class” that defines or models a type of

object, like String. This kind of class is not a driver program and

you cannot run it to see output of any kind. The purpose is only to

define a type of object … its characteristics and behavior. 18

Page 19: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

Chapter 2 - Section 3

Java’s Arithmetic Operators

and

Assignment Statements

19

Page 20: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.3 Java’s 5 Arithmetic OperatorsPrimitive data types may be combined in expressions with Java operators.

Java has 5 mathematical operators:

Addition is represented by the + sign.

Subtraction is represented by the - sign.

Multiplication is represented by the * sign.

Division is represented by the / sign.

Mod is represented by the % sign. Mod gives the remainder of int division.

(You’ll be amazed at how much you will use mod)

These operators can be used in Java “equations”. However in Java, we call

equations … assignment statements. We call them assignment

statements because they are assigning a value to a variable.

20

Page 21: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.3 Assignment Statements with Arithmetic Operators

Here is an example where all in one line of code, the variable is celsius

is declared and initialized using a full fledged assignment statement

that has an equation in it that uses Java’s arithmetic operators:

double fahrenheit = 212.0;

double celsius = ( fahrenheit - 32.0 ) * 5.0 / 9.0;

The variable celsius will have 100.0 stored in it.

The above line of code uses three different mathematical operators

and ( ).

Here is another assignment statement:

double area = 3.14159 * radius * radius;21

Page 22: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

Chapter 2 - Section 4

Using Scanner Objects to Receive

Input from the Keyboard

and Concatenation

22

Page 23: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.4 The Scanner Object Data Type

The Scanner data type is an object data type, not a primitive data type.

A Scanner object allows us to read data input from the keyboard.

Before we can do that we must construct an object of the Scanner

class and declare a variable to refer to that object. Here is how we

do that:

Scanner reader = new Scanner (System.in);

In this line we use the name of the class Scanner twice. The Scanner

variable is reader and we use System.in, because the keyboard is

the default input device for a Scanner object. The word new

indicates that an object is being constructed … new is a special

Java “reserved word” and cannot be used as a variable or for any

other purpose. So, new is used to create or construct objects.23

Page 24: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.4 Assigning the Scanner Variable

If we want to construct a Scanner object in a program, we must first

import Java’s Scanner class with the line:

import java.util.Scanner; // goes above the class declaration line

Then, inside the main method, we can construct the Scanner object.

Scanner reader = new Scanner (System.in);

Did you notice the assignment operator in the line of code? This is

what lets us make reader refer to the newly constructed Scanner

object.

24

Page 25: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.4 Constructing a Scanner Object with new

In the line of code :

Scanner reader = new Scanner(System.in);

the name of the class Scanner is used twice.

The first part of the line:

Scanner reader

declares reader to be an object variable of type Scanner. We need to do this or reader can’t refer to the Scanner object we construct.

The second part of the line:

new Scanner(System.in);

constructs the Scanner object and “attaches it” to the keyboard.

The assignment operator = makes reader refer to the Scanner object.25

Page 26: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.4 General Form for Constructing Objects• In programming, the process of constructing an object is called

instantiation.

• In general, constructing or instantiating an object takes the general form:

<Name of Class> <variable> = new <Name of Class> (<parameters>);

You can see that the line of code below follows this form:

Scanner reader = new Scanner (System.in);

You can think of reader as something that is “scanning the keyboard waiting to receive input”.

26

Page 27: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.4 Reading Different Data from the KeyboardScanner reader = new Scanner (System.in);

System.out.print(“Enter your name and press return: ”);

String name = reader.nextLine();

System.out.print(“Enter your age and press return: ”);

int age = reader.nextInt();

System.out.print(“Enter your gpa and press return: ”);

double gpa = reader.nextDouble();

Notice when we prompt the user, we use a print statement NOT a

println statement. This tells the user when to enter data. We can

receive different kinds of input using reader. We use the object

variable reader to “call the method nextLine() to receive a String

value from the keyboard. We can also use the same reader

variable to “call the method nextInt() to receive an integer and we

can use reader to “call the method nextDouble() to receive a

floating-point value from the keyboard. 27

Page 28: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.4 Echoing the Input from the Keyboard

We can now “echo the input” (print the information back to the screen

that was entered) by using some println statements. In each line,

we will print a literal string (something in double quotes) and the

value contained in a variable. We use a plus sign to concatenate

the literal string value and the value stored in the variable together

to make a larger string that is then printed.

System.out.println(“Your name is: ” + name);

System.out.println(“Your age is: ” + age);

System.out.println(“Your gpa is: ” + gpa);

Notice that there are no double quotes around the variables name,

age, and gpa because they are variables and a space has been

added before the final double quotes ” for spacing. 28

Page 29: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.4 The DistanceConverter Program

package ch02;import java.util.Scanner;

public class DistanceConverter{ public static void main (String[] args) {

Scanner reader = new Scanner(System.in);

double miles;double kilometers;

System.out.print("Enter the number of kilometers: ");kilometers = reader.nextDouble();

miles = kilometers * 0.621371192237334;System.out.println("The number of miles equivalent to " +

kilometers + " kilometers is: " + miles);}

}Note the key Scanner lines identified by the red arrows.

29

Page 30: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.4 Concatenation Inside a Println Statement

Here is an example of concatenating numerous items as one parameter:

System.out.println (kilometers + " kilometers is equivalent to " + miles + " miles.");

In Java, the plus + symbol doubles as the addition operator and the

concatenation operator. Concatenate means to put or join together. So

we can simply concatenate any number of items that we want to output to

the screen. Here the code concatenates four items together:

The value stored in the variable kilometers

The literal String value … " kilometers is equivalent to "

The value stored in the variable miles

The literal String value … " miles."

When Java executes this it doesn’t print the name of the variables kilometers and miles

but rather retrieves the value in the variables and then prints them. 30

Page 31: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.4 Concatenating Numerous Items

Some other things to mention about this line of code:

System.out.println (kilometers + " kilometers is equivalent to " + miles + " miles.");

Notice there are NO double quotes around the variables. You never

place double quotes around any variable … only literal string

values.

Also, notice the blank spaces at the beginning and end of some literal

string values. This keeps the numbers from being jammed up

against the words when it is all displayed to the screen.

31

Page 32: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.4 More about Import Statements

In the DistanceConverter.java code you saw that the first line after

the package declaration was an import statement:

import java.util.Scanner;

This tells Eclipse where to find a class that will be used during the

program. The class may be either in a Java library file or another

file you have in a folder. The import statement contains the path

name of where to find the class.

The import statement tells us that the Scanner class is found in a

sub-package folder named util that is in the java package folder.

Now you know enough that you can finish the second half of the

DistanceConverter.java program!32

Page 33: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

Chapter 2 Section 5

Syntax and Compile-TimeErrors

33

Page 34: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.5 Syntax Errors

Syntax errors keep a program from compiling and running until the

errors are corrected. Examples are:

• forgetting to place a semicolon after Java lines that need it

• forgetting one of the two ( ) when calling a method like println.

• forgetting to place double quotes where they are needed.

• misspelling Java key words like print, println, System, public, and

class.

Syntax errors are a form of compile-time errors. A syntax error will

keep your program from compiling and running.

34

Page 35: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.5 Compile-Time Errors

Some errors are not syntax errors. They are just compile-time errors.

Here are some examples:

• not storing the class in a file with the same name.

• trying to store a data value of one type in a variable of another type.

• leaving out the opening or ending curly brace for a method.

If you try to run a program that has syntax or compile-time errors, a

compiler like Eclipse will halt the process and display error

messages in the console window that …

• indicates the type of error detected

• indicates the file and line number where the error was detected35

Page 36: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.5 How Eclipse Points Out Errors• Eclipse will …

1. describe the error in the source code window

2. tell the line of code where the error is

3. suggest a solution to the error when you mouse over the bad code.

• Eclipse displays a red circle with an X in it to the left of any line that

has a syntax error.

• Eclipse will display a red box with an X in it for any line that has a

compile-time error.

• You can …– mouse over the red circle or red box and a message will pop-up

that describes the error. – click on the red circle or red box and then choose an option of

how to correct it. This saves time if you choose the correct fix, then the error will be corrected automatically for you.

36

Page 37: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.5 The Readability of CodeIt is important for your code to be readable by others. In the real world,

programmers are on software teams as they develop and maintain

software. So everyone must be able to read your code!

Programmers have developed a standard for how code should be

formatted.

• The main factors that determine whether code is readable or not are

– Spacing (referring to extra blank lines that space things out)

– Indentation (referring to tabs or indentions on a specific line)

– meaningful variable names … taxableIncome instead of ti.

• Spacing and Indentation are just for programmer readability. The

compiler ignores any kind of spacing and indentation. It just checks

to make sure that everything is syntactically correct (spelled

correctly)! 37

Page 38: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.5 Eclipse Auto IndentingEclipse assists you with indenting segments of code as you type by

automatically properly indenting your next line, but if you place too many tabs or blank spaces in the wrong place so that the code’s appearance is not consistent, then you can select all of your code and then “auto indent” it.

On a Windows computer, select all code by typing Control “a” and then type Control “i”.

On an Apple computer, select all code by typing Command “a” and then type Command “i”.

These two steps will auto indent your code. It won’t however, delete extra blank lines so if you have too many you will have to delete those yourself. 38

Page 39: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

Chapter 2 – Section 6

Calling Methods

39

Page 40: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.6 Why are there Java Methods?

Many times the same code needs to be executed over and over again

in a program. Instead of writing the code over and over again, we

just write it once and put it in a method. A synonym for a method

is an operation. Then, anytime we want to execute or run that

code, we just call the method and pass it what it needs and it will

do the work for us.

This not only saves time for programmers who are writing a program,

but if the method and possibly other methods are put in their own

class, then those methods can be called from any program! This

is one of the most important aspects of any programming

language. Some languages call methods procedures or functions.40

Page 41: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.6 Method Calls with ParametersConsider the following line of code:

System.out.println(“Hello World!”);

• System is a class and out is an object of that class that

knows how to display or print characters in a console or terminal

window.

• println is the name of the method (operation) being executed.

• “Hello World”, inside the parentheses, is the parameter of

what needs to be printed. Here the parameter is a string (string of

characters) that make up the words “Hello World”. Notice they

appear in quotation marks. This tells Java to print to the screen

the literal string value “Hello World”. The parameter could be a

variable that contains a value instead of a literal string value in

double quotes. 41

Page 42: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.6 General Rule of Calling Methods

The general form for calling methods is:

<name of object> . <name of method> (<parameters>)

A message may require zero, one, or numerous parameters. Here

are some examples:

To print a blank line, we can use System.out.println(); without any

parameters in the ( ).

To print “Hello World”, we need only one parameter the literal string

value “Hello World” in the parenthesis …

System.out.println(“Hello World!”);

Some methods are not called with an object, so in that case the name

of the method is just used. 42

Page 43: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.6 The Method Selector is the PeriodThe Method selector operator is the period . It is placed between System,

out, and either print or println in output statements as seen here …

System . out . println (kilometers + " kilometers is equivalent to " …

and it is placed between System and in when we construct a new Scanner

object that reads input from the keyboard.

Scanner reader = new Scanner(System.in);

It is always placed between an object variables’ name and the name of a

method that is being called. Below, the object variable is reader and the

methods being called are nextInt(), nextDouble(), and nextLine().

System.out.println(“Enter an integer: ”);

int num1 = reader.nextInt();

System.out.println(“Enter a floating-point number: ”);

double num2 = reader.nextDouble();

System.out.println(“Enter your name: ”);

String name = reader.nextLine(); 43

Page 44: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.6 Calling nextInt() and nextDouble()In these two input lines, we use the Scanner variable reader to call the

nextInt() and nextDouble() methods.

int num1 = reader.nextInt();

double num2 = reader.nextDouble();

First, we wish to read an integer from the keyboard, so we call nextInt() and

the method returns us an int value that we store in the int variable num1.

Second, we wish to read a floating-point number from the keyboard, so we call

nextDouble() and the method returns us an double value that we store in

the double variable num2.

When a program runs and it encounters a line like reader.nextInt() or

nextDouble(), the program will pause and wait for something to be

entered from the keyboard. Once the user enters a value and presses

return, the program continues and the value is stored in the input variable

and then the other lines of code in the program are executed. 44

Notice there are no parameters to pass nextInt or nextDouble so the ( ) are empty.

Page 45: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.6 Summary of Simple and Object Variables

In the DistanceConverter.java program, simple variables like

kilometers and miles each hold a single floating-point number.

Object variables like reader and System.out hold references to

objects.

Object variables are used to call methods or as programmers like to

say “send messages to objects” … reader.nextDouble() sends the

message “get me the next floating point number” from the keyboard.

In summary, to write effective Java programs, a programmer does not

need to have detailed knowledge of the inner workings of any

object, he or she just needs to know how to construct objects and

how to send messages to the object by calling methods.45

Page 46: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

Chapter 2 Section 7

Simple Graphics Programs

46

Page 47: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.7 JApplet Windows

Windows have numerous properties.

• Width and heigh

• Ability to be dragged or resized by the user

The code for applet windows is located in the class JApplet,

which is imported from the package javax.swing. To use this

class you need to import it with the statement:

import javax.swing.JApplet;

47

Page 48: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.7 AppletWindow1.java Code

This code produces an empty window that is 300 pixels wide and 200 pixels high.

package ch02;

import javax.swing.JApplet;

public class AppletWindow1 extends JApplet{

private static final long serialVersionUID = 1L;

public void init(){

resize(300, 200);}

}

48

Page 49: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.7 AppletWindow1.java Output

The output will look something like this.

An applet window is really just an empty container that we can draw and paint on or fill with other objects.

49

Page 50: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.7 The Graphics Context g

50

You can draw or paint in an applet window by using the

object g, which is formally called the graphics context.

You can think of g as both a pencil that can draw and a

paint brush that can paint. You can set the color of g so

that it will draw with a specific color or paint with a

specific color.

Page 51: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.7 Using Java’s Colors

In Java, there is a Color class that defines various Color constants

and allows you to create your own colors. To use Color constants

in your code, you must import the Color class by including:

import java.awt.Color;

To change the current drawing and painting color to red, use the

paint brush g to call the setColor() method as follows:

g.setColor(Color.red);

Note the dot “.” between g (an object) and setColor (a method) and

in parenthesis since red is a color constant of the Color class we

must use Color.red with a capital C .

51

Page 52: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.7 Java’s Default Color Constants

If you were going to construct these colors by yourself, you would use the 3 integer values in the parenthesis. 52

Color Constant RGB Value Construction

Color.red new Color (255, 0, 0)

Color.green new Color (0, 255, 0)

Color.blue new Color (0, 0, 255)

Color.yellow new Color (255, 255, 0)

Color.cyan new Color (0, 255, 255)

Color.magenta new Color (255, 0, 255)

Color.orange new Color (255, 200, 0)

Color.pink new Color (255, 175, 175)

Color.black new Color (0, 0, 0)

Color.white new Color (255, 255, 255)

Color.gray new Color (128, 128, 128)

Color.lightGray new Color (192, 192, 192)

Color.darkGray new Color (64, 64, 64)

Page 53: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.7 AppletWindow2.java Code// This code produces an empty, pink panel.// Note if you try to add a second panel to this JFrame, then you won't see them both unless you// specify what region of the default BorderLayout you are adding the panel to.

import java.awt.Color;import java.awt.Graphics;import javax.swing.*;

public class AppletWindow2 extends JApplet{

public void init(){

resize(800, 600);}

public void paint(Graphics g){

super.paint(g);g.setColor(Color.pink);g.fillRect(0, 0, 800, 600);

}}

53

Page 54: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.7 Customized ColorsYou can construct a customized color if the color you need is not one of the

Color constants seen on the previous slide.

You can construct a new Color object by using three int values between 0 and

255 with:Color aColor = new Color(redValue, greenValue, blueValue);

In this code, redValue, greenValue, blueValue must be integer values.

You would then use the code: g.setColor(aColor);

( don’t use Color.aColor in () )

Here is an actual example:

Color brown = new Color(164, 84, 30);

g.setColor(brown ); (don’t use Color.brown in () ) 54

Page 55: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

2.7 AppletWindow2.java Code Modified// This code produces an empty, midnight blue colored panel using the Color Constructor code.

import java.awt.Color;import java.awt.Graphics;import javax.swing.*;

public class AppletWindow2 extends JApplet{

public void init(){

resize(800, 600);}

public void paint(Graphics g){

super.paint(g); Color myColor = new Color (51, 0, 153);

g.setColor(myColor);g.fillRect(0, 0, 800, 600);

}}

55

Page 56: Chapter 2 Data Types, Input, and Output Section 1 - Java Data Types Section 2 - Declaring and Initializing Variables Section 3 - Arithmetic Operators

Now we’re ready to start the

GeometryApplet program.

Information about the

Java Coordinate System and

the Individual Drawing and Painting

Commands are Contained in a

Separate Online Presentation named

Java Graphics56