Java Fundamentals Part-2 2-1
2-2 Integer Division Division can be tricky. In a Java program, what is the value of 1/2? You might think the answer is 0.5… But, that’s wrong. The answer is simply 0. Integer division will truncate any decimal remainder.
2-3 Operator Precedence Mathematical expressions can be very complex. There is a set order in which arithmetic operations will be carried out. OperatorAssociativityExampleResult - (unary negation) Right to left x = ; * / % Left to right x = % 3 * ; Left to right x = – * 3; 23 Higher Priority Lower Priority
2-4 Grouping with Parenthesis When parenthesis are used in an expression, the inner most parenthesis are processed first. If two sets of parenthesis are at the same level, they are processed left to right. x = ((4*5) / (5-2) ) – 25; // result =
2-5 Combined Assignment Operators Java has some combined assignment operators. These operators allow the programmer to perform an arithmetic operation and assignment with a single operator. Although not required, these operators are popular since they shorten simple equations.
2-6 Combined Assignment Operators OperatorExampleEquivalentValue of variable after operation += x += 5;x = x + 5; The old value of x plus 5. -= y -= 2;y = y – 2; The old value of y minus 2 *= z *= 10;z = z * 10; The old value of z times 10 /= a /= b;a = a / b; The old value of a divided by b. %= c %= 3;c = c % 3; The remainder of the division of the old value of c divided by 3.
2-7 Creating Constants Many programs have data that does not need to be changed. Littering programs with literal values can make the program hard do read and maintain. Replacing literal values with constants remedies this problem. Constants allow the programmer to use a name rather than a value throughout the program. Constants also give a singular point for changing those values when needed.
2-8 Creating Constants Constants keep the program organized and easier to maintain. Constants are identifiers that can hold only a single value. Constants are declared using the keyword final. Constants need not be initialized when declared; however, they must be initialized before they are used or a compiler error will be generated.
2-9 Creating Constants Once initialized with a value, constants cannot be changed programmatically. By convention, constants are all upper case and words are separated by the underscore character. final int CAL_SALES_TAX = 0.725;
2-10 The String Class Java has no primitive data type that holds a series of characters. The String class from the Java standard library is used for this purpose. In order to be useful, the a variable must be created to reference a String object. String number; Notice the S in String is upper case. By convention, class names should always begin with an upper case character.
2-11 Primitive vs. Reference Variables Primitive variables actually contain the value that they have been assigned. number = 25; The value 25 will be stored in the memory location associated with the variable number. Objects are not stored in variables, however. Objects are referenced by variables.
2-12 Primitive vs. Reference Variables When a variable references an object, it contains the memory address of the object’s location. Then it is said that the variable references the object. String cityName = "Charleston "; Charleston Address to the object cityName The object that contains the character string “Charleston”
2-13 String Objects A variable can be assigned a String literal. String value = “Hello”; Strings are the only objects that can be created in this way. A variable can be created using the new keyword. String value = new String(“Hello”); This is the method that all other objects must use when they are created. See example: StringDemo.javaStringDemo.java
2-14 The String Methods Since String is a class, objects that are instances of it have methods. One of those methods is the length method. stringSize = value.length(); This statement runs the length method on the object pointed to by the value variable. See example: StringLength.javaStringLength.java
2-15 String Methods The String class contains many methods that help with the manipulation of String objects. String objects are immutable, meaning that they cannot be changed. Many of the methods of a String object can create new versions of the object. See example: StringMethods.javaStringMethods.java
2-16 Scope Scope refers to the part of a program that has access to a variable’s contents. Variables declared inside a method (like the main method) are called local variables. Local variables’ scope begins at the declaration of the variable and ends at the end of the method in which it was declared. See example: Scope.java (This program contains an intentional error.)Scope.java
2-17 Commenting Code Java provides three methods for commenting code. Comment Style Description // 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.
2-18 Commenting Code Javadoc comments can be built into HTML documentation. See example: Comment3.javaComment3.java To create the documentation: – Run the javadoc program with the source file as an argument – Ex: javadoc Comment3.java The javadoc program will create index.html and several other documentation files in the same directory as the input file.
2-19 Commenting Code Example index.html:index.html
2-20 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 See example: Compact.javaCompact.java
2-21 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. Tab characters should be avoided. – Tabs can vary in size between applications and devices. – Most programming text editors allow the user to replace the tab with spaces. See example: Readable.javaReadable.java
2-22 The Scanner Class To read input from the keyboard we can use the Scanner class. The Scanner class is defined in java.util, so we will use the following statement at the top of our programs: import java.util.Scanner;
2-23 The Scanner Class Scanner objects work with System.in To create a Scanner object: Scanner keyboard = new Scanner (System.in); Scanner class methods are listed in Table in the text. See example: Payroll.javaPayroll.java
2-24 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.
2-25 The JOptionPane Class 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.
2-26 The JOptionPane Class The JOptionPane class provides methods to display each type of dialog box.
2-27 Message Dialogs JOptionPane.showMessageDialog method is used to display a message dialog. JOptionPane.showMessageDialog(null, "Hello World"); The first argument will be discussed in Chapter 7. The second argument is the message that is to be displayed.
2-28 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.
2-29 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.
2-30 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.
2-31 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.
2-32 Converting a String to a Number The JOptionPane ’s showInputDialog method always returns the user's input as a String A String containing a number, such as “127.89, can be converted to a numeric data type.
2-33 The Parse Methods Each of the numeric wrapper classes, (covered in Chapter 10) has a method that converts a string to a number. – The Integer class has a method that converts a string to an int, – The Double class has a method that converts a string to a double, and – etc. These methods are known as parse methods because their names begin with the word “parse.”
2-34 The Parse Methods // Store 1 in bVar. byte bVar = Byte.parseByte("1"); // Store 2599 in iVar. int iVar = Integer.parseInt("2599"); // Store 10 in sVar. short sVar = Short.parseShort("10"); // Store in lVar. long lVar = Long.parseLong("15908"); // Store 12.3 in fVar. float fVar = Float.parseFloat("12.3"); // Store in dVar. double dVar = Double.parseDouble("7945.6");
2-35 Reading an Integer with an Input Dialog int number; String str; str = JOptionPane.showInputDialog( "Enter a number."); number = Integer.parseInt(str);
2-36 Reading a double with an Input Dialog double price; String str; str = JOptionPane.showInputDialog( "Enter the retail price."); price = Double.parseDouble(str); See example: PayrollDialog.javaPayrollDialog.java