CHAPTER 2 OBJECTS AND CLASSES Goals: To understand the concepts of classes and objects To realize the difference between objects and object references.

Slides:



Advertisements
Similar presentations
Chapter 2: Using Objects Part 1. To learn about variables To understand the concepts of classes and objects To be able to call methods To learn about.
Advertisements

IMPLEMENTING CLASSES Chapter 3. Black Box  Something that magically does its thing!  You know what it does but not how.  You really don’t care how.
Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I First Semester,
Chapter 3 – Implementing Classes. Chapter Goals To become familiar with the process of implementing classes To be able to implement simple methods To.
Our BankAccount class should define three methods  deposit  withdraw  getBalance How a programmer will carry out these operations?  We assume that.
Chapter 3 Implementing Classes. Instance Variables Instance variables store the data of an object; the fields of an object. Instance of a class: an object.
Chapter 13 Inheritance. An Introduction to Inheritance Inheritance: extend classes by adding methods and fields (variables) Example: Savings account =
Chapter 3: Implementing Classes Part 1. To become familiar with the process of implementing classes To be able to implement simple methods To understand.
CHAPTER 11 INHERITANCE CHAPTER GOALS To understand how to inherit and override superclass methods To be able to invoke superclass constructors To learn.
Big Java by Cay Horstmann Copyright © 2009 by John Wiley & Sons. All rights reserved. Chapter Three - Implementing Classes.
Function Overloading Having more than one function with the same name. list of argument of a function are called signature of a function. We can have more.
Chapter 9 – Inheritance Big Java by Cay Horstmann Copyright © 2009 by John Wiley & Sons. All rights reserved.
Chapter 2 – An Introduction to Objects and Classes Big Java by Cay Horstmann Copyright © 2009 by John Wiley & Sons. All rights reserved.
The Java Programming Language  Simple – but abstract  Safe  Platform-independent ("write once, run anywhere")  Has a Rich growing library  Designed.
CSM-Java Programming-I Spring,2005 Class Design Lesson - 4.
Chapter 2 Using Objects. These slides for CSE 110 Sections are based in part on the textbook-authors ’ slides, which are copyright 2003 by Cay Horstmann.
Chapter 2 storing numbers and creating objects Pages in Horstmann.
Datalogi A 2: 15/9. Java Slides based on Horstmann chapter 2&3 Objects and classes Import, methods, references Implementing a class.
Chapter 3 Implementing Classes. Chapter Goals To become familiar with the process of implementing classes To be able to implement simple methods To understand.
Object-oriented analysis (OOA) techniques are used to (1) study existing objects to see if they can be reused or adapted for new uses, and (2) define new.
Chapter 2  Using Objects 1 Chapter 2 Using Objects.
Using Objects Object: an entity in your program that you can manipulate Attributes Methods Method: consists of a sequence of instructions that can access.
Chapter 3  Implementing Classes 1 Chapter 3 Implementing Classes.
Chapter 3 Implementing Classes. Chapter Goals To become familiar with the process of implementing classes To be able to implement simple methods To understand.
CSM-Java Programming-I Spring,2005 Introduction to Objects and Classes Lesson - 1.
CompSci 42.1Intro to Java Anatomy of a Class & Terminology Running and Modifying a Program.
Introduction to Object-Oriented Programming
Week 4 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Creating Simple Classes. Outline of Class Account Class Account Account # Balance Holder name phone# Overdrawn (true/false) Data Members Open Credit Debit.
©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 1: Introduction 1 Chapter 1 Introduction.
Introduction to Java and Object-Oriented Programming AJSS Computer Camp Department of Information Systems and Computer Science Ateneo de Manila University.
Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. Chapter Three: Implementing Classes.
Classes CS 21a: Introduction to Computing I First Semester,
Chapter 3 Implementing Classes. Assignment Read 3.1 – 3.5 and take notes complete Self Check Exercises 1-10; Due September 24 th Read 3.6 – 3.8 and take.
Chapter 3 – Implementing Classes Big Java by Cay Horstmann Copyright © 2009 by John Wiley & Sons. All rights reserved.
Week 4 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
ICOM 4015: Advanced Programming Lecture 3 Big Java by Cay Horstmann Copyright © 2009 by John Wiley & Sons. All rights reserved. Reading: Chapter Three:
Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Chapter 10 - Interfaces.
Jens Dalsgaard Nielsen Jan Dimon Bendtsen Dept. of Electronic Systems Basic Programming INS-basis GF, PDP and HST.
Lecture 101 CS110 Lecture 10 Thursday, February Announcements –hw4 due tonight –Exam next Tuesday (sample posted) Agenda –questions –what’s on.
1 Principles of Computer Science I Prof. Nadeem Abdul Hamid CSC 120 – Fall 2005 Lecture Unit 2 - Using Objects.
Anatomy.1 Anatomy of a Class & Terminology. Anatomy.2 The Plan Go over MoveTest.java from Big Java Basic coding conventions Review with GreeterTest.java.
CHAPTER 11 INHERITANCE. CHAPTER GOALS To understand how to inherit and override superclass methods To be able to invoke superclass constructors To learn.
Java Programming Week 1: Java Fundamental Revision (Text book: ch1, ch2, ch3, ch4)
ACM/JETT Workshop - August 4-5, : Defining Classes in Java.
Fall 2006Slides adapted from Java Concepts companion slides1 Implementing Classes Advanced Programming ICOM 4015 Lecture 3 Reading: Java Concepts Chapter.
Encapsulation ◦ Blackbox concept Data and method(s) Hidden details InterfaceEffect(s) methods called class.
INFSY 535.  Small systems  Larger systems 1.Understand the program requirement- what 3. Write and test each part (unit testing) 4. Maintenance 2. Specify.
Chapter 2 Using Objects. Chapter Goals To learn about variables To understand the concepts of classes and objects To be able to call methods To be able.
©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 3: An Introduction to Classes 1 Chapter 3 An Introduction to Classes.
Chapter 3: Implementing Classes Part 1. To become familiar with the process of implementing classes To be able to implement simple methods To understand.
Big Java by Cay Horstmann Copyright © 2009 by John Wiley & Sons. All rights reserved. Chapter Three - Implementing Classes.
CompSci 42.1Intro to Java Anatomy of a Class & Terminology Running and Modifying a Program.
Chapter 3 Implementing Classes
A Simple Object Oriented Program public class Simple { public static void main (String [] args) { System.out.println(“howdy”); } System.out is an object.
Chapter 3 – Implementing Classes
Lecture 3 John Woodward.
Chapter 3 – Implementing Classes
Chapter Three: Implementing Classes
Implementing Classes Yonglei Tao.
Chapter Goals To become familiar with the process of implementing classes To be able to implement and test simple methods To understand the purpose and.
Chapter Three - Implementing Classes
Chapter Three - Implementing Classes
Chapter 2 Using Objects.
Chapter 3 Implementing Classes
JAVA CLASSES.
AN INTRODUCTION TO OBJECTS AND CLASSES
Classes CS 21a: Introduction to Computing I
Introduction to Object-Oriented Programming
Introduction to Computer Science and Object-Oriented Programming
Presentation transcript:

CHAPTER 2 OBJECTS AND CLASSES Goals: To understand the concepts of classes and objects To realize the difference between objects and object references To become familiar with the process of implementing classes To be able to implement simple methods To understand the purpose and use of constructors To understand how to access instance fields and local variables To appreciate the importance of documentation comments

Objects and Classes  Object: entity that you can manipulate in your programs (by invoking methods)  Each object belongs to a class  Class: Set of objects with the same behavior  Class determines legal methods "Hello".println() // Error "Hello".length() // OK  An example: Rectangle Class –Construct a rectangle: new Rectangle(5, 10, 20, 30) new Rectangle() –Use the constructed object System.out.println(new Rectangle(5,10,20,30)); prints java.awt.Rectangle[x=5,y=10,width=20,height=30]

Rectangle Shapes A Rectangle Object

Syntax 2.1: Object Construction Syntax: new ClassName(parameters) Example: –new Rectangle(5, 10, 20, 30) –new Car("BMW 540ti", 2004) Purpose: To construct a new object, initialize it with the construction parameters, and return a reference to the constructed object. Object Variables  Declare and optionally initialize: Rectangle cerealBox = new Rectangle(5, 10, 20, 30); Rectangle crispyCrunchy;  Apply methods: cerealBox.translate(15, 25);  Share objects: r = cerealBox;

Uninitialized and Initialized Variables Uninitialized Initialized Two Object Variables Referring to the Same Object

Syntax 2.2: Variable Definition Syntax: –TypeName variableName; –TypeName variableName = expression; Example: –Rectangle cerealBox; –String name ="Dave"; Purpose: To define a new variable of a particular type and optionally supply an initial value

Writing a Test Program  Invent a new class, say MoveTest  Supply a main method  Place instructions inside the main method  Import library classes by specifying the package and class name: import java.awt.Rectangle;  You don't need to import classes in the java.lang package such as String and System Syntax 2.3 : Importing a Class from a Package Syntax: import packageName.ClassName ; Example: import java.awt.Rectangle; Purpose: To import a class from a package for use in a program

File MoveRect.java import java.awt.Rectangle; public class MoveTest { public static void main(String[] args) { Rectangle cerealBox = new Rectangle(5, 10, 20, 30); // move the rectangle cerealBox.translate(15, 25); // print the moved rectangle System.out.println(cerealBox); } A Simple Class public class Greeter { public String sayHello() { String message ="Hello,World!"; return message; } }

Method Definition  Method prototype (signature)  access specifier (such as public)  return type (such as String or void)  method name (such as sayHello)  list of parameters (empty for sayHello)  Method body in { } Example public class Rectangle {... public void translate(int x, int y) { method body }... }

Syntax 2.4: Method Implementation Syntax public class ClassName {... accessSpecifier returnType methodName(parameterType parameterName,...) { method body }... } Example: public class Greeter { public String sayHello() { String message = "Hello,World!"; return message; } Purpose: To define the behavior of a method A method definition specifies the method name, parameters, and the statements for carrying out the method's actions

Syntax 2.5: The return Statement Example: return expression; or return; Example: return message; Purpose: To specify the value that a method returns, and exit the method immediately. The return value becomes the value of the method call expression.

Testing a Class  Test class:: a class with a main method that contains statements to test another class.  Typically carries out the following steps: –Construct one or more objects of the class that is being tested. –Invoke one or more methods. –Print out one or more results A Test Class for the Greeter Class public class GreeterTest { public static void main(String [] args)) { Greeter worldGreeter = new Greeter(); System.out.println(worldGreeter.sayHello()); }

Building a Test Program 1. Make a new subfolder for your program. 2.Make two files, one for each class. 3.Compile both files. 4.Run the test program. Testing with the SDK Tools mkdir greeter cd greeter edit Greeter.java edit GreeterTest.java javac Greeter.java javac GreeterTest.java java GreeterTest

Testing with BlueJ

Instance Fields public class Greeter {... private String name; }  access specifier (such as private)  type of variable (such as String)  name of variable (such as name) Accessing Instance Fields  public String sayHello() { String message = "Hello, " + name + "!"; return message; }  The sayHello method of the Greeter class can access the private instance field, others can not

Syntax 2.6 : Instance Field Declaration Syntax: –accessSpecifier class ClassName {... accessSpecifier fieldType fieldName;... } Example: public class Greeter {... private String name;... } Purpose: To define a field that is present in every object of a class

Constructors  A constructor initializes the instance variables  Constructor name = class name  Invoked in new expression new Greeter("Dave") Syntax 2.7 : Constructor Implementation Syntax accessSpecifier class ClassName {... accessSpecifier ClassName(parameterType parameterName...) { constructor implementation }... } Example: public class Greeter {... public Greeter(String aName) { name = aName; }... } Purpose: To define the behavior of a constructor, which is used to initialize the instance fields of newly created objects

File Greeter.java 1 public class Greeter 2 { 3 public Greeter(String aName) 4 { 5 name = aName; 6 } 7 8 public String sayHello() 9 { 10 String message = "Hello, " + name + "!"; 11 return message; 12 } private String name; 15 } File GreeterTest.java 1 public class GreeterTest 2 { 3 public static void main(String[] args) 4 { 5 Greeter worldGreeter = new Greeter("World"); 6 System.out.println( worldGreeter.sayHello()); 7 8 Greeter daveGreeter = new Greeter("Dave"); 9 System.out.println(daveGreeter. sayHello()); 10 } 11 }

Designing A Class: Bank Account Analysis: –Behavior of bank account:  deposit money  withdraw money  get balance –Methods of BankAccount class:  deposit  withdraw  getBalance Designing Interface –Constructor public BankAccount() public BankAccount(double initialBalance) –Methods public void deposit(double amount) public void withdraw(double amount) public double getBalance()

Commenting /** Withdraws money from the bank the amount to withdraw */ public void withdraw(double amount) { implementation filled in later } /** A bank account has a balance that can be changed by deposits and withdrawals. */ public class BankAccount { … } /** Gets the current balance of the bank the current balance */ public double getBalance() { implementation filled in later } Commenting the class Commenting interface

Javadoc Method Summary

Javadoc Method Detail

BankAccount Class Implementation Determine instance variables to hold object state private double balance Implement methods and constructors Using the Interface  Transfer balance double amt = 500; momsSavings.withdraw(amt); harrysChecking.deposit(amt);  Add interest double rate = 5; // 5% double amt = acct.getBalance() * rate / 100; acct.deposit(amt);

File BankAccount.java /** A bank account has a balance that can be changed by deposits and withdrawals. */ public class BankAccount { // instance field private double balance; /** Constructs a bank account with a zero balance */ public BankAccount() { balance = 0; } /** Deposits money into the bank amount the amount to deposit */ public void deposit(double amount) { double newBalance=balance+amount; balance = newBalance; } /** Withdraws money from the bank amount the amount to withdraw */ public void withdraw(double amount) { double newBalance=balance-amount; balance = newBalance; } /** Gets the current the current balance */ public double getBalance() { return balance; }

File BankAccountTest.java 1 /** 2 A class to test the BankAccount class. 3 */ 4 public class BankAccountTest 5 { 6 /** 7 Tests the methods of the BankAccount class. args not used 9 */ 10 public static void main(String[] args) 11 { 12 BankAccount harrysChecking = new BankAccount(); 13 harrysChecking.deposit(2000) 14 harrysChecking.withdraw(500) 15 System.out.println(harrysChecking.getBalance()); 16 } 17 }

Calling a Method in BlueJ

The Method Return Value in BlueJ

Variable Types  Instance fields (balance in BankAccount)  Local variables (newBalance in deposit method)  Parameter variables (amount in deposit method) Explicit and Implicit Parameters public void withdraw(double amount) { double newBalance = balance - amount; balance = newBalance; } balance is the balance of the object to the left of the dot: balance is an implicit parameter, while amount is an explicit parameter momsSavings.withdraw(500) means double newBalance = momsSavings.balance - amount; momsSavings.balance = newBalance;