Download A Comprehensive Introduc�on to Object-Oriented Programming with Java, 1e C. Thomas Wu (Sol and more Exams Object Oriented Programming in PDF only on Docsity!
A Comprehensive Introduction to Object-Oriented Programming with Java, 1e C. Thomas Wu (Solutions Manual All Chapters, 100% Original Verified, A+ Grade) All Chapters Solutions Manual Supplement files download link at the end of this file. Chapter 1 Solutions 1.1. Graphically represent a Vehicle class and three Vehicle objects named car1, car2, and car3. Vehicle carl: Vehicle car2:Vehicle car3: Vehicle 1.2 Graphically represent a Person class with the following components: + Instance variables name, age, and gender. + Instance methods setName, getName, and getAge. + Class method getAverageA ge. Person setName() name getAge() <_ age age getGender() gender <— gender getA verageA ge() <—— average age 1.3. Designa CD class where a CD object represents a single music CD. What kinds of information (artist, genre, total playing time, etc.) do you want to know about a CD? Among the information in which you are interested, which are instance variables? Are there any class variables or class constants? State Album Name instance variable Artist instance variable Genre instance variable Total Playing Time instance variable Maximum Playing Time class constant 1.6 1.7 Note: Value is already an instance variable in Vehicle since all vehicles have some value. Truck Class (subclass of Vehicle) registrationRate class constant loadingCapacity instance variable Consider a student registration program used by the registrar's office. The program keeps track of students who are registered for a given semester. For each student registered, the program maintains the student’s name, address, and phone number; the number of classes in which the student is enrolled and the student’s total credit hours. The program also keeps track of the total number of registered students. Define instance and class variables of a Student class that is suitable for this program. Instance variables name address phoneNumber numClasses ThisSemester totalCreditHours Class variables numStudentsRegistered Suppose the minimum and maximum number of courses for which a student can register are different depending on whether the student is a graduate, undergraduate, or work-study student. Redo Exercise 6 by defining classes for different types of students. Relate the classes using inheritance. Student See Exercise 1.6 GraduateStudent (subclass of Student) maximumHours class constant minimumHours class constant UndergraduateStudent (subclass of Student) maximumHours class constant minimumHours class constant WorkStudyStudent (subclass of Student) maximumHours class constant minimumHours class constant 1.8 Imagine you are given a task of designing an airline reservation system that keeps track of flights for a commuter airline. List the classes you think would be necessary for designing such a system. Describe the data values and methods you would associate with each class you identify. Note: For this exercise and Exercises 9 through 12, we are not expecting you to design the system in complete detail. The objective of these exercises is to give you a taste of thinking about a program at a very high level. Try to identify about a half dozen or so classes, and for each class, describe several methods and data members. Database Data Members Collection of clients Collection of flights Methods Accessors (get___()) and Mutators (set__()) for clients and flights’ Make reservation Add new flight Client Data Members Name Address Phone Collection of reservations BillingInformation Methods Accessors and Mutators for name, address, BillingInformation, and collection of reservations Add reservation Flight Data Members Departure city Arrival city Departure time Arrival time Seats available Aircraft type ’ Accessors and Mutators (also called gets and sets) allow other people to use your classes data members while allowing you to control just how they access them. This allows you to perform various activities like bounds checking (making sure the value set is not illegal, such as —6 for an age data member). This is part of the concept of encapsulation and is fundamental to the object-oriented paradigm. 1.10 Course Data Members Collection of Sections Title Code College Department Methods Add Section Remove Section Accessors and Mutators for all data members Section Data Members Maximum number of students Current number of students Section ID Methods Add Student Remove Student Accessors and Mutators for all data members Repeat Exercise 8, designing the state Department of Motor Vehicles registration system. The system keeps track of all licensed vehicles and drivers. How would you de: trucks) sign objects representing different types of vehicles (e.g., motorcycles and and drivers (e.g., class A for commercial licenses and class B for towing vehicles)? Vehicle Note: Data Members VIN Class type (A, B, etc.) Make Modei Year Registration fee Owner Methods Accessors and Mutators for all data members Could also implement with several subclasses of Vehicle, one for each class (car, commercial truck, livery, etc.) especially if each type required some specialized information. Driver Data Members License number Name Address Collection of Vehicles Collection of Violations Methods Add Vehicle/Violation Remove Vehicle/Violation Accessors and Mutators for all data members Violation Data Members Number Date Location Charge Officer Methods Accessors and Mutators for all data members 1.11 Repeat Exercise 8, designing a sales tracking system for a fast-food restaurant. The system keeps track of all menu items offered by the restaurant and the number of daily sales per menu item. Menu Data Members Collection of menu items Total Sales Methods Get Menu Item Add Menu Item Delete Menu Item Menultem Data Members Name Price Total Sales Methods Accessors and Mutators for name, price, and total sales Number of free withdrawals Fee per withdrawal Interest Rate Check writing privileges Debit Card information Account * | Sisieielatelaiaialaielaielaieneiaienaieieiiaiantata procecc cnn ece eee e eee eens 4 t Savings Account Checking Account Money Market Account ¥ | sielatetateteieiaiateteieteieteietenteteieieteteiatel proccceeenn ialelalatetatatetatateteiatal 4 ' H H Student Checking Classic Checking Business Checking 1.14 Consider a program that maintains an address book. Design an inheritance hierarchy for the classes such as Person, ProfessionalContact, Friend, and Student that can be used in implementing such a program. 1.15 1.16 Person Professional Personal MedicalDental Colleague Staff Relative Friend Do you think the design phase is more important than the coding phase? Why or why not? The design phase is much more important than the coding phase. Design has a huge impact on not only the ease and speed of implementation during the coding phase but also on the testing and maintenance phases. A proper design allows testing to be done in terms of structural components, which makes bugs easier to trace back to the improper implementation. Furthermore, a good design is far more maintainable. Maintenance is considered the most expensive of all the phases, thus a more easily maintained project is considerably less expensive. It is important to remember that maintenance includes more than just fixing bugs; extension of the original design to meet new requirements is a common and important task. How does the quality of design affect the total cost of developing and maintaining software? A low quality design will not only slow implementation, thus increasing expense and delay, but will also force design decisions to be revisited later. Inevitably, the design will have to change. Related implementation will have to be adapted or recoded. Testing will have to be redone. The more patchwork done, the more likely new errors are injected into the code. Not only are the maintenance programmers burdened with what is almost certainly a less coherent design (and documentation that tended to become outdated as more changes to the design were made), but they must also hunt for more bugs. Should be /* to begin a multi-line comment Should be */ to terminate a multi-line comment The correct package name is javax. swing Java is case sensitive. The correct declaration for the main method is public static void main(String[] args) 5. When declaring a variable, the type comes before the variable name. The correct statement is: JFrame myFrame; 6. The setVisible method requires a boolean parameter. The correct statement is: myFrame.setVisible (true) ; wNe w 3. Identify all errors in the following program: /* Program Exercise3 Attempting to display the number of characters in a given input. */ €1 class three { public static void main( ) { € 2 String input; input = JOptionPane(“input:”); €©€ 3 JOptionPane.showMessageDialog( null,“Input has “+ input.length() + “ characters”); 1. JOptionPane is defined in the javax.swing package. In order to use JOptionPane we must import javax.swing. We must insert the following statement import javax.swing.*; or import javax.swing.JOptionPane; The correct declaration for the main method is public static void main(String[] args) 3. Inorder to get user input from a JOptionPane, we must use the showInputDialog method. The correct statement is: input = JOptionPane.showInputDialog(null, “input:”); bh 4. Describe the purpose of comments. Name the types of comments available. Can you inchide comment markers inside a comment? Purposes: To describe the program, methods, data values, and other components To explain the meaning of code To provide other helpful information to improve the readability Types: Multi-line comments Single-line comments Javadoc comments In some cases yes (like including // in a multi-line comment), but in other cases no. 5. What is the purpose of the import statement? Does a Java program always have to include an import statement? Imports allow us to use or refer to classes in the imported package without having to use the fully qualified class name. Import statements are not always required. For example, any classes in the java.lang package can be used without importing. Tf we use fully qualified names in our program, the import statements are not necessary. 6. Show the syntax for importing one class and all classes in a package. One class. import
.; All classes: import .*; 7. Describe the class that must be included in any Java application. Every java application requires one class to be designated as its main class. The designated main class must include the main method. 8. What is a reserved word? List all the Java reserved words mentioned in this chapter. A reserved word is an identifier that is reserved by a programming language and used for a specific purpose. It can be used to designate a special operator such as new or syntactical element of the language such as class and public. Reserved words introduced in this chapter are new, import, class, public, static, void, true, false, and null. 9. Which of the following are invalid Java identifiers? a. R2D2 g. 3CPO b. Whatchamacallit h. This is okay. Get complete Order files download link below https://www.mediafire.com/file/hiv6tkbgagyvy3v/SM+ A+Comprehensive+Introduction+to+Object- Oriented+Programming+with+Java,+1e+C.+Thomas+W u.zip/file If this link does not work with a click, then copy the complete Download link and paste link in internet explorer/firefox/google chrome and get all files download successfully. myFrame = new JFrame(); myFrame 12. Show a state-of-memory diagram after each of these statements is executed: JFrame Residen windowl resl res2 window1; t resl, res2; new JFrame (); new Resident () = new Resident () Afier 3 objects are declared. window! rest Afier 3 new operations are executed: window![ #—J ~ [=| res1 — =~ [| res2 = = 13. Show a state-of-memory diagram after each of these statements is executed: Person personl, per. son2; person1 a 14. Which of these identifiers violate the naming convention for class names? a. r2D2 b. whatchamacallit c. Java d. GoodName e. CPO f. ThisIsReallyOkay g. java h. badName The convention is to use an uppercase letter for the first character. The first character of a new word is also capitalized. All other letters are lowercase. The identifiers a, b, g, and h violate the convention. The identifier CPO should be considered as valid if it is interpreted as some kind of acronym. 15. Which of these identifiers violate the naming convention for object names? a. R2D2 b. isthisokay? c. Java d. goodName e. 3CPO f. ThisIsReallyOkay g. java h. anotherbadone The convention for object names is almost identical to the one for class names, except the first character is lowercase. The identifiers a, b, ¢, e, f, and h violate the convention. Notice that b and e are not even valid identifiers. 16. For each of these expressions determine its result. Assume the value of text is a string Java Programming. String text = “Java Programming”; - text - text onanp test Java 16 oA . substring (0, - text. - text. length( ) substring (8, . substring (0, = text. -length()) substring (5, 4) 12) 1) + text.substring(7, 9) 6) + text.substring(text.length() - 3, c. gram d. Jog e. Ping 17. Write a Java application that displays today’s date in this format: Sunday November 10, 2002. See Exercise2_17.java 18. Write a Java application that displays a frame window 300 pixels wide and 200 pixels high with the title My First Frame. Place the frame so that its top, left corner is at a position 50 pixels from the top of the screen and 100 pixels from the left of the screen. To position a window at a specified location, you use the setLocation method, as in //assume mainWindow is declared and created frame.setLocation( 50, 50 ); Through experimentation, determine how the two arguments in the setLocation method affects the positioning of the window. See Exercise2_18 java 19. Write a Java application that displays the two messages I Can Design and And I Can Program, using two separate dialogs. See Exercise2_19.java 20. Write a Java application that displays the two messages I Can Design and And I Can Program, using one dialog but in two separate lines. See Exercise2_20.java 21. Write a Java application that displays a very long message. Try a message that is wider than the display of your computer screen, and see what happens. See Exercise2_21java 22. Because today’s computers are very fast, you will probably not notice any discernable difference on the screen between the code JFrame myWindow; myWindow = new JFrame( ); myWindow.setVisible( true ); and