1ClassesObject-Oriented Design• Method for designing computer programs• Consider “objects” interacting in theprogram– Example: a zoo, a gradebookOOD Goals• Robustness– Gracefully handle failures• Adaptability– Evolve as necessary• Reusability– Many programs use same piece of codeOOD Principles• Abstraction– Abstract Data Types (ADTs)– Interfaces• Encapsulation– Information Hiding• Modularity– Easily plug together componentsWhat is a class?• Data and the methods that operate onthat data – collectively called members– Example: bank account class• Provide structure for organizing programsMethods• Typically, data (variables) declared private• Methods operate on data– accessors – read data, provide access todata but do not change it– mutators – change data• examples from bank account, zoo???– constructor – builds a new object2Writing Classes• Must be implemented in a file namedclassname.java– well…there are also inner classesBankAccount Class• public BankAccount(double balance);• public void withdraw(double amount);• public void deposit(double amount);• public double checkBalance();Creating and Using ObjectsBankAccount b = new BankAccount(500);//Type Name = new Type(constructor parameters);//how would you withdraw funds?Creating and Using Objects//how would you withdraw funds?b.withdraw(300);object_name.method_name(param list);Constructor• Special-case function called when anew object is created• Used to initialize member variables– Examples?• Default constructor takes no parametersFlight class• Think about the design of a class torepresent a flight…– Data members?– Methods?3Exercises1. Implement and test the Flight class.Scope• What is the scope of each of the variablesyou declared in your flight class?static• Static class member - a variable withscope the same as a class member– 1 per class, not per object• Example - car serial numberExercises1. Design, implement, and test aPassenger class. Make sure that youkeep track of the passenger’s frequentflyer
View Full Document