590 likes | 754 Views
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
E N 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
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
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 );
Integer Division • Dividing an integer by an integer gives an integer the remainder is ignored • Examples: • 5/4 is 1 • 17/3 is 5
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
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
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
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;
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
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
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
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
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;
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
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.
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 largest float long int short byte smallest 2.7 Conversion between Primitive Data Types
Widening conversion • Example 1: • double x; • int y = 10; • x = y; • Example 2: • int x; • short y =2; • x= y;
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;
Cast operator • Used to convert from one primitive data type to another • Must be used for narrowing conversions
Example: int pies = 10, people = 4; double piesPerPerson; • piesPerPerson = pies /people; • piesPerPerson =(double) pies/people; • piesPerPerson =pies/(double) people; • piesPerPerson=(double)(pies/people); (double)(10/4) = (double)(2) = 2.0 because it is an integer division 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
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
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
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;
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 ;
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 );
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();
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);
String methods myText.length returns 15 because there are 15 characters myText.charAt(8) returns m because m is the letter at position 8
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!!”
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!!”
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);
Scope • The variable scope is the part of the program that has access to it public class Scope { public static void main(String[] args) { System.out.println(value); // ERROR! int value = 100; } }
Scope public class Scope{ public static void main(String[] args){ int number = 100; System.out.println(number); int number = 200; //ERROR } }
Comments • Java provides three methods for commenting code.
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
Programming Style public 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 !!!
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
Programming Style /** 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."); } }
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 JOptionPaneclass. • 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.
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.
Dialog Boxes The JOptionPane class provides static methods to display each type of dialog box.
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.
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.
Input Dialogs String 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.
NamesDialog.java import 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? ");
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? ");
Example // Display a greeting JOptionPane.showMessageDialog(null, "Hello " +firstName + " " +middleName +" " + lastName); System.exit(0); } }