Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
CIS 260: App Dev I Objects and Reference Variables Predefined Java classes you have used: String—for defining and manipulating strings Integer—for defining and manipulating integers Double—for defining and manipulating _________. Primitive integers and Integer objects int aNumber = 78; • aNumber is a variable of the __________ data type int • aNumber is a variable (a memory location, say, 2500) that actually holds the value 78 Integer aNumber = new Integer(78); • aNumber is a __________ variable (a memory location) that stores the memory location where the value 78 is stored • aNumber is called an _________ of the Integer class or 2 an Integer _________ The Operator new Integer aNumber = new Integer(78); The operator _____ does the following: Assigns the memory location for the integer 78 Stores 78 in that memory location Stores the address of that memory location in the reference variable (object) called aNumber aNumber is an _______ of the Integer class Integer aNumber = new Integer(50); creates a new object called aNumber, but aNumber points to a different address Java’s automatic _______ collector will remove the 78 eventually, or you can use 3 System.gc(); Predefined Classes and Methods A ________ is a set of instructions designed to accomplish a specific task. The method main() runs automatically. Java has many _________ that contain classes that contain methods (all are predefined). How to call the pow() method in the class Math: result = Math.pow(2,3); // result is 8 = 2 to the 3rd power // the 2 and 3 are called arguments ____ notation is used to access class members. 4 The class String In Java, a string is not a variable, but an _____. The following two statements are equivalent: String name = “Lisa Johnson”; name = new String(“Lisa Johnson”); name is actually a reference variable that contains the address of the String ________. A string contains ___ or more characters enclosed in double quotes. The ________ of the first character in a string is 0, of the second character is 1, and so on. 5 Methods in the class String The method substring() is a member of the class String. Using String name = “Lisa Johnson”; : name.substring(0,4) yields _______ name.substring(5,12) yields “Johnson” name.indexOf(‘J’) yields ___ name.charAt(4) yields ‘ ’ name.equals(“Lisa Johnson”) yields true name.equals(“Luke Johnson”) yields ______ name.length() yields ____ name.replace('i','e') yields “Lesa Johnson” The String object name has access to the String methods using the ____ operator. 6 Input/Output You can input data into a Java program using a simple GUI (____________ user interface). The class JOptionPane has the method showInputDialog() and is used as follows: name = JOptionPane.showInputDialog(“Enter your name”); A message can be displayed to the user using the showMessageDialog() method: JOptionPane.showMessageDialog(null,“Hello World!”,”Greetings”,JOptionPane.PLAIN_MESSAGE); 7 More Input/Output The class JOptionPane is in the package javax.swing, which must be imported. A program that uses a GUI must end with the statement System.exit(0) to terminate the GUI “________”. It is better to create an output string within the program, then use that string in the GUI. JOptionPane.showMessageDialog(null, outputString, guiTitle, JOptionPane.INFORMATION_MESSAGE); 8 Tokenizing a String A string can be broken up into parts called ________ using the class StringTokenizer, which is in the package java.util. Example: StringTokenizer tokenizer = new StringTokenizer(“Richard Johnson”); String firstName = tokenizer.nextToken(); String lastName = tokenizer.nextToken(); The above example will store “Richard” in firstName and “Johnson” in lastName. 9 Formatting Output The class DecimalFormat can format numbers to a specific number of decimal places. The following statement creates the DecimalFormat object: DecimalFormat twoDecimal = new DecimalFormat("0.00"); The following statement uses the DecimalFormat object: formattedNumber = twoDecimal.format(number); If number contains 38.987 then formattedNumber contains ________ (rounding is performed) 10 File Input/Output It is often more efficient to get input from and send output to a file on a disk (instead of using the keyboard or ________). A file is an area in __________ storage that holds information. To input data from a file use the class FileReader. To output data to a file use the classes FileWriter and PrintWriter (in the package _________). 11 More on File Input This statement creates a FileReader object associated with a specific file on a disk, then reads an entire line of data from the file, storing the line of data in a BufferedReader object. BufferedReader inFile = new BufferedReader(new FileReader(“a:\\prog.dat”)); If the line contains different data segments, use StringTokenizer to break it up and store data in __________. 12 Writing to a File First, create a __________ object and associate it with the destination file. Then, create a ___________ object using the FileWriter object. This can be done in a single statement: PrintWriter outFile = new PrintWriter(new FileWriter(“a:\\prog.out”); You write data to the file with a statement outFile.println(“The paycheck is: $” + pay); like You _______ the file with outFile.close(); If the output file doesn’t exist, Java will create it. 13 If it does exist, Java will overwrite it. /* * Chapter3Examples.java * Created by Richard Johnson * 9/15/04 * Demonstrates topics in Chapter 3 of Malik and Nair */ import import import import javax.swing.*; // for GUIs java.util.*; // for tokenizing java.text.*; // for formatting java.io.*; // for input/output public class Chapter3Examples { public static void main (String[] args) throws IOException, FileNotFoundException { System.out.println("Welcome to the Chapter 3 Examples\n\n"); // demonstrate simple GUIs String name = JOptionPane.showInputDialog("Enter your first and last name only:"); String message = "Thank you " + name; JOptionPane.showMessageDialog(null,message,"Greetings",JOptionPane.PLAIN_MESSAGE); // demonstrate tokenizing StringTokenizer tokenizer = new StringTokenizer(name); String firstName = tokenizer.nextToken(); // get first token in string String lastName = tokenizer.nextToken(); // get next token in string System.out.println("Your name is: " + firstName + " " + lastName); // demonstrate formatting double firstNumber = 38.9023; DecimalFormat twoDecimal = new DecimalFormat("0.00"); System.out.println(twoDecimal.format("$" + firstNumber)); // demonstrate file PrintWriter outFile outFile.println("My outFile.close(); // output = new PrintWriter(new FileWriter("prog.out")); name is: " + lastName + ", " + firstName); close the file // demonstrate file input BufferedReader inFile = new BufferedReader(new FileReader("prog.out")); StringTokenizer aTokenizer = new StringTokenizer(inFile.readLine()); String junk1 = aTokenizer.nextToken(); // gets the text 'My' String junk2 = aTokenizer.nextToken(); // gets the text 'name' String junk3 = aTokenizer.nextToken(); // gets the text 'is:' String nameLastWithComma = aTokenizer.nextToken(); // gets name w/ comma String nameLast = nameLastWithComma.substring(0, nameLastWithComma.indexOf(",")); // gets name without comma String nameFirst = aTokenizer.nextToken(); System.out.println("My name is: " + nameFirst + " " + nameLast); System.out.println("\nEnd of program\n"); System.exit(0); // terminate GUI thread } }