![Page 1: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/1.jpg)
1
Lecture 4Objects and Classes
Instructors: Fu-Chiung Cheng
( 鄭福炯 )Associate Professor
Computer Science & EngineeringTatung Institute of Technology
![Page 2: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/2.jpg)
2
Outline
• Concept of Objects• Objects Creation• Predefined Classes• Method and passing parameters• Class definition• Modifiers• Static Variables and methods• method overloading
![Page 3: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/3.jpg)
3
Objects
• An object has A. state - descriptive characteristics B. behaviors - what it can do (or be done to it)
• For example, a particular bank account (object)has an account number (state)has a current balance (state)can be deposited into (behavior)can be withdrawn from (behavior)
![Page 4: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/4.jpg)
4
Classes
• A class is a blueprint of an object• It is the model from which objects are created• A class defines the methods and types of data of an object• Creating an object from a class is called instantiation; • An object is an instance of a particular class• For example, A. the Account class could describe many bank accounts B. tomsSavings is a particular bank account with a particular balance
![Page 5: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/5.jpg)
5
Creating Objects
• new operator: Account tomsSavings = new Account();• create an handle tomsSavings in stack• the data in tomsSavings is initialized. • create an Account object in heap.• new operator creates object by calling to a constructor of the class
![Page 6: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/6.jpg)
6
Contructors
• A constructor is a special method used to set up an object• It has the same name as the class• Constructors have no return type. • It can take parameters, which are often used to initialize some variables in the object.• For example, the Account constructor could be set up to take a parameter specifying its initial balance:
Account tomsSavings = new Account (125.89); Account tomsSavings = new Account (); // default
![Page 7: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/7.jpg)
7
class Gambler { private int winnings; private String consumed; public Gambler() { winnings = 0; consumed = "nothing"; } // constructor Gamble
public Gambler(int bet, String food) { winnings = bet; consumed = food; } // constructor Gambler…. Gambler jim = new Gambler(); Gambler joe = new Gambler (10, "Pizza");
![Page 8: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/8.jpg)
8
public void doubleIt (int bet) { winnings = winnings + bet + bet; } // method doubleIt
public void doubleIt (String food) { consumed = consumed + " " + food;} // method doubleIt
public void claim() { System.out.println ("I've eaten " + consumed + " and won " + winnings); } // method claim…. jim.doubleIt (20); joe.doubleIt ("Pizza"); jim.claim(); joe.claim();
![Page 9: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/9.jpg)
9
Object References
• The declaration of the object reference variable and the creation of the object can be separate activities:
Account tomsSavings; tomsSavings = new Account(125.89);
• Once an object exists, its methods can be invoked using the dot operator:
tomsSavings.deposit(35.00);
![Page 10: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/10.jpg)
10
String Class
• A character string in Java is an object, defined by the String class
String name = new String ("Ken Arnold");
Because strings are so common, Java allows an abbreviated syntax:
String riddle1 = ”What is the beginning of the end?"; String riddle2 = ”and the end of the eternal life?"; Java strings are immutable; once a string object has a value, it cannot be changed
![Page 11: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/11.jpg)
11
String Class
•A character in a string can be referred to by its position, or index• The index of the first character is zero• The String class is defined in the java.lang package (and is therefore automatically imported)• Many helpful methods are defined in the String class• see StringTest.java (in myExamples)
![Page 12: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/12.jpg)
12
StringTokenizer Class
• The StringTokenizer class makes it easy to break up a string into pieces called tokens• By default, the delimiters for the tokens are (white space) the space, tab, carriage return, and newline characters (white space)• The StringTokenizer class is defined in the java.util package
• See Int_Reader.java
![Page 13: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/13.jpg)
13
Random Class
• A program may need to produce a random number• The Random class provides methods to simulate a random number generator• The nextInt method returns a random number from the entire spectrum of int values• Usually, the number must be scaled and shifted into a particular range to be useful• See Flip.java
Random coin = new Random();Math.abs (coin.nextInt()) % 10 + 1 1 -- 10Math.abs (coin.nextInt()) % 11 - 5 -5 -- 5
![Page 14: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/14.jpg)
14
Handles (Reference)
• An handles (object reference) holds the memory address of an object
ChessPiece bishop1 = new ChessPiece();
• All interaction with an object occurs through a reference variable
bishop1
![Page 15: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/15.jpg)
15
Assignment Statements
• The act of assignment takes a copy of a value and stores it in a variable• For primitive types:
num2 = num1;
Before
num1
5
num2
12
After
num1
5
num2
5
![Page 16: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/16.jpg)
16
Reference Assignment
• For object references, the value of the memory location is copied:
bishop2 = bishop1;
Before
bishop1 bishop2
After
bishop1 bishop2
![Page 17: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/17.jpg)
Aliases
• Two or more references that refer to the same object are called aliases of each other• There is only one copy of the object (and its data), but with multiple ways to access it• Aliases can be useful, but should be managed carefully• Affecting the object through one reference affects it for all aliases, because they refer to the same object
![Page 18: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/18.jpg)
Garbage Collection
• When an object no longer has any valid references to it, it can no longer be accessed by the program• It is useless, and therefore called garbage• Java performs automatic garbage collection periodically, returning an object's memory to the system for future use (reference count of an object = 0)• In other languages, the programmer has the responsibility or performing garbage collection
![Page 19: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/19.jpg)
19
Methods
• All methods follow the same syntax:
return-type method-name ( parameter-list ) { statement-list }
• A class contains methods; • Method example: int thirdPower (int number) { int cube; cube = number * number * number; return cube; } // method thirdPower
![Page 20: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/20.jpg)
20
Methods
• A method may contain local declarations as well as executable statements• Variables declared locally can only be used locally• The thirdPower method could be written without any local variables:
int thirdPower (int number) { return number * number * number;
} // method thirdPower
![Page 21: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/21.jpg)
21
Return Statement
• The return type of a method indicates the type of value that the method sends back to the calling location• A method that does not return a value (such as main) has a void return type• The return statement specifies the value that will be returned• Its expression must conform to the return type
![Page 22: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/22.jpg)
22
Method Flow of Control
• The main method is invoked by the system when you submit the bytecode to the interpreter• Each method call returns to the place that called it
main method1 method2
method1();method2();
![Page 23: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/23.jpg)
23
Parameters
• A method can be defined to accept zero or more parameters• Each parameter in the parameter list is specified by its type and name• The parameters in the method definition are called formal parameters• The values passed to a method when it is invoked are called actual parameters
![Page 24: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/24.jpg)
24
Parameters
• When a parameter is passed, a copy of the value is made and assigned to the formal parameter• Both primitive types and object references can be passed as parameters• When an object reference is passed, the formal parameter becomes an alias of the actual parameter• See Parameter_Passing.java
![Page 25: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/25.jpg)
25
Defining Classes
• The syntax for defining a class is: class class-name {
declarations
constructors
methods
}
• The variables, constructors, and methods of a class are generically called members of the class
![Page 26: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/26.jpg)
26
class Account {
int account_number; double balance;
Account (int account, double initial) { account_number = account; balance = initial; } // constructor Account
void deposit (double amount) { balance = balance + amount; } // method deposit
} // class Account
![Page 27: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/27.jpg)
27
Constructors
• A constructor:A. is a special method that is used to set up a newly created objectB. often sets the initial values of variablesC. has the same name as the classD. does not return a valueE. has no return type, not even void
• The programmer does not have to define a constructor for a class
![Page 28: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/28.jpg)
28
Classes and Objects
• A class defines the data types for an object, but a class does not store data values• Each object has its own unique data space• The variables defined in a class are called instance variables.• All methods in a class have access to all instance variables of the class• Methods are shared among all objects of a class
![Page 29: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/29.jpg)
29
Classes and Objects
Class
Objects
int accountNumberdouble balance
accountNumber
balance
2908371
573.21
accountNumber
balance
4113787
9211.84
![Page 30: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/30.jpg)
30
Encapsulation
• You can take one of two views of an object:A. internal - the structure of its data, the algorithms used by its methods
B. external - the interaction of the object with other objects in the program
• From the external view, an object is an encapsulated entity, providing a set of specific services• These services define the interface to the object
![Page 31: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/31.jpg)
31
Encapsulation
• An object should be self-governing; any changes to the object's state (its variables) should be accomplished by that object's methods• We should make it difficult, if not impossible, for another object to "reach in" and alter an object's state• The user, or client, of an object can request its services, but it should not have to be aware of how those services are accomplished
![Page 32: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/32.jpg)
32
Encapsulation
• An encapsulated object can be thought of as a black box; its inner workings are hidden to the client
client
tomsSavings deposit
withdraw
addInterest
produceStatement
![Page 33: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/33.jpg)
33
Abstraction
• We use abstractions every day:driving a carusing a computer
• Encapsulation is a powerful abstraction• An abstraction hides the right details at the right time• Encapsulation makes an object easy to manage mentally because its interaction with clients is limited to a set of well-defined services
![Page 34: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/34.jpg)
34
Visibility of Modifiers
• We accomplish encapsulation through the appropriate use of visibility modifiers• A modifier is a Java reserved word that specifies particular characteristics of a programming construct• We've used the modifier final to define a constant• Java has three visibility modifiers: public, private, and protected• We will discuss the protected modifier later
![Page 35: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/35.jpg)
35
Visibility of Modifiers
• Members of a class that are declared with public visibility can be accessed from anywhere• Members of a class that are declared with private visibility can only be accessed from inside the class• Members declared without a visibility modifier have default visibility (“friendly”) and can be accessed by any class in the same package• Java modifiers are discussed in detail in Appendix F
![Page 36: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/36.jpg)
36
Visibility of Modifiers
• As a general rule, no object's data should be declared with public visibility• Methods that provide the object's services are usually declared with public visibility so that they can be invoked by clients• Public methods are also called service methods• Other methods, called support methods, can be defined that assist the service methods; they should not be declared with public visibility
![Page 37: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/37.jpg)
37
Classes and Objects
main
music
addCds
• See Tunes.java
![Page 38: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/38.jpg)
38
Static Modifier
• The static modifier can be applied to variables or methods• It associates a variable or method with the class rather than an object• This approach is a distinct departure from the normal way of thinking about objects
![Page 39: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/39.jpg)
39
Static Modifier
• Normally, each object has its own data space• If a variable is declared as static, only one copy of the variable exists for all objects of the class
private static int count;
• Changing the value of a static variable in one object changes it for all others• Static variables are sometimes called class variables
![Page 40: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/40.jpg)
40
Static Modifier
• Normally, we invoke a method through an instance (an object) of a class• If a method is declared as static, it can be invoked through the class name; no object needs to exist• For example, the Math class in the java.lang package contains several static mathematical operations
Math.abs(num) -- absolute value Math.sqrt(num) -- square root
![Page 41: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/41.jpg)
41
Static Modifier
• The main method is static; it is invoked by the system without creating an object• Static methods cannot reference instance variables, because instance variables don't exist until an object exists• However, they can reference static variables or local variables• Static methods are sometimes called class methods
![Page 42: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/42.jpg)
42
Method Overloading
• Method overloading is the process of using the same method name for multiple methods• The signature of each overloaded method must be unique• The signature is based on the number, type, and order of the parameters• The compiler must be able to determine which version of the method is being invoked by analyzing the parameters• The return type of the method is not part of the signature
![Page 43: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/43.jpg)
43
Method Overloading
• The println method is overloaded: println (String s) println (int i) println (double d) etc.• The lines
System.out.println ("The total is:"); System.out.println (total);
invoke different versions of the println method
![Page 44: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/44.jpg)
44
Method Overloading
• Constructors are often overloaded to provide multiple ways to set up a new object Account (int account) { account_number = account; balance = 0.0; } // constructor Account Account (int account, double initial) { account_number = account; balance = initial; } // constructor AccountSee Casino.java
![Page 45: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/45.jpg)
45
Classes and Objects
jimbob
beansfranks
name"Bob"
ManagerPurchase_Power
name"Jim"
Manager
name"beans"
Stock_Item
product_buyer
name"franks"
Stock_Item
product_buyer
See Purchase_Power.java
![Page 46: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/46.jpg)
46
Classes and Objects
drop1
drop2
drop3
drop4
drop5
Storm
current_size 18
current_size 4
current_size 12
current_size 7
current_size 24
See Storm.java
![Page 47: 1 Lecture 4 Objects and Classes Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology](https://reader036.vdocuments.mx/reader036/viewer/2022081504/56649e0f5503460f94af9efa/html5/thumbnails/47.jpg)
47
Conclusion
完成 Lecture 4 See You Next Week !
• An object has states and behaviors• A class defines the methods and types of data of an object• An object is an instance of a particular class• Java performs automatic garbage collection periodically, returning an object's memory to the system for future use• Class variables and methods (one copy per class)