YOMEDIA
ADSENSE
giáo trình Java By Example phần 10
103
lượt xem 28
download
lượt xem 28
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Tham khảo tài liệu 'giáo trình java by example phần 10', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: giáo trình Java By Example phần 10
- Instructs the interpreter to run the compiler on files that -checksource are not up to date. -classpath path Determines the path in which the compiler looks for classes. Same as -checksource. -cs Instructs the interpreter to set a property value. -D Runs the debugger along with the application. -debug Displays the commands you can use with the interpreter. -help Specifies the amount of memory allocated at startup. -ms x Specifies the maximum amount of memory that can be -mx x allocated for the session. Tells Java not to use asynchronous garbage collection. -noasyncgc Tells the interpreter not to verify code. -noverify Specifies the maximum stack size for Java code. -oss x Specifies the maximum stack size for C code. -ss x Specifies that the interpreter should display status -v information as it works. Same as -v. -verbose Specifies that the garbage collector should display status -verbosegc information as it works. Tells the interpreter to verify all Java code. -verify Tells the interpreter to verify code loaded by a classloader. -verifyremote This option is the default. As you can see, the interpreter can accept quite a few command-line options. Of these options, though, only a few are used frequently. You'll get a look at those more useful options in the sections that follow. Keeping Files Up to Date When you're working on a new application, you'll make frequent changes to the source code. Whenever you change the source code, you must recompile the program before you run it. Otherwise, you'll be running an old version of the program. When you start writing larger applications, you'll have many files for the classes that are used in the program. As you change the contents of these files, you may lose track of which files need to be recompiled. This is where the interpreter's -checksource command-line option comes into play. The -checksource option tells the interpreter to compare the dates and times of your source-code files with the dates and times of the matching .CLASS files. When a source-code file is newer than the matching .CLASS file, the interpreter automatically runs the compiler to bring the files up to date. You use the -checksource option like this: http://www.ngohaianh.info
- java -checksource appname Here, appname is the name of the class you want the interpreter to run. NOTE When running a standalone application, any arguments that you place after the name of the file to execute are passed to the application's main() method. For more information on handling these application arguments, please refer to Chapter 32, "Writing Java Applications." Setting the Class Path In order to run a standalone application, the interpreter usually needs to load class files that are used by the program. These files might be files that you've created for custom classes or they may be the class files that make up the class hierarchy of the class you're executing. When you derive your applet from Java's Applet class, for example, the interpreter needs to load the Applet class, as well as Applet's superclasses, in order to run your application. Before the interpreter can access these class files, it has to know where they are. Normally, when you run a program, the interpreter finds classes using the current setting of your system's CLASSPATH variable, whose default value is the folder that contains Java's classes. Java will also look in the active folder (the one you're in when you type the java command line). However, you can change the setting of CLASSPATH temporarily for the current program run by using the -classpath option, like this: java -classpath path FileName In the preceding line, path is the path you want to include, each separated by a semicolon. For example, assuming that you installed Java in a folder called C:\JAVA and that your own classes are in the C:\CLASSES folder, the following line runs your program using the same settings the interpreter would use by default: java -classpath c:\java\lib\classes.zip;c:\classes FileName Notice that Java's classes are in a file called CLASSES.ZIP. You must include this file name in the path in order for the interpreter to find the classes it needs to successfully run your applet. http://www.ngohaianh.info
- Switching On Verbose Output When you run the Java interpreter with no command-line option, the compiler runs and performs its task without displaying information on the screen. Sometimes, though, you may want to know what files the interpreter is loading and where those files are being loaded from. You can make the interpreter report to you as it works by using the -verbose option, like this: java -verbose applet.java Example: Running an Application with Verbose Output To see what happens when you use the -verbose (or -v) command-line option, copy the SimpleApp.class file from the CHAP35 folder of this book's CD-ROM to your CLASSES folder. Then start an MS-DOS session and type the following command at the prompt: java -verbose SimpleApp When you press Enter, the interpreter runs, loading the application and displaying all the additional files it has to access in order to run the application. Figure 35.3 shows a portion of this output. Bet you didn't expect such a simple program could make the interpreter work so hard! Figure 35.3 : The -verbose option enables you to see what files are being loaded by the interpreter. TIP A special version of the Java interpreter can trace and display every command that's executed in your application. (You can find this tool in your JAVA\BIN folder, along with the other Java tools.) To invoke this special option, type java_g -t AppName at your system prompt. The AppName portion of the command is the name of the .CLASS file you want to run, without the file extension. Figure 35.4 shows a small portion of the output generated by this command. Even a small application results in many pages of trace information. Figure 35.4 : The java_g -t command displays every command executed in your application. Getting Help The Java interpreter has a long list of command, so you'll probably have a hard time remembering them all. Luckily, you can get a quick reminder of what the commands are and what they do. To get this information, type the following command: http://www.ngohaianh.info
- java -help When you do, you'll see the display shown in Figure 35.5. For more information than is displayed in the help listing, check this chapter or your online Java documentation. Figure 35.5 : The Java interpreter features a built-in help display. Summary When you are using a Java-compatible Web browser to view applets, you don't need to be concerned with the Java interpreter. The browser displays the applets for you automatically. However, if you want to run a standalone Java application, you must invoke the interpreter from your system's command line. The interpreter accepts over a dozen different command-line options, although only a few are regularly useful to novice and intermediate Java programmers. Review Questions 1. What happens if you fail to include the file extension when specifying your source-code file to the interpreter? 2. What extension do byte-code files-the files that the interpreter understands- have? 3. What are the two ways you can specify the verbose interpreter option? 4. When writing a Java application, what do you use first, the compiler or the interpreter? 5. How can you get a list of commands that the interpreter understands? 6. Why do you need to use an interpreter? 7. What does the -checksource command-line option do? Review Exercises 1. Run one of the applications from Chapter 32, instructing the interpreter to check whether the .CLASS file is up to date with the .java file. 2. Run an application with the verbose setting, and study the information the interpreter displays on the screen. http://www.ngohaianh.info
- Chapter 36 The Java Class Libraries CONTENTS The Packages q The java.lang Package q Data-Type Wrappers r Example: Using the Data-Type Wrappers r The System Class r Example: Getting System Properties r The Math Class r The String Class r Example: Using the String Class r The io Package q Example: Reading a File r The awt Package q Summary q Review Questions q Review Exercises q This book has given you a peek into the process of creating applets with Java. However, the key word is "peek" because Java is a huge development system that couldn't be fully covered in a book twice this size. For this reason, now that you have some Java programming experience under your belt, it's time to set off on your own to discover how much more you can do with Java. The first step in that journey is to explore the class libraries that come with Java. You'll discover all sorts of treasures there. To give you a nudge in the right direction, this final chapter provides a brief overview of Java's most important class libraries. However, you should take it upon yourself to explore the latest documentation available from Sun at their Web site, as well as to peruse Java's source code. The language and its classes are changing constantly, so you have to make an effort to keep up. http://www.ngohaianh.info
- The Packages The Java class libraries are divided into two groups. The first group is the Java packages, which include the libraries for the Java programming language. These packages include the following: q java.lang q java.util q java.io The second group is called the HotJava packages and includes the libraries needed to create applets and to communicate over the Internet. The HotJava packages include the following: q java.awt q java.applet q java.net In this chapter, you'll get a brief look at some of these packages and the classes they contain. The java.lang Package Although you may not been aware of it, you've been using the lang package since the beginning of this book. That's because this is the one package that Java automatically imports into every program. Without the lang package, you wouldn't be able to write Java programs, because this package contains the libraries that make Java what it is. Table 36.1 is a list of the commonly used classes included in the lang package. Table 36.1 Commonly Used Classes in the java.lang Package. Class Description Represents the boolean data type. Boolean Represents the char data type. Character Represents the double data type. Double Represents the float data type. Float Represents the int data type. Integer Represents the long data type. Long Contains methods that implement mathematical functions. Math The superclass for all number-related classes, such as Float Number and Integer. The root of the entire class library. All Java classes can trace Object their ancestry back to Object. Represents text strings. String StringBuffer Represents a string buffer that can grow dynamically. Contains methods for performing system-level function calls. System http://www.ngohaianh.info
- The superclass from which thread objects are derived. Thread Of these classes, the ones that are most useful to you at this time are the data-type wrappers-Boolean, Character, Double, Float, Integer, Long-, as well as String, Math, System, and Thread. The following sections provide general descriptions and usage tips for these classes-except for Thread, which you learned about in Chapter 31, "Threads." NOTE The java.lang package also includes the Runnable interface, which is used to convert classes into threads. For more information on this topic, see Chapter 31, "Threads." Data-Type Wrappers The data-type wrapper classes enable you to perform various operations on values in your programs. For example, in previous programs in this book, you've used the Integer.parseInt() method to convert strings containing digits to integer values, like this: int value = Integer.parseInt(str); Often, you can call static methods of the class, like parseInt(), to perform an operation on a value. But, you can also create objects of the class and operate directly on that object's value. To give you some idea of what you can do with the wrapper classes, table 36.2 lists the methods of the Integer class. Table 36.2 Methods of the Integer Class. Method Description One of the class's constructors. Integer(int) One of the class's constructors. Integer(String) Returns the integer as a double value. doubleValue() Compares the integer to another object. equals(Object) Returns the integer as a float value. floatValue() Gets a property of an integer. getInteger() Returns a hashcode for the integer. hashCode() Returns the integer as an int value. intValue() Returns the integer as a long value. longValue() Converts a string to an int value. parseInt(String, int) Converts a string to an int value. parseInt(String) Converts an integer to a string. toString(int, int) Converts an integer to a string. toString(int) http://www.ngohaianh.info
- Converts an integer to a string. toString() Creates an Integer object from a string. valueOf(String, int) Creates an Integer object from a string. valueOf(String) Example: Using the Data-Type Wrappers Suppose that you need an integer data field in a class, but you want to be able to use all of the Integer class's methods in order to manipulate that value. First, you declare an object of the Integer class and then call the class's constructor. Then, you can access the class's methods, as shown in Listing 36.1. Figure 36.1 shows the applet running under Appletviewer. Figure 36.1 : This is IntApplet running under Appletviewer. Listing 36.1 IntApplet.java: Using the Integer Class. import java.awt.*; import java.applet.*; public class IntApplet extends Applet { public void paint(Graphics g) { Integer value = new Integer(125); long longValue = value.longValue(); float floatValue = value.floatValue(); String str = value.toString() + " "+ String.valueOf(longValue) + " "+ http://www.ngohaianh.info
- String.valueOf(floatValue); g.drawString(str, 50, 75); } } Tell Java that the applet uses the classes in the awt package. Tell Java that the applet uses the classes in the applet package. Derive the IntApplet class from Java's Applet. Override the paint() method. Create an Integer object with a value of 125. Convert the integer to long and float values. Create a display string and display it. The System Class The System class enables you to make system-level function calls to do things like perform simple I/O, get the current time, handle directories, copy arrays, get environment variables, get information about memory, and so on. You would use the class's I/O methods, for example, in a standalone applet in order to display text on the screen. Table 36.3 lists the more useful of the System class's methods and their descriptions. NOTE In addition to its many methods, the System class also defines standard input and output streams that you can use in your programs. For example, when you call the println() method, you're using an output stream. Table 36.3 The Most Useful Methods of the System Class. Method Description Copies an array. arraycopy() Gets the current time in milliseconds. CurrentTimeMillis() Ends the program. ex0it(int) Returns the current system properties. GetProperties() Returns a specific property. GetProperty() Loads a dynamic library. load() Set the system properties. setProperties() http://www.ngohaianh.info
- Example: Getting System Properties Frequently, it's handy to know something about the system on which your application is running. That's why the System class makes it easy for you to find this information. Listing 36.2, for example, is a stand-alone application that displays Java's version, Java's class path, the OS name, and the OS version. Figure 36.2 shows the output from the program. Figure 36.2 : The SystemApp application displays system properties Listing 36.2 SystemApp.java: An Application That Displays SystemInformation. public class SystemApp { public static void main(String args[]) { System.out.println(""); System.out.println("------------------------------"); String str = "Java Version: " + System.getProperty("java.version"); System.out.println(str); str = "Java Class Path: " + System.getProperty("java.class.path"); System.out.println(str); str = "OS Name: " + http://www.ngohaianh.info
- System.getProperty("os.name"); System.out.println(str); str = "OS Version: " + System.getProperty("os.version"); System.out.println(str); System.out.println("------------------------------"); } } Declare the SystemApp. Define the main() method. Display blank and dashed lines. Get and display the Java version number. Get and display Java's class path setting. Get and display the OS name. Get and display the OS version number. Display an ending dashed line. NOTE The System class's getProperty() method accepts a string identifier for the property you want. The strings you can use are file.separator, java.class.path, java.class.version, java.home, java.vendor, java.vendor.url, java.version, line.separator, os.arch, os.name, os.version, path.separator, user.dir, user.home, and user.name. The Math Class If you need to do a lot of mathematical work in your applets and applications, you'll be glad to have the Math class at your disposal. Using the Math class, you can perform many types of calculations just by calling the appropriate methods. Table 36.4 lists the Math class's methods and their descriptions: Table 36.4 Methods of the Math Class. http://www.ngohaianh.info
- Method Description Returns the absolute value of a given number. abs() Returns the arc cosine of a value. Acos() Returns the arc sine of a value. asin() Returns the arc tangent of a value. atan() Converts rectangular coordinates to polar coordinates. atan2() Returns the smallest whole number greater than or equal to ceil() the given value. Returns the cosine of an angle. cos() Returns the largest whole number less than or equal to the floor() given value. IEEEremainder() Returns the remainder of a floating-point division. Returns the natural log of a value. log() Returns the greater of two values. max() Returns the smaller of two values. min() Returns a random number between 0.0 and 1.0. random() Rounds a floating-point or double number. round() Returns the sine of an angle. sin() Returns the square root of a value. sqrt() Returns the tangent of an angle. tan() To call any of the math methods, reference them through the Math class, like this: Math.Method() For example, to get the square root of 10, you use this line: double result = Math.sqrt(10); The String Class You're no stranger to the String class. You've used it in a number of programs in order to store and manipulate text strings. However, because this class is so useful to a programmer, you'll take a closer look at it here. As you'll see, the String class is powerful, enabling you to manipulate strings in more ways than you may have realized. Table 36.5 shows the most commonly used methods of the String class. http://www.ngohaianh.info
- Table 36.5 Methods of the String Class. Method Description Returns the character at the given string index. charAt() Compares a string to another string. compareTo() Joins two strings. concat() Copies a character array to a string. copyValueOf() Checks a string for the given suffix. endsWith() Compares a string to another object. equals() equalsIgnoreCase() Compares a string to another object with no regard for upper- or lowercase. Copies selected characters from a string to a byte getBytes() array. Copies selected characters from a string to a character getChars() array. Returns a string's hashcode. hashCode() Finds the index of the first occurrence of a given indexOf() character or substring in a string. Finds the index of the last occurrence of a given lastIndexOf() character or substring in a string. Returns the length of a string. length() Compares a portion of a string to a portion of another regionMatches() string. Replaces all occurrences of a given character with a replace() new character. Checks a string for the given prefix. startsWith() Returns a substring of a string. substring() Converts a string to a character array. toCharArray() Converts all characters in the string to lowercase. toLowerCase() Converts all characters in the string to uppercase. toUpperCase() Removes whitespace characters from the beginning trim() and end of a string. Returns a string representation of an object. valueOf() http://www.ngohaianh.info
- Example: Using the String Class Listing 36.3 is an applet that shows you how a few of the String methods you haven't tried yet work. When you run the applet with Appletviewer, you see the window shown in Figure 36.3. The applet takes whatever text strings you type in the two text boxes, and compares them for equality without considering upper- or lowercase. It then concatenates the strings and displays the new concatenated string along with its length. Figure 36.3 : This is StringApplet running under Appletviewer. Listing 36.3 StringApplet.java: An Applet That Manipulates Strings. import java.awt.*; import java.applet.*; public class StringApplet extends Applet { TextField textField1; TextField textField2; public void init() { textField1 = new TextField(20); textField2 = new TextField(20); textField1.setText("STRING"); textField2.setText("String"); http://www.ngohaianh.info
- add(textField1); add(textField2); } public void paint(Graphics g) { String str1 = textField1.getText(); String str2 = textField2.getText(); boolean equal = str1.equalsIgnoreCase(str2); if (equal) g.drawString("The strings are equal.", 70, 100); else g.drawString("The strings are not equal.", 70, 100); String newStr = str1.concat(str2); g.drawString("JOINED STRINGS:", 70, 130); g.drawString(newStr, 80, 150); g.drawString("STRING LENGTH:", 70, 180); int length = newStr.length(); String s = String.valueOf(length); http://www.ngohaianh.info
- g.drawString(s, 80, 200); } public boolean action(Event evt, Object arg) { repaint(); return true; } } Tell Java that the application uses the awt package. Tell Java that the application uses the applet package. Derive the StringApp class from Applet. Declare the class's data fields. Override the init() method. Create two TextField controls. Set the controls' contents. Add the controls to the applet's layout. Override the paint() method. Get the contents of the two text boxes. Compare the two strings. Display the appropriate message about the strings' equality. Concatenate the two strings. Display the joined strings. Get and display the new string's length. Override the action() method. Force Java to repaint the applet. Tell Java that the action was handled okay. The io Package Although Java applets are extremely limited in their I/O abilities, Java applications are free to create, load, and save files just like any other application. All of Java's file-handling abilities are housed in the io package. This package includes many classes that enable you to handle files and other types of input and output streams. Table 33.6 lists the more commonly used of these classes and their descriptions: http://www.ngohaianh.info
- Table 36.6 Commonly Used Classes in the io Package. Class Description An input stream that buffers data. BufferedInputStream An output stream that buffers data. BufferedOutputStream An input stream for reading primitive Java data DataInputStream types. An output stream for writing primitive Java DataOutputStream data types. Represents a file. File An input stream associated with a file. FileInputStream An output stream associated with a file. FileOutputStream The superclass from which input classes are InputStream derived. The superclass from which output classes are OutputStream derived. An output stream that can be used for printing. PrintStream An input stream that enables a program to PushbackInputStream return read values back into the stream. Represents random-access files. RandomAccessFile StringBufferInputStream An input stream whose data source is a string. Example: Reading a File There are many ways to read files using Java's I/O classes. The most basic, however, is to read a file byte-by-byte. Suppose, for example, you wanted to display on the screen the source code in the file test.java. Listing 33.4 shows such an application. Although this example is very basic, it demonstrates how to use one of Java's I/O classes, FileInputStream. Creating a file using an output stream isn't much different; you just need to create an output stream object and write, rather than read, data. Figure 36.4 shows FileApp's output. Figure 36.4 : The FileApp application reads and displays a text file. Listing 36.4 FileApp.java: An Application That Reads a File. import java.io.*; public class FileApp http://www.ngohaianh.info
- { public static void main(String args[]) { System.out.println(""); System.out.println("------------------------------"); System.out.println(""); try { FileInputStream inputStream = new FileInputStream("test.java"); String str = ""; int b = 0; while(b != -1) { b = inputStream.read(); str += (char)b; } inputStream.close(); System.out.println(str); http://www.ngohaianh.info
- } catch (FileNotFoundException e) { System.out.println("File not found!"); } catch (IOException e) { System.out.println("I/O Error!"); } System.out.println("------------------------------"); } } Tell Java that the application uses the io package. Declare the FileApp class Define the main() method. Display blank and dashed lines. Create a FileInputStream object. Initialize the input variable and buffer. Loop until the last byte in the file is read. Read a byte from the input stream. Add the byte as a character to the string buffer. Close the input stream. Display the data read from the stream. Catch any exceptions and print error messages. Display the bottom dashed line. http://www.ngohaianh.info
- The awt Package You're already familiar with the awt package, which contains the classes you need to create and run applets in windowed environments. The awt package contain the Graphics class that you used to create displays for your applets, and all the control classes you used throughout the book to handle user interactions with applets. The awt package even has the classes for handling events and creating windows with menus. You've already explored much of the awt library, but for your reference table 36.7 lists the package's classes and their descriptions. Feel free to explore any of the classes with which you're not familiar. Table 36.7 Classes of the AWT Package. Class Description One of Java's layout managers. BorderLayout Represents button controls. Button Represents a surface on which a program can draw. Canvas One of Java's layout managers. CardLayout Represents a checkbox control. Checkbox Represents a group of check boxes used as "radio CheckboxGroup buttons." A menu entry that can be checked. CheckboxMenuItem A type of pop-up menu. Choice Represents color values in Java programs. Color The superclass from which all Java components are Component derived. Represents an object that can hold Java components. Container A dialog-box type of window. Dialog Represents the width and height of an object. Dimension Represents various system and user events. Event A dialog box for selecting files. FileDialog One of Java's layout managers. FlowLayout Represents a character style. Font The attributes of a font. FontMetrics A main window that can contain a menu and other Frame window controls. Contains methods for drawing various shapes and Graphics controllong graphical attributes like color, fonts, clipping rectangles, etc. GridBagConstraints Used in conjunction with GridBagLayout managers. http://www.ngohaianh.info
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn