Lecture 3 Variables Primitive Data Types calculations & arithmetic operators Readings: Chapter 2  2003 Prentice Hall, Inc.

Download Report

Transcript Lecture 3 Variables Primitive Data Types calculations & arithmetic operators Readings: Chapter 2  2003 Prentice Hall, Inc.

Lecture 3 Variables Primitive Data Types

calculations & arithmetic operators Readings: Chapter 2

 2003 Prentice Hall, Inc. All rights reserved.

1

Review

• What’s wrong with this line of code?

system.out.println ("He said "Hello"");

• What’s wrong with this program?

public class Welcome1 { // main method begins execution of Java application public static void main( String args[] ) System.out.println( "Welcome to Java" ) } // end method main } // end class Welcome1

 2003 Prentice Hall, Inc. All rights reserved.

2

Variables Primitive Data Types and mathematical Operations

• Introduce Programming with an Example • Identifiers, Variables, and Constants • Primitive Data Types – byte, short, int, long, float, double, char, Boolean • Expressions • Mathematical Operators • Syntax Errors, Runtime Errors, and Logic Errors 3  2003 Prentice Hall, Inc. All rights reserved.

• Key words • Identifiers • Style • Errors

Lets review

 2003 Prentice Hall, Inc. All rights reserved.

4

Reserved words: Certain words have special meaning in Java and cannot be used as identifiers. These words are called reserved words. So far we have seen the following reserved words: int public import static void class We will see a complete list of reserved words soon.

Use of the words null, true and false is also prohibited.

 2003 Prentice Hall, Inc. All rights reserved.

5

Lets review Identifiers

• An identifier is a sequence of characters that consist of letters, digits, underscores (_), and dollar signs ($).

• An identifier must start with: – a letter – an underscore (_) – or a dollar sign ($). • It cannot start with a digit.

• An identifier cannot be a reserved word . – (See Appendix A, “Java Keywords,” for a list of reserved words).

• An identifier cannot be true , false , or null .

• An identifier can be of any length.

6  2003 Prentice Hall, Inc. All rights reserved.

Programming Style and Documentation

• Appropriate Comments • Naming Conventions • Proper Indentation and Spacing Lines • Block Styles

7  2003 Prentice Hall, Inc. All rights reserved.

Appropriate Comments

Include a comment program: – – – – at the beginning of the to explain what the program does its key features its supporting data structures and any unique techniques it uses.

• Include your name • • class section instruction • date • and a brief description at the beginning of the program.

 2003 Prentice Hall, Inc. All rights reserved.

8

Proper Indentation and Spacing

• Indentation – Indent 3 spaces.

• Spacing – Use blank line to separate segments of the code.

9  2003 Prentice Hall, Inc. All rights reserved.

Block Styles

Use end-of-line style for braces.

Next-line style

public class Test { public static void main(String[] args) { System.out.println("Block Styles"); } } public class Test { public static void main(String[] args) { } System.out.println("Block Styles"); }  2003 Prentice Hall, Inc. All rights reserved.

End-of-line style

10

Programming Errors

• Syntax Errors – Detected by the compiler • Runtime Errors – Causes the program to abort (when you divide a number by 0) • Logic Errors – Produces incorrect result 11  2003 Prentice Hall, Inc. All rights reserved.

12

Syntax Errors

• Caused when the compiler cannot recognize a statement.

• These are violations of the language • The compiler normally issues an error message to help the programmer locate and fix it • Also called

compile errors compile-time errors .

or

public class SyntaxErrors { public static void main(String[] args) { i = 30; System.out.println(i + 4) } }

• For example, if you forget a semi-colon, you will get a syntax error.

 2003 Prentice Hall, Inc. All rights reserved.

13

Run-time Errors

• Other major kind of error you’ll see • Happens when a program is running • The compiler cannot identify these errors at compile time.

public class RuntimeErrors { Public static main(String[] args) { void int i = 1 / 0; } } • Will talk more about these later  2003 Prentice Hall, Inc. All rights reserved.

Logic Errors

• Logic Errors – Produces incorrect result public class LogicalErrors { Public static void main(String[] args) { double average = 80.0 + 90.0 / 2; } } This program produces in correct answer of 90.0/2 + 80.0 = 45 + 80.0 = 125.0

Answer should be (80.0 + 90.0)/2 170.0/2 = 85.0

 2003 Prentice Hall, Inc. All rights reserved.

14

Naming Conventions choosing identifiers for variables and classes names

• Choose meaningful and descriptive names.

• For Variables, class names and methods: – Use lowercase. – If the name consists of several words, concatenate all in one, use lowercase for the first word, and capitalize the first letter of each subsequent word in the name. – For example, the variables radius method computeArea . and area , and the 15  2003 Prentice Hall, Inc. All rights reserved.

Naming Conventions, cont.

• Class names: – Capitalize the first letter of each word in the name. – For example, the class name ComputeArea .

• Constants: – Capitalize all letters in constants. – For example, the constant PI .

 2003 Prentice Hall, Inc. All rights reserved.

16

 2003 Prentice Hall, Inc. All rights reserved.

Variables

17

Memory Concepts

• Variable names correspond to locations in the computer’s primary memory.

• Every variable has: – a name – a type – and a value .

• When a value is placed in a memory location the value replaces the previous value in that location (called

destructive read-in

) • A variable’s value can just be used and not destroyed (called

non-destructive read-out )

 2003 Prentice Hall, Inc. All rights reserved.

18

Bucket Analogy

• It is useful to think of a variable as a bucket of data.

• The bucket has a unique name, and can only hold certain kinds of data.

balance is a variable containing the value 200, and can contain only integers.

200 balance Note: variables are not persistent. When you exit your program, the data is deleted. To create persistent data, you must store it to a file system.

 2003 Prentice Hall, Inc. All rights reserved.

19

• Visual Representation

sum = 0;

Memory Concepts

sum 0

number1

= 3; Number1 number2 3 2

number2

= 2; Sum = number1 + number2; What is the value of Sum after execution of the above statement?

sum  2003 Prentice Hall, Inc. All rights reserved.

?

20

Variable Declaration

• Before you use a variable, you must declare it. (Not all languages require this, but Java certainly does.) • Examples:

/* Creates an integer variable */ int number; /* Creates a double variable */ double price; /* Creates a string variable */ Sting name; /* Creates a character variable */ char letter;

Semi-colon  Data type

identifier

21

Declaring Variables

int x; double radius; // Declare radius to // be a double variable; char a; String name; // Declare x to be an // integer variable; // Declare a to be a // character variable; // String variable “Bano” 22  2003 Prentice Hall, Inc. All rights reserved.

Important Point about Declarations

• In Java you can declare variables at many different places in the program. They have different meaning and scope depending on where they are declared. For now, all our variables shall be declared at the beginning of a block of code within main().

public class Sample { public static void main(String args[]) { declare variables here { or inside a nested block } } // end method main } // end class Sample  2003 Prentice Hall, Inc. All rights reserved.

23

Good Programming Practices

    Choose meaningful variable names to make your program more readable. For example, use income , instead of num .

Stick to lower-case variable names. For example, use income soon.) , instead of INCOME . Variables that are all capitals usually indicate a constant (more on this Use proper case for all words after the first in a variable name. For example, instead of totalcommissions , use totalCommissions .

Avoid redefining identifiers previously defined in the Java API.

 2003 Prentice Hall, Inc. All rights reserved.

24

• DATA TYPE • integers: – the simplest data type in Java. – Used to

hold positive and negative whole numbers,

777, 1.

e.g. 5 , 25, • floats: – Used to hold fractional or decimal values , e.g. 3.14, 10.25.

• chars: ‘\n’ Used to hold individual characters, e.g. ‘c’, ‘e’, ‘1’, • We will explore each one in detail later this semester.

• String :

holds one or more character

, e.g.

“Dream Girls”, “NYU ROCKS!”, “C”

 2003 Prentice Hall, Inc. All rights reserved.

25

Declaring and Initializing in One Step

• int x = 1; • double d = 1.4; • float f = 1.4; Is this statement correct?

 2003 Prentice Hall, Inc. All rights reserved.

26

Numerical Data Types

Whole numbers: • byte 8 bits • short 16 bits • int 32 bits • long 64 bits

Floating point or Decimal numbers:

float

double 32 bits 64 bits

 2003 Prentice Hall, Inc. All rights reserved.

27

Assignment Statements

x = 1; // Assign 1 to x; radius = 1.0; // Assign 1.0 to radius; a = 'A'; // Assign 'A' to a; 28  2003 Prentice Hall, Inc. All rights reserved.

Arithmetic

Op era tor(s) % * / + -

Fig. 2.17

Op era tion(s) Ord er of eva lua tion (p rec ed enc e) Multiplication Division Remainder Addition Subtraction Evaluated first. If there are several of this type of operator, they are evaluated from left to right. Evaluated next. If there are several of this type of operator, they are evaluated from left to right. Prec ed enc e of a rithm etic op era tors. 29  2003 Prentice Hall, Inc. All rights reserved.

Arithmetic

• Arithmetic calculations used in most programs – Usage • * for multiplication • / for division • + , • No operator for exponentiation • Integer division truncates remainder 7 / 5 evaluates to 1 5 / 2 yields an integer 2.

5.0 / 2 yields a double value 2.5

5 % 2 yields 1 (the remainder of the division) – Remainder operator % returns the remainder 7 % 5 evaluates to 2  2003 Prentice Hall, Inc. All rights reserved.

30

Arithmetic

• Operator precedence – Some arithmetic operators act before others (i.e., multiplication before addition) • Use parenthesis when needed – Example: Find the average of three variables • Do not use: a + b + c / 3 • Use: ( a + b + c ) / 3 a , b and c – Follows

PEMDAS

• Parentheses, Exponents, Multiplication, Division, Addition, Subtraction 31  2003 Prentice Hall, Inc. All rights reserved.

Important Point about Declarations

• You must make a declaration immediately following the left brace following the main method.

– at the beginning of a function and before any executable statements or else you get a syntax error.

{ declaration section … statement section … } 32  2003 Prentice Hall, Inc. All rights reserved.

Example 1: Basic Arithmetic

/* Illustrates Integer Variables */ public class addition { } public static void main(String[] args) { int x, y, z; // Specify values of x and y

Data Type

x = 2;

Variable Declaration Variable Names Assignment Statements

y = 3; // add x and y and place the result in z variable z = x + y; System.out.println("x has a value of " + x); System.out.println("y has a value of " + y); System.out.println("The sum of x + y is " + z); System.exit(0); }

 2003 Prentice Hall, Inc. All rights reserved.

33

Printing Variables

• • • • • To print a variable, use the System.out.print or System.out.println statement as you would for a string.

System.out.print (x); System.out.println (x); System.out.println ("x: " + x);

Here the “addition” that is performed is string concatenation.  2003 Prentice Hall, Inc. All rights reserved.

34

Assignment Statements

• Assignments statements enable one to initialize variables or perform basic arithmetic.

x = 2; y = 3; z = x + y; • Here, we simply initialize x and y and store their sum within the variable z.

35  2003 Prentice Hall, Inc. All rights reserved.

Assignment Operator

• • =

Read the assignment operator as “ “EQUALS!” GETS ” not

• This is an assignment of what’s on the right side of = to a variable on the left • eg sum = integer1 + integer2; – Read this as, “sum gets integer1 + integer2” – integer1 and integer2 are added together and stored in sum 36  2003 Prentice Hall, Inc. All rights reserved.

Displaying Text in a Dialog Box

• Display – Most Java applications use windows or a dialog box • We have used command window – Class JOptionPane allows us to use dialog boxes • Packages – Set of predefined classes for us to use – Groups of related classes called

packages

• Group of all packages known as Java class library or Java applications programming interface (Java API) – JOptionPane is in the javax.swing

package • Package has classes for using Graphical User Interfaces (GUIs) 37  2003 Prentice Hall, Inc. All rights reserved.

Displaying Text in a Dialog Box

• Upcoming program – Application that uses dialog boxes – Explanation will come afterwards – Demonstrate another way to display output – Packages, methods and GUI 38  2003 Prentice Hall, Inc. All rights reserved.

1 1 // Fig. 2.6: Welcome4.java

2 2 // Printing multiple lines in a dialog box 3 4 3 import javax.swing.JOptionPane; // import class JOptionPane 5 4

import javax.swing.JOptionPane;

6 7 5

Welcome4 { // program uses JOptionPane

public static void main( String args] ) 8 6 9 7 10 11 8 {

public static void main( String args[] ) {

JOptionPane.showMessageDialog( 12 9 13 14

null , "Welcome\nto\nJava\nProgramming!" );

16 12 17 }

} // end method main

18 19

} // end class Welcome4 Outline 39 Welcome4.java

1.

import

declaration 2. Class

Welcome4

2.1

main

2.2

showMessageDial og

2.3

System.exit

Program Output

 2003 Prentice Hall, Inc.

All rights reserved.

Displaying Text in a Dialog Box

– Lines 1-2: comments as before

4

// Java packages – Two groups of packages in Java API – Core packages • Begin with java • Included with Java 2 Software Development Kit – Extension packages • Begin with javax • New Java packages

5

import javax.swing.JOptionPane; // program uses OptionPane – import declarations • Used by compiler to identify and locate classes used in Java programs • Tells compiler to load class JOptionPane javax.swing

package from  2003 Prentice Hall, Inc. All rights reserved.

40

2.4

Displaying Text in a Dialog Box

– Lines 6-11: Blank line, begin class Welcome4 and main

12 13

JOptionPane.showMessageDialog( null , "Welcome\nto\nJava\nProgramming!" ); – Call method showMessageDialog JOptionPane of class • Requires two arguments • Multiple arguments separated by commas ( , ) • For now, first argument always

null

• Second argument is string to display – showMessageDialog is a static JOptionPane method of class • static methods called using class name, dot ( .

) then method name  2003 Prentice Hall, Inc. All rights reserved.

41

2.4

Displaying Text in a Dialog Box

– All statements end with ; • A single statement can span multiple lines • Cannot split statement in middle of identifier or string – Executing lines 12 and 13 displays the dialog box 42 • Automatically includes an

OK

button – Hides or dismisses dialog box • Title bar has string

Message

 2003 Prentice Hall, Inc. All rights reserved.

Displaying Text in a Dialog Box

15

System.exit( 0 ); // terminate application with window – Calls static method exit of class System • Terminates application – Use with any application displaying a GUI • Because method is static , needs class name and dot ( .

) • Identifiers starting with capital letters usually class names – Argument of 0 means application ended successfully • Non-zero usually means an error occurred – Class System part of package java.lang

• No import declaration needed • java.lang

automatically imported in every Java program – Lines 17-19: Braces to end Welcome4 and main  2003 Prentice Hall, Inc. All rights reserved.

43

Another Java Application: Adding Integers

• Upcoming program – Use input dialogs to input two values from user – Use message dialog to display sum of the two values 44  2003 Prentice Hall, Inc. All rights reserved.

1 // Addition.java

2 // Addition program that displays the sum of two numbers.

3 4 // Java packages 5 import 6 javax.swing.JOptionPane; // program uses JOptionPane 7 public class Addition { 8 9 Declare variables: name and type.

1.

Outline Addition.java

import 45 10 public static void 11 { 12 13 14 main( String args[] ) String firstNumber; // first string entered by user String secondNumber; // second string entered by user 15 16 17 18 int int int number1; // first number to add number2; sum; Input first integer as a to firstNumber .

String , assign 19 20 21 22 23 24 25 // read in first number from user as a String firstNumber = JOptionPane.showInputDialog( "Enter first integer" ); // read in second number from user as a String secondNumber =

2. class

Addition

2.1 Declare variables (name and type) 3.

showInputDialog

4.

parseInt

5. Add numbers, put result in

JOptionPane.showInputDialog( Convert strings to integers.

sum 26 27 28 29 Add, place result in number1 = Integer.parseInt( firstNumber ); number2 = Integer.parseInt( secondNumber ); 30 // add numbers 31 sum = number1 + number2; 32 sum .

 2003 Prentice Hall, Inc.

All rights reserved.

33 // display result 34 35 JOptionPane.showMessageDialog( "Results" , null , "The sum is " JOptionPane.PLAIN_MESSAGE

+ sum, ); 36 37 38 39 System.exit( 0 ); } // end method main 40 41 } // end class Addition // terminate application with window Outline

Program output

46  2003 Prentice Hall, Inc.

All rights reserved.

2.5

Another Java Application: Adding Integers

5

import javax.swing.JOptionPane; // program uses JOptionPane – Location of JOptionPane for use in the program

7

public class Addition { – Begins public class Addition • Recall that file name must be Addition.java

– Lines 10-11: main

12 13

String firstNumber; // first string entered by user String secondNumber; // second string entered by user – Declaration • firstNumber and secondNumber are variables 47  2003 Prentice Hall, Inc. All rights reserved.

12 13

2.5

Another Java Application: Adding Integers

String firstNumber; // first string entered by user String secondNumber; // second string entered by user – Variables • Location in memory that stores a value – Declare with name and type before use • firstNumber and secondNumber (package java.lang

) are of type String – Hold strings • Variable name: any valid identifier • Declarations end with semicolons ;

String firstNumber, secondNumber;

– Can declare multiple variables of the same type at a time – Use comma separated list – Can add comments to describe purpose of variables  2003 Prentice Hall, Inc. All rights reserved.

48

15 16 17

2.5

Another Java Application: Adding Integers

int int int number1; // first number to add number2; // second number to add sum; // sum of number1 and number2 – Declares variables number1 , number2 , and sum int of type • int holds integer values (whole numbers): i.e., 0 , -4 , 97 • Types float and double can hold decimal numbers • Type char can hold a single character: i.e., x, $, \n, 7 • Primitive types - more in Chapter 4 49  2003 Prentice Hall, Inc. All rights reserved.

20

2.5

Another Java Application: Adding Integers

firstNumber = JOptionPane.showInputDialog( "Enter first integer" );

– Reads String from the user, representing the first number to be added • Method JOptionPane.showInputDialog

displays the following: 50 • Message called a prompt - directs user to perform an action • Argument appears as prompt text • If wrong type of data entered (non-integer) or click

Cancel

, error occurs  2003 Prentice Hall, Inc. All rights reserved.

20

Another Java Application: Adding Integers

firstNumber = JOptionPane.showInputDialog( "Enter first integer" );

– Result of call to firstNumber showInputDialog given to using assignment operator = • Assignment statement • = binary operator - takes two operands – Expression on right evaluated and assigned to variable on left • Read as: firstNumber gets value of JOptionPane.showInputDialog( "Enter first integer" ) 51  2003 Prentice Hall, Inc. All rights reserved.

23 24

Another Java Application: Adding Integers

secondNumber = JOptionPane.showInputDialog( "Enter second integer" ); – Similar to previous statement • Assigns variable secondNumber to second integer input

27 28

number1 = Integer.parseInt( firstNumber ); number2 = Integer.parseInt( secondNumber ); – Method Integer.parseInt

• Converts String argument into an integer (type int ) – Class Integer in java.lang

• Integer returned by Integer.parseInt

is assigned to variable number1 (line 27) – Remember that number1 was declared as type int • Line 28 similar  2003 Prentice Hall, Inc. All rights reserved.

52

31

Another Java Application: Adding Integers

sum = number1 + number2;

– Assignment statement • Calculates sum of number1 and number2 (right hand side) • Uses assignment operator = to assign result to variable sum • Read as: sum gets the value of number1 + number2 • number1 and number2 are operands 53  2003 Prentice Hall, Inc. All rights reserved.

Another Java Application: Adding Integers

34 35

JOptionPane.showMessageDialog( null , "The sum is " "Results" , JOptionPane.PLAIN_MESSAGE

+ sum, ); – Use showMessageDialog to display results – "The sum is " + sum • Uses the operator + to "add" the string literal "The sum is" and sum • Concatenation of a String and another type – Results in a new string • If sum contains 117 , then "The sum is " + sum the new string "The sum is 117" results in • Note the space in "The sum is " • More on strings in Chapter 11 54  2003 Prentice Hall, Inc. All rights reserved.

Another Java Application: Adding Integers

34 35

JOptionPane.showMessageDialog( null , "The sum is " "Results" , JOptionPane.PLAIN_MESSAGE

+ sum, ); – Different version of showMessageDialog • Requires four arguments (instead of two as before) • First argument: null for now • Second: string to display • Third: string in title bar • Fourth: type of message dialog with icon – Line 35 no icon: JOptionPane.PLAIN_MESSAGE

55  2003 Prentice Hall, Inc. All rights reserved.

Another Java Application: Adding Integers

Me ssa g e d ia lo g typ e Ic o n De sc rip tio n JOptionPane.ERROR_MESSAGE Displays a dialog that indicates an error to the user. JOptionPane.INFORMATION_MESSAGE Displays a dialog with an informational message to the user. The user can simply dismiss the dialog. JOptionPane.WARNING_MESSAGE Displays a dialog that warns the user of a potential problem. JOptionPane.QUESTION_MESSAGE Displays a dialog that poses a question to the user. This dialog normally requires a response, such as clicking on a

Yes

or a

No

button. JOptionPane.PLAIN_MESSAGE no icon Displays a dialog that simply contains a message, with no icon.

Fig. 2.12

JOptionPane c o nsta nts fo r m e ssa g e d ia lo g s. 56  2003 Prentice Hall, Inc. All rights reserved.