Title: COMP 14 Introduction to Programming
1COMP 14Introduction to Programming
- Miguel A. Otaduy
- May 28, 2004
2Today
- Defining classes, using objects
- public, private, static
- Assignment operator and objects
- jGRASP projects, multiple files, Java archives
3Multiple 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
4Multiple 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
5Basketball.java
- Create main class Basketball
- Define Player class
- player name
- year
- operations
6Multiple files
- Good style 1 class per file
- Store all files in 1 directory
- Create jGRASP project (.gpj)
7BasketballProject.gpj
- Example of project creation
8Multiple 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,
)
9Basketball.java
- Instantiate multiple Player objects
- Call methods of the Player objects from
Basketball.main() - Demonstrate flow through different methods with
the debugger
10Visibility 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 values
11Player.java
- Make data members private
- Make methods public
- Demonstrate accessibility from Basketball.main()
12Assignment 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)
13Player.java
14Visibility Modifiersstatic
- 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
15Visibility 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 strkeyboard.readLine()
16Visibility 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.meth
od()
player1.printInfo() //referenceVariable.method()
17Player.java
- Add static data members and methods
18The 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
19Player.java
20To do
- Homework 5 (due Wednesday night)
- Dont wait till Tuesday!!
- Homework 6 is going to be rather long
- Read ch. 9