COMP 14 Introduction to ProgrammingTodayMultiple ClassesSlide 4Basketball.javaMultiple filesBasketballProject.gpjMultiple ObjectsSlide 9Visibility Modifiers private and publicPlayer.javaAssignment OperatorSlide 13Visibility Modifiers staticSlide 15Slide 16Slide 17The toString MethodSlide 19To doCOMP 14Introduction to ProgrammingMiguel A. OtaduyMay 28, 2004Today•Defining classes, using objects•public, private, static•Assignment operator and objects•jGRASP projects, multiple files, Java archivesMultiple Classes•So far, we have added methods to the main class•Classes extend the concept of data types: data + operations•Define new classes and instantiate objectsMultiple Classes•Concept: Basketball team–players (objects of class Player)–coach (object of class Coach)–games–…•Define each class in one file, and instantiate objects in other classes or in the main methodBasketball.java•Create main class: Basketball•Define Player class–player name–year–+ operationsMultiple files•Good style: 1 class per file•Store all files in 1 directory•Create jGRASP project (.gpj)BasketballProject.gpj•Example of project creationMultiple Objects•A class has 1 single definition•We can instantiate multiple objects of 1 class•Each object keeps its own copy of the data members•Objects are accessed using reference variables•To perform operations on objects:referenceVariable.method (parameter1, parameter2, …)Basketball.java•Instantiate multiple Player objects•Call methods of the Player objects from Basketball.main()•Demonstrate flow through different methods with the debuggerVisibility Modifiersprivate and public•Public–For members that should be accessible outside the class (i.e. from other classes or the main method)–Usually employed with methods•Private–For members that should not be accessed outside the class–Usually employed with data members–Also for methods that are only used internally•Typically, data members are declared as private, so we need methods to set and get data valuesPlayer.java•Make data members private•Make methods public•Demonstrate accessibility from Basketball.main()Assignment Operator•Assignment expressions that involve reference variables do not copy object data!!•In order to copy object data, we need additional methodsPlayer player1 = new Player(“Felton”);Player player2 = new Player();player2 = player1; //player2 points to the same obj.public void Player.copy(Player otherPlayer)Player.java•Write Player.copy()Visibility Modifiersstatic•static data members–Data related to a class that does not need to be defined for each objectpublic class Player{static final int FRESHMAN = 1;static final int SOPHOMORE = 2;private int year;…}Visibility Modifiersstatic•static methods–Operations that do not use object-dependent data–They can only use static data members!! (besides local variables)public static int factorial(int x){…}static BufferedReader keyboard = …public static void main(…){String str=keyboard.readLine();…}Visibility Modifiersstatic•To access static data members and methods from outside the class: •To access non-static data members and methods from outside the class:•In general, from inside the class, no need to write class name or reference variable.double res = Math.pow(2.0, 3.0);//ClassName.method();player1.printInfo();//referenceVariable.method();Player.java•Add static data members and methodsThe toString Method•Special method in Java classes•Produces a String object based on the current object, suitable for printing•Mapped to the '+' operator (concatenation)•Also called when the object is a parameter in a print() or println() method•There is a default toString method, but it's better if we write our ownPlayer.java•Write Player.toString()To do•Homework 5 (due Wednesday night)–Don’t wait till Tuesday!!–Homework 6 is going to be rather long•Read ch.
View Full Document