chapter 2: java fundamentals cont’d

59
Chapter 2: Java Fundamentals cont’d

Upload: aldis

Post on 17-Mar-2016

56 views

Category:

Documents


0 download

DESCRIPTION

Chapter 2: Java Fundamentals cont’d. Outline. 2.1 The Parts of a Java Program 2.2 The print and println Methods, and the Java Standard Class Library 2.3 Variables and Literals 2.4 Primitive Data Types 2.5 Arithmetic Operators 2.6 Combined Assignment Operators - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 2: Java Fundamentals cont’d

Chapter 2: Java Fundamentals cont’d

Page 2: Chapter 2: Java Fundamentals cont’d

Outline 2.1 The Parts of a Java Program 2.2 The print and println Methods, and the Java Standard Class

Library 2.3 Variables and Literals 2.4 Primitive Data Types 2.5 Arithmetic Operators 2.6 Combined Assignment Operators 2.7 Conversion Between Primitive Types 2.8 Creating Named Constants with final 2.9 The String Class 2.10 Scope 2.11 Comments 2.12 Programming Style 2.13 Reading Keyboard Input 2.14 Dialog Boxes 2.15 Common Errors to Avoid

Page 3: Chapter 2: Java Fundamentals cont’d

The % operator Returns the remainder of the division Examples;

4%5 is 4 30%6 is 0 22%7 is 1 3205%100 is 5 3205%10 is 5

Page 4: Chapter 2: Java Fundamentals cont’d

Exercise Write the following in a Java file:

double amount = 137/5; System.out.println(“Amount is : “ +

amount ); amount = 137.0/5; System.out.println(“Amount is : “ +

amount );

Page 5: Chapter 2: Java Fundamentals cont’d

Integer Division Dividing an integer by an integer

gives an integer the remainder is ignored

Examples: 5/4 is 1 17/3 is 5

Page 6: Chapter 2: Java Fundamentals cont’d

Operator Precedence What is the result of: Polynomial = 1+2*3+ 6/2 -2; Is it ?

(1+2)*3 + 6/(2-2) 1+(2*3) +(6/2)-2 (1+2)*3 + (6/2)-2

Page 7: Chapter 2: Java Fundamentals cont’d

Precedence Rules Always evaluate * , / and % before +

and – Always negate before any calculations *, / and % have same precedence + and – have same precedence If equal precedence then evaluate

from left to right except for negations where we evaluate from right to left

Page 8: Chapter 2: Java Fundamentals cont’d

Precedence examples Polynomial = 1+2*3+ 6/2 – 2;

Polynomial has the value of 1+6+3-2=8 Polynomial = –1 + 5 – 2; // 2 Polynomial = –(–3) + –(–5); //8

Page 9: Chapter 2: Java Fundamentals cont’d

Grouping with parentheses You can use parentheses to force the

evaluation of a formula Examples:

x * ( y + z*z ) instead of x*y + z*z x * ( y * ( z + 165 ) + 85 ) – 65 Average = (a +b +c ) /3;

Page 10: Chapter 2: Java Fundamentals cont’d

The Math class value = Math.pow( x,y); // now value

holds x to the power of y value = Math.sqrt( x); //now value

holds the square root of x

Page 11: Chapter 2: Java Fundamentals cont’d

Combined Assignment Operators+= x += 1; x = x + 1;

–= x –= 1; x = x – 1;

*= x *= 1; x = x * 1;

/= x /= 1; x = x / 1;

%= x %= 1; x = x % 1;

Page 12: Chapter 2: Java Fundamentals cont’d

Operator Precedence What is the result of: Polynomial = 1+2*3+ 6/2 -2; Is it ?

(1+2)*3 + 6/(2-2) 1+(2*3) +(6/2)-2 (1+2)*3 + (6/2)-2

Page 13: Chapter 2: Java Fundamentals cont’d

Precedence Rules Always evaluate * , / and % before +

and – Always negate before any calculations *, / and % have same precedence + and – have same precedence If equal precedence then evaluate

from left to right except for negations where we evaluate from right to left

Page 14: Chapter 2: Java Fundamentals cont’d

Precedence examples Polynomial = 1+2*3+ 6/2 – 2;

Polynomial has the value of 1+6+3-2=8 Polynomial = –1 + 5 – 2; // 2 Polynomial = –(–3) + –(–5); //8

Page 15: Chapter 2: Java Fundamentals cont’d

Grouping with parentheses You can use parentheses to force the

evaluation of a formula Examples:

x * ( y + z*z ) instead of x*y + z*z x * ( y * ( z + 165 ) + 85 ) – 65 Average = (a +b +c ) /3;

Page 16: Chapter 2: Java Fundamentals cont’d

The Math class value = Math.pow( x,y); // now value

holds x to the power of y value = Math.sqrt( x); //now value

holds the square root of x

Page 17: Chapter 2: Java Fundamentals cont’d

Combined Assignment Operators+= x += 1; x = x + 1;

–= x –= 1; x = x – 1;

*= x *= 1; x = x * 1;

/= x /= 1; x = x / 1;

%= x %= 1; x = x % 1;

Page 18: Chapter 2: Java Fundamentals cont’d

2.7 Conversion between Primitive Data Types Before a value is stored in a variable,

Java checks the Data Type of the value and the variable

If the data types are compatible then Java performs the conversion automatically No Error

If the data types are not compatible then Java issues an error.

Page 19: Chapter 2: Java Fundamentals cont’d

2.7 Conversion between Primitive Data Types A widening

conversion is the conversion of a small value to a larger one

A narrowing conversion is the conversion of a large value to a smaller one

double largestfloatlongintshortbyte smallest

Page 20: Chapter 2: Java Fundamentals cont’d

Widening conversion Example 1:

double x; int y = 10; x = y;

Example 2: int x; short y =2; x= y;

Page 21: Chapter 2: Java Fundamentals cont’d

Narrowing Conversion We have to perform casting i.e. the

name of the smaller data type is put in parentheses in front of the value

Example: int number; double pi = 3.14; number = (int) pi;

Page 22: Chapter 2: Java Fundamentals cont’d

Cast operator Used to convert from one primitive

data type to another Must be used for narrowing

conversions

Page 23: Chapter 2: Java Fundamentals cont’d

int pies = 10, people = 4;double piesPerPerson;

piesPerPerson = pies /people; piesPerPerson =(double) pies/people; piesPerPerson =pies/(double) people; piesPerPerson=(double)(pies/people);

Example:

10/4 = 2 because it is an integer division 10.0/4 = 2.5 because one of the numbers

is a double 10/4.0 = 2.5 because people is double

(double)(10/4) = (double)(2) = 2.0because it is an integer division

Page 24: Chapter 2: Java Fundamentals cont’d

Mixed Integer Operations The result of an arithmetic operation that

involves only byte, short, or int variables is always an int even if both variables are of data type short or byte

Example: short x =5, y =7; short z = x+y; // this statement gives an error short z = (short) ( x+y ); //correct

Page 25: Chapter 2: Java Fundamentals cont’d

Mixed Integer Operations If one of the operator’s operands is a

double then the result of the operation is a double

If one of the operator’s operands is a float then the result of the operation is a float

If one of the operator’s operands is a long then the result of the operation is a long

Page 26: Chapter 2: Java Fundamentals cont’d

Creating named constants with final A named constant is a variable whose

value is read-only and cannot be changed

To create a named constant add the word final to declaration

An initialization value is required when declaring a constant

Example: final double INTEREST_RATE = 0.069;

Page 27: Chapter 2: Java Fundamentals cont’d

More about named constants When naming a constant, the variable

name should be written in all uppercase characters.

Math.PI is a constant that holds the value of pi ( i.e. 3.14159 …)

Math.PI is already declared and initialized so it ready to use. Example:

double area = Math.PI * radius * radius ;

Page 28: Chapter 2: Java Fundamentals cont’d

The String class A String literal is any text enclosed in

quotations A String is the DataType of a variable

that can store String literals Example of a String variable:

String name = “CS 0007”; System.out.println( name );

Page 29: Chapter 2: Java Fundamentals cont’d

The String class To determine how many letters are

stored in a String variable (name) use name.length(); Example: String mycourse = “CS 0007”; int number = mycourse.length();

Page 30: Chapter 2: Java Fundamentals cont’d

String methods charAt(index)

index is an integer and specifies the character position in the String

This method returns the character at the specified position

Example: char letter; String myText = “This is my Text”; letter = myText.charAt(8);

Page 31: Chapter 2: Java Fundamentals cont’d

String methods

T h i s i s m y T e x t0 1 2 3 4 5 6 7 8 9 1

011

12

13

14

myText.length returns 15 because there are 15 characters

myText.charAt(8) returns m because m is the letter at position 8

Page 32: Chapter 2: Java Fundamentals cont’d

String methods toLowerCase()

This method returns a new String that has all of the characters of the original String but in lowercase

Example: String bigName = “I am BIG!!”; String smallName =

bigName.toLowerCase(); // now smallName holds “i am big!!”

Page 33: Chapter 2: Java Fundamentals cont’d

String methods toUpperCase()

Same as toLowerCase() but it converts all the characters to uppercase

Example: String smallName = “I am Big!!”; String bigName =

smallName.toUpperCase(); // now bigName holds “I AM BIG!!”

Page 34: Chapter 2: Java Fundamentals cont’d

Example:String message = "Java is Great Fun!";String upper = message.toUpperCase();String lower = message.toLowerCase();char letter = message.charAt(2);int stringSize = message.length();System.out.println(message);System.out.println(upper);System.out.println(lower);System.out.println(letter);System.out.println(stringSize);

Page 35: Chapter 2: Java Fundamentals cont’d

Scope The variable scope is the part of the

program that has access to itpublic class Scope{ public static void main(String[] args) { System.out.println(value); // ERROR! int value = 100; }}

Page 36: Chapter 2: Java Fundamentals cont’d

Scopepublic class Scope { public static void main(String[] args){ int number = 100;

System.out.println(number);int number = 200; //ERROR}

}

Page 37: Chapter 2: Java Fundamentals cont’d

Comments Java provides three methods for

commenting code.// Single line comment. Anything after the // on the line will be

ignored by the compiler.

/* … */

Block comment. Everything beginning with /* and ending with the first */ will be ignored by the compiler. This comment type cannot be nested.

/** … */

Javadoc comment. This is a special version of the previous block comment that allows comments to be documented by the javadoc utility program. Everything beginning with the /** and ending with the first */ will be ignored by the compiler. This comment type cannot be nested.

Page 38: Chapter 2: Java Fundamentals cont’d

Programming Style Although Java has a strict syntax,

whitespace characters are ignored by the compiler.

The Java whitespace characters are: space tab newline carriage return form feed

Page 39: Chapter 2: Java Fundamentals cont’d

Programming Stylepublic class Compact {public static void

main(String[] args){int shares=220; double averagePrice=14.67; System.out.println("There were "+shares+" shares sold at $"+averagePrice+ " per share.");}}

Compiles !!!

Page 40: Chapter 2: Java Fundamentals cont’d

Indentation Programs should use proper

indentation. Each block of code should be

indented a few spaces from its surrounding block.

Two to four spaces are sufficient

Page 41: Chapter 2: Java Fundamentals cont’d

/** This example is much more readable than Compact.java.*/public class Readable{ public static void main(String[] args) { int shares = 220; double averagePrice = 14.67;

System.out.println("There were " + shares + " shares sold at $" + averagePrice + " per share."); }}

Programming Style

Page 42: Chapter 2: Java Fundamentals cont’d

Dialog Boxes A dialog box is a small graphical window

that displays a message to the user or requests input.

A variety of dialog boxes can be displayed using the JOptionPane class.

Two of the dialog boxes are: Message Dialog - a dialog box that displays a

message. Input Dialog - a dialog box that prompts the user

for input.

Page 43: Chapter 2: Java Fundamentals cont’d

Using the import Statement The JOptionPane class is not

automatically available to your Java programs.

The following statement must be before the program’s class header:import javax.swing.JOptionPane;

This statement tells the compiler where to find the JOptionPane class. 

Page 44: Chapter 2: Java Fundamentals cont’d

Dialog BoxesThe JOptionPane class provides static methods to display each type of dialog box.

Page 45: Chapter 2: Java Fundamentals cont’d

Message Dialogs JOptionPane.showMessageDialog

method is used to display a message dialog.JOptionPane.showMessageDialog(null,

"Hello World"); The second argument is the message

that is to be displayed.

Page 46: Chapter 2: Java Fundamentals cont’d

Input Dialogs An input dialog is a quick and simple

way to ask the user to enter data. The dialog displays a text field, an Ok

button and a Cancel button. If Ok is pressed, the dialog returns the

user’s input. If Cancel is pressed, the dialog

returns null.

Page 47: Chapter 2: Java Fundamentals cont’d

Input DialogsString name;name = JOptionPane.showInputDialog( "Enter your name.");

The argument passed to the method is the message to display.

If the user clicks on the OK button, name references the string entered by the user.

If the user clicks on the Cancel button, name references null.

Page 48: Chapter 2: Java Fundamentals cont’d

NamesDialog.javaimport javax.swing.JOptionPane;public class NamesDialog{ public static void main(String[] args) { String firstName; // The user's first name String middleName; // The user's middle name String lastName; // The user's last name // Get the user's first name firstName = JOptionPane.showInputDialog("What is " + "your first name? ");

Page 49: Chapter 2: Java Fundamentals cont’d

NamesDialog.java // Get the user's middle name. middleName = JOptionPane.showInputDialog(

"What is " + "your middle name? ");

// Get the user's last name. lastName =

JOptionPane.showInputDialog("What is " + "your last name? ");

Page 50: Chapter 2: Java Fundamentals cont’d

Example// Display a greeting JOptionPane.showMessageDialog(null,

"Hello " + firstName + " " +middleName + " " + lastName);

System.exit(0); }}

Page 51: Chapter 2: Java Fundamentals cont’d

The System.exit() Method A program that uses JOptionPane does

not automatically stop executing when the end of the main method is reached.

Java generates a thread, which is a process running in the computer, when a JOptionPane is created.

If the System.exit method is not called, this thread continues to execute.

Page 52: Chapter 2: Java Fundamentals cont’d

The System.exit() Method The System.exit method requires an

integer argument.System.exit(0);

This argument is an exit code that is passed back to the operating system.

This code is usually ignored, however, it can be used outside the program: to indicate whether the program ended

successfully or as the result of a failure. The value 0 traditionally indicates that the

program ended successfully.

Page 53: Chapter 2: Java Fundamentals cont’d

Converting a String to a Number The JOptionPane’s showInputDialog

method always returns the user's input as a String

String containing a number, such as “127.89, can be converted to a numeric data type.

Page 54: Chapter 2: Java Fundamentals cont’d

The Parse Methods Parse methods convert strings to

numeric data types They are:

Byte.parseByte Integer.parseInt Short.parseShort Long.parseLong Float.parseFloat Double.parseDouble

Page 55: Chapter 2: Java Fundamentals cont’d

The Parse Methods- Examples byte bVar = Byte.parseByte("1"); int iVar = Integer.parseInt("2599"); short sVar = Short.parseShort("10"); long lVar = Long.parseLong("15908"); float fVar = Float.parseFloat("12.3"); double dVar =

Double.parseDouble("7945.6");

Page 56: Chapter 2: Java Fundamentals cont’d

PayrollDialog.javaimport javax.swing.JOptionPane;

public class PayrollDialog{ public static void main(String[] args) { String inputString; // For reading input String name; // The user's name int hours; // The number of hours worked double payRate; // The user's hourly pay rate double grossPay; // The user's gross pay

Page 57: Chapter 2: Java Fundamentals cont’d

PayrollDialog.java// Get the user's name. name = JOptionPane.showInputDialog("What

is " + "your name? ");

// Get the hours worked. inputString = JOptionPane.showInputDialog( "How many hours” + “ did you work this week? "); // Convert the input to an int. hours = Integer.parseInt(inputString);

Page 58: Chapter 2: Java Fundamentals cont’d

PayrollDialog.java // Get the hourly pay rate. inputString = JOptionPane.showInputDialog("What is”

+ " your hourly pay rate? "); // Convert the input to a double. payRate =

Double.parseDouble(inputString); // Calculate the gross pay. grossPay = hours * payRate;

Page 59: Chapter 2: Java Fundamentals cont’d

PayrollDialog.java // Display the results. JOptionPane.showMessageDialog(null,

"Hello " + name + ". Your gross pay is $" + grossPay);

// End the program. System.exit(0); }}