To understand the essentials of objectoriented programming in Java To review the primitive data types of Java, how to use the control structures of Java To learn how to use predefined classes such as Math, JOptionPane, String, StringBuffer, and StringTokenizer To review how to write and document your own Java classes Appendix A: Introduction to Java 2 To understand how to use arrays in Java To learn how to perform I/O in Java using simple dialog windows To learn how to perform I/O in Java using streams Appendix A: Introduction to Java 3 Appendix A: Introduction to Java 4 The class is the fundamental programming unit Every program is written as a collection of classes Class definitions are stored in separate files with the extension .java and the file name must be the same as the class name A class is a named description for a group of entities A class is a general description of a group of entities that all have the same characteristics; each entity is an object Appendix A: Introduction to Java 5 Java consists of small core language augmented by an extensive collection of packages Each package contains a collection of related Java classes, such as: ◦ Swing ◦ AWT ◦ util Appendix A: Introduction to Java 6 Template for Class Definition Import Statements Class Comment class { Class Name Data Members Methods (incl. Constructor) } Java distinguishes two kinds of entities ◦ Primitive types: data is stored in primitive type variables ◦ Objects: are associated with reference variables which store an object’s address Appendix A: Introduction to Java 8 Represent numbers, characters, and Boolean values Integers: byte, short, int, and long Real numbers: float and double Characters: char Appendix A: Introduction to Java 9 9 70 O For example, character 'O' is 79 (row value 70 + col value 9 = 79). Format: <data type> <variable_name>; If more than one variable has the same data type: <data type> <name1>, <name2>..; <variable name> = <expression>; Example: x =2*5+6-1; It must be a legal identifier. It must not be a keyword, a boolean literal (true or false), or the reserved word null. It must be unique within its scope. Legal identifier:be composed of letters, numbers, _ and $. Identifiers may only begin with a letter, _, or $. Keyword: http://java.sun.com/docs/books/tutorial/java/ nutsandbolts/_keywords.html Java styles: ◦ Variable names begin with a lowercase letter ◦ Class names begin with an uppercase letter Which of the following is not a valid Java identifier? a. my Value b. $_AAA1 c. width d. m_x Appendix A: Introduction to Java 15 Which of the following is not a valid Java identifier? a. my Value b. $_AAA1 c. width d. m_x Appendix A: Introduction to Java 16 Which of the following is a correct variable declaration statement? a. int x - float y; b. int x: float y; c. int x,y; d. Long int x; Appendix A: Introduction to Java 17 Which of the following is a correct variable declaration statement? a. int x - float y; b. int x: float y; c. int x,y; d. Long int x; Appendix A: Introduction to Java 18 Constant: ◦ Value it contains doesn’t change final int MONTHS_IN_YEAR = 12; Variables: ◦ Value it contains may vary double loanAmount; loanAmount =0; loanAmount = 1000.99; Integer division: ◦ Integer/integer = integer, 7/2 = 3 ◦ Integer/double = double, 7/2.0 = 3.5 ◦ Double/integer = double, 7.0/2 = 3.5 Type casting: a process that converts a value of one data type to another data type. Implicit casting Explicit casting Implicit casting: ◦ Operand is converted from a lower to a higher precision ◦ Higher precision: a data type with a larger range of values Double has a higher precision than float Int has a higher precision than short ◦ Operand: can be a constant, variable, method call or another arithmetic expression Explicit casting ◦ (<data type>) <expression> ◦ Example: float result; result = (float) ((3+5)/6); and result = ((float) (5+3))/6; Widening conversion: operations involving mixed-type operands, the numeric type of the smaller range is converted to the numeric type of the larger range In an assignment operation, a numeric type of smaller range can be assigned to a numeric type of larger range Appendix A: Introduction to Java 23 Control Statements: Simple Choice Statement if (<boolean expression>) <block>; else <block>; if (<boolean expression>) single statement; else single statement; Boolean expression: is a conditional expression that is evaluated to either true or false. Conditional expression: is a three part expression: <exp.> <relational operators> <exp.> Boolean expressions can be combined by boolean operators Relational Operators a a a a a a Expression == b != b > b < b >= b <= b Meaning Is a equal to b? Is a not equal to b? Is a greater than b? Is a less than b? Is a greater than or equal to b? Is a less than or equal to b? Boolean operators && || ! means means means AND OR NOT How many times the method readData() will be called in the following code segnment? int i; i = 0; while ( i <= 4 ) { readData(); i = i + 1; } // end while 5 Appendix A: Introduction to Java 28 . can be used to traverse a twodimensional array. a. A do while statement. b. A for statement. c. Two nested for statements. d. Three nested for statements. Appendix A: Introduction to Java 29 . can be used to traverse a twodimensional array. a. A do while statement. b. A for statement. c. Two nested for statements. d. Three nested for statements. Appendix A: Introduction to Java 30 while(<boolean expression>){ // Repeat multiple statements. statement 1 statement 2 statement 3 ... } The Do-While Loop do { // Repeat multiple statements. statement 1 statement 2 statement 3 ... } while(<boolean expression); •Note that the statements in the body of the loop are always executed at least one. •Note the final semicolon, which is required. // Repeat multiple statements. for(initialization; condition; post-body update){ // Statements to be repeated. statement 1 statement 2 statement 3 ... } •Commonly used with increment and decrement operators. Used as a shorthand for add-one-to and subtract-one-from: value = value+1; value += 1; value++; Prefix and postfix forms: ++value; --value; value--; <modifiers> <data type> <name> ; Modifiers Data Type private String Name ownerName ; Note: There’s only one modifier in this example. <modifier> <return type> <method name> ( <parameters> ){ <statements> } Modifier public Return Type void Method Name setOwnerName ownerName = name; } ( Parameter String name Statements ) { A constructor is a special method that is executed when a new instance of the class is created. public <class name> ( <parameters> ){ <statements> } Modifier public Class Name Bicycle Parameter ( ) { ownerName = “Unassigned”; } Statements An argument is a value we pass to a method. A parameter is a placeholder in the called method to hold the value of the passed argument. class Sample { class Account { public static void main(String[] arg) { . . . public void add(double amt) { Account acct = new Account(); . . . } acct.add(400); . . . . . . } } . . . } argument balance = balance + amt; An argument is a value we pass to a method. A parameter is a placeholder in the called method to hold the value of the passed argument. class Sample { class Account { public static void main(String[] arg) { . . . public void add(double amt) { Account acct = new Account(); . . . } } acct.add(400); . . . . . . } parameter balance = balance + amt; . . . } You can declare reference variables that reference objects of specified types Two reference variables can reference the same object The new operator creates an instance of a class A constructor executes when a new object is created Appendix A: Introduction to Java 40 Programmers use methods to define a group of statements that perform a particular operation The modifier static indicates a static or class method A method that is not static is an instance method All method arguments are call-by-value If the argument is a primitive type, its value is passed to the method ◦ The method can’t modify the argument value and have the modification remain after return from the method Appendix A: Introduction to Java 41 If the argument is of a class type, the value of the reference variable is passed, not the value of the object itself Reference variables point to the object and any modification to the object will remain after return from the method Appendix A: Introduction to Java 42 Consider the following Java statements: int x = 9; double y = 5.3; result = calculateValue( x, y ); Which of the following statements is false? a. A method is called with its name and arguments inside parentheses. b. x and y are parameters. c. Copies of x and y are passed to the method calculateValue(). d. x and y are arguments Appendix A: Introduction to Java 43 Consider the following Java statements: int x = 9; double y = 5.3; result = calculateValue( x, y ); Which of the following statements is false? a. A method is called with its name and arguments inside parentheses. b. x and y are parameters. c. Copies of x and y are passed to the method calculateValue(). d. x and y are arguments Appendix A: Introduction to Java 44 Provides a collection of methods that are useful for performing common mathematical operations Appendix A: Introduction to Java 45 An escape sequence is a sequence of two characters beginning with the character \ Represents characters or symbols that have a special meaning in Java Appendix A: Introduction to Java 46 String class defines a data type that is used to store a sequence of characters You cannot modify a String object ◦ If you attempt to do so, Java will create a new object that contains the modified character sequence Appendix A: Introduction to Java 47 You can’t use the relational operators or equality operators to compare the values stored in strings or other objects Appendix A: Introduction to Java 48 We can do this because String objects are immutable. Stores character sequences Unlike a String object, the contents of a StringBuffer object can be changed 50 Consider the Java segment: String line1 = new String( "c = 1 + 2 + 3" ) ; StringTokenizer tok = new StringTokenizer( line1 ); int count = tok.countTokens(); What is the value of count ? 7 Appendix A: Introduction to Java 51 Consider the Java segment: String line1 = new String( "c = 1 + 2 + 3" ) ; StringTokenizer tok = new StringTokenizer( line1, delimArg ); For the String line1 to have 4 tokens, delimArg should be: a. String delimArg = "+="; b. String delimArg = "123" c. String delimArg = "c+"; d. String delimArg = " "; 52 Consider the Java segment: String line1 = new String( "c = 1 + 2 + 3" ) ; StringTokenizer tok = new StringTokenizer( line1, delimArg ); For the String line1 to have 4 tokens, delimArg should be: a. String delimArg = "+="; b. String delimArg = "123" c. String delimArg = "c+"; d. String delimArg = " "; 53 We often need to process individual pieces, or tokens, in a string Appendix A: Introduction to Java 54 Sometimes we need to process primitive-type data as objects Java provides a set of classes called wrapper classes whose objects contain primitive-type values: Float, Double, Integer, Boolean, Character, etc. Appendix A: Introduction to Java 55 Unified Modeling Language is often used to represent a class ◦ Standard means of documenting class relationships widely used in industry Appendix A: Introduction to Java 56 The modifier private sets the visibility of each variable or constant to private visibility ◦ These data fields can be accessed only within the class definition Only class members with public visibility can be accessed outside of the class Constructors initialize the data fields within a class Appendix A: Introduction to Java 57 In Java, an array is also an object The elements are indexes and are referenced using a subscripted variable of the form arrayname[subscript] Appendix A: Introduction to Java 58 A programmer must do the following before using an array: a. declare then reference the array. b. create then declare the array. c. create then reference the array. d. declare then create the array. Appendix A: Introduction to Java 59 A programmer must do the following before using an array: a. declare then reference the array. b. create then declare the array. c. create then reference the array. d. declare then create the array. Appendix A: Introduction to Java 60 Appendix A: Introduction to Java 61 A dialog window always returns a reference to a string Therefore, a conversion is required Appendix A: Introduction to Java 62 An input stream is a sequence of characters representing program data An output stream is a sequence of characters representing program output The console keyboard stream is System.in or Scanner The console window is associated with System.out.print(ln) or Formatter Appendix A: Introduction to Java 63