Presentation is loading. Please wait.

Presentation is loading. Please wait.

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 13, 2005.

Similar presentations


Presentation on theme: "The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 13, 2005."— Presentation transcript:

1 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 13, 2005

2 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 2 Today Defining classes, using objects public, private, static Assignment operator and objects jGRASP projects, multiple files, Java archives

3 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 3 Multiple 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 objects

4 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 4 Multiple 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 method

5 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 5 Basketball.java Create main class: Basketball Define Player class ♦ player name ♦ year ♦ + operations

6 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 6 Multiple files Good style: 1 class per file Store all files in 1 directory Create jGRASP project (.gpj)

7 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 7 BasketballProject.gpj Example of project creation

8 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 8 Multiple 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, …)

9 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 9 Basketball.java Instantiate multiple Player objects Call methods of the Player objects from Basketball.main() Demonstrate flow through different methods with the debugger

10 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 10 Visibility Modifiers private 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 values

11 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 11 Player.java Make data members private Make methods public Demonstrate accessibility from Basketball.main()

12 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 12 Assignment Operator Assignment expressions that involve reference variables do not copy object data!! In order to copy object data, we need additional methods Player player1 = new Player(“Felton”); Player player2 = new Player(); player2 = player1; //player2 points to the same obj. public void Player.copy(Player otherPlayer)

13 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 13 Player.java Write Player.copy()

14 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 14 Visibility Modifiers static static data members ♦ Data related to a class that does not need to be defined for each object public class Player { static final int FRESHMAN = 1; static final int SOPHOMORE = 2; private int year; … }

15 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 15 Visibility Modifiers static 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(); … }

16 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 16 Visibility Modifiers static 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();

17 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 17 Player.java Add static data members and methods

18 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 18 The 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 own

19 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 19 Player.java Write Player.toString()

20 The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie 20 To do Homework 5 (due Wednesday night) ♦ Don’t wait till Tuesday!! ♦ Homework 6 is going to be rather long Read ch. 9


Download ppt "The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 13, 2005."

Similar presentations


Ads by Google