Classes. Classes (continued) Syntax The general syntax for defining a class:

Similar documents
Chapter 8. Chapter Objectives. Chapter Objectives. User-Defined Classes and ADTs

CSC1590 Java Assignment 2-0. User Defined Classes

OO Programming Concepts. Classes. Objects. Chapter 8 User-Defined Classes and ADTs

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 12: Classes and Data Abstraction

Chapter 4 Defining Classes I

CmSc 150 Fundamentals of Computing I. Lesson 28: Introduction to Classes and Objects in Java. 1. Classes and Objects

EECS168 Exam 3 Review

Chapter 4: Writing Classes

CS 302: Introduction to Programming in Java. Lecture 15

CS1004: Intro to CS in Java, Spring 2005

Chapter 6 Introduction to Defining Classes

Understanding class definitions

Building custom components IAT351

Classes. Logical method to organise data and functions in a same structure. Also known as abstract data type (ADT).

Binghamton University. CS-140 Fall Problem Solving. Creating a class from scratch

And Even More and More C++ Fundamentals of Computer Science

Notes on Chapter Three

Encapsulation. Administrative Stuff. September 12, Writing Classes. Quick review of last lecture. Classes. Classes and Objects

CSCI 1301: Introduction to Computing and Programming Summer 2018 Lab 07 Classes and Methods

Introduction to Programming Using Java (98-388)

Anatomy of a Class Encapsulation Anatomy of a Method

Computer Science II. OO Programming Classes Scott C Johnson Rochester Institute of Technology

AP Computer Science Chapter 10 Implementing and Using Classes Study Guide

Today s Agenda. Quick Review

Data Structures. Data structures. Data structures. What is a data structure? Simple answer: a collection of data equipped with some operations.

What is an algorithm?

Chapter 1b Classes and Objects

(b) Draw a hash table having 10 buckets. Label the buckets 0 through 9.

Understanding class definitions. Looking inside classes (based on lecture slides by Barnes and Kölling)

Homework Set 2- Class Design

Ticket Machine Project(s)

CSCI 1301: Introduction to Computing and Programming Spring 2019 Lab 10 Classes and Methods

Chapter 15: Object Oriented Programming

ITI 1120 Lab #9. Slides by: Diana Inkpen, Alan Williams, Daniel Amyot Some original material by Romelia Plesa

Objects and Classes: Working with the State and Behavior of Objects

Exception Handling. Sometimes when the computer tries to execute a statement something goes wrong:

Data abstractions: ADTs Invariants, Abstraction function. Lecture 4: OOP, autumn 2003

CSCI-142 Exam 1 Review September 25, 2016 Presented by the RIT Computer Science Community

Object Class. EX: LightSwitch Class. Basic Class Concepts: Parts. CS257 Computer Science II Kevin Sahr, PhD. Lecture 5: Writing Object Classes

Exception Handling. Run-time Errors. Methods Failure. Sometimes when the computer tries to execute a statement something goes wrong:

The Class. Classes and Objects. Example class: Time class declaration with functions defined inline. Using Time class in a driver.

Implementing an ADT with a Class

Chapter 4. Defining Classes I

CS122/Sec. 2 Week No. 3 Dilce Gozuyasli Sevi Durdu Due date: March 7, 08. Notes of February 26, 08. Review of class Circle UML diagram

Inheritance. Lecture 11 COP 3252 Summer May 25, 2017

Computer Science 2 Lecture 4 Inheritance: Trinidad Fruit Stand 02/15/2014 Revision : 1.7

Practice Problems CS2620 Advanced Programming, Spring 2003

! A class in C++ is similar to a structure. ! A class contains members: - variables AND. - public: accessible outside the class.

(b) Draw a hash table having 10 buckets. Label the buckets 0 through 9.

l A class in C++ is similar to a structure. - It allows you to define a new (composite) data type. l A class contains the following: - variables AND

l A class in C++ is similar to a structure. l A class contains members: - variables AND - public: accessible outside the class.

this Pointer, Constant Functions, Static Data Members, and Static Member Functions this Pointer (11.1) Example of this pointer

CS101: Fundamentals of Computer Programming. Dr. Tejada www-bcf.usc.edu/~stejada Week 8: Abstract Data Types

Chapter 3 Objects and Classes

! Data is stored in variables. - Perhaps using arrays and structs. ! Program is a collection of functions that perform

(a) in assignment statements. (b) when invoking methods (with objects as parameters) (d) equality of references versus equality of objects

! A class in C++ is similar to a structure. ! A class contains members: - variables AND. - public: accessible outside the class.

Data Structures and Other Objects Using C++

W8.1 Continuing Classes friend Functions and friend Classes Using the this Pointer Cascading Function Calls

Object-Based Programming (Deitel chapter 8)

Polymorphism. return a.doublevalue() + b.doublevalue();

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Computer Programming with C++ (21)

! Data is stored in variables. - Perhaps using arrays and structs. ! Program is a collection of functions that perform

public class TicketMachine Inner part omitted. public class ClassName Fields Constructors Methods

ITI Introduction to Computing II

Subclassing for ADTs Implementation

CS111: PROGRAMMING LANGUAGE II

! Data is stored in variables. - Perhaps using arrays and structs. ! Program is a collection of functions that perform

Lecture 7. Log into Linux New documents posted to course webpage

Comp 248 Introduction to Programming Chapter 4 - Defining Classes Part A

// constructor: takes a String as parameter and creates a public Cat (String x) { name = x; age = 0; lives = 9; // cats start out with 9 lives }

Introduction to Classes

Do not start the test until instructed to do so!

Programming II (CS300)

Chapter 10 Introduction to Classes

Objects as a programming concept

CSCE 156 Computer Science II

l A class in C++ is similar to a structure. - It allows you to define a new (composite) data type. l A class contains the following: - variables AND

CMSC 132: Object-Oriented Programming II

Classes Classes 2 / 36

CSC Java Programming, Fall Java Data Types and Control Constructs

Recitation 02/02/07 Defining Classes and Methods. Chapter 4

Container Vs. Definition Classes. Container Class

CS111: PROGRAMMING LANGUAGE II. Lecture 1: Introduction to classes

Implementing Abstract Data Types (ADT) using Classes

! Data is stored in variables. - Perhaps using arrays and structs. ! Program is a collection of functions that perform

An Introduction to C++

Aggregation. Introduction to Computer Science I. Overview (1): Overview (2): CSE 1020 Summer Bill Kapralos. Bill Kapralos.

11/19/2014. Objects. Chapter 4: Writing Classes. Classes. Writing Classes. Java Software Solutions for AP* Computer Science A 2nd Edition

COMP 250 Winter 2011 Reading: Java background January 5, 2011

Frequently Asked Questions

Lecture 18 Tao Wang 1

List ADT. Announcements. The List interface. Implementing the List ADT

INHERITANCE. Spring 2019

Chapter 6 Lab Classes and Objects

Classes and Objects: A Deeper Look

if (x == 0); System.out.println( x=0 ); if (x = 0) System.out.println( x=0 );

Chapter 4. Defining Classes I

CSC 240 Computer Science III Spring 2018 Midterm Exam. Name

Transcription:

Chapter 8: User-Defined Classes and ADTs Java Programming: Program Design Including Data Structures Chapter Objectives Learn about classes Learn about private, protected, public, and static members of a class Explore how classes are implemented Learn about the various operations on classes Java Programming: Program Design Including Data Structures 2 Chapter Objectives (continued) Examine constructors and finalizers Examine the method tostring Learn about the abstract data type (ADT) Java Programming: Program Design Including Data Structures 3 1

Classes class: collection of a fixed number of components Components: Members of a class Members are accessed by name Class categories/modifiers: private protected public Java Programming: Program Design Including Data Structures 4 Classes (continued) Private: members of class are not accessible outside class Public: members of class are accessible outside class Class members: can be methods or variables Variable members are declared like any other variables Java Programming: Program Design Including Data Structures 5 Syntax The general syntax for defining a class: If a member of a class is a named constant, you declare it just like any other named constant If a member of a class is a variable, you declare it just like any other variable Java Programming: Program Design Including Data Structures 6 2

Syntax (continued) If a member of a class is a method, you define it just like any other method If a member of a class is a method, it can (directly) access any member of the class data members and methods When you write the definition of a method, you can directly access any data member of the class (without passing it as a parameter) Java Programming: Program Design Including Data Structures 7 Syntax (continued) class Clock: Data Members (Instance Variables): private int hr; //store hours private int min; //store minutes private int sec; //store seconds Methods: public void settime(int hours, int minutes, int seconds) public int gethours() public int getminutes() public int getseconds() public void printtime() public void incrementseconds() public void incrementminutes() public void incrementhours() public boolean equals(clock otherclock) public void makecopy(clock otherclock) public Clock getcopy() Java Programming: Program Design Including Data Structures 8 Constructors Two types of constructors: With parameters Without parameters (default constructor) Java Programming: Program Design Including Data Structures 9 3

Constructors (continued) Constructors have the following properties: The name of a constructor is the same as the name of the class A constructor has no type A class can have more than one constructor All constructors of a class have the same name If a class has more than one constructor, any two constructors must have different signatures Java Programming: Program Design Including Data Structures 10 Constructors (continued) Constructors are automatically executed when a class object is instantiated With multiple constructors, which constructor executes depends on the type of values passed to the class object when the class object is instantiated Java Programming: Program Design Including Data Structures 11 Constructors (continued) class Clock: Constructors Default constructor is public Clock() Constructor with parameters: public Clock(int hours, int minutes,int seconds) Java Programming: Program Design Including Data Structures 12 4

Unified Modeling Language Class Diagrams Java Programming: Program Design Including Data Structures 13 Variable Declaration and Object Instantiation General syntax for using the operator new is: new classname() OR new classname(argument1, argument2,..., argumentn) Clock myclock; Clock yourclock; myclock = new Clock(); yourclock = new Clock(9, 35, 15); Java Programming: Program Design Including Data Structures 14 Variable Declaration and Object Instantiation (continued) Java Programming: Program Design Including Data Structures 15 5

Accessing Class Members To access a data member of a class object or method: referencevariablename.membername Example 8-1 myclock.settime(5, 2, 30); myclock.printtime(); yourclock.settime(x, y, z); if (myclock.equals(yourclock)) Java Programming: Program Design Including Data Structures 16 Assignment Operator: A Precaution Consider: myclock = yourclock; Copies the value of the reference variable yourclock into the reference variable myclock After execution, both variables refer to same object Java Programming: Program Design Including Data Structures 17 Assignment Operator: A Precaution (continued) Shallow copying: two or more reference variables of the same type point to the same object Deep copying: each reference variable refers to its own object Java Programming: Program Design Including Data Structures 18 6

The Copy Constructor Executes when an object is instantiated Initialized using an existing object Syntax: public ClassName(ClassName otherobject) Java Programming: Program Design Including Data Structures 19 Example: class Clock Java Programming: Program Design Including Data Structures 20 The Method tostring Public value-returning method Takes no parameters Returns address of a String object Output using print, println, printf methods Default definition creates String with name of object s class name followed by hash code of object Java Programming: Program Design Including Data Structures 21 7

The Modifier static In the method heading, specifies that the method can be invoked by using the name of the class If used to declare data member, data member invoked by using the class name Static data members of class exist even when no object of class type instantiated Static variables are initialized to their default values Java Programming: Program Design Including Data Structures 22 Example 8-3 The Modifier static (continued) public class Illustrate { private int x; private static int y; public static int count; public Illustrate() { x = 0; } public Illustrate(int a) { x = a; } Java Programming: Program Design Including Data Structures 23 The Modifier static (continued) void setx(int a) { x = a; } } public String tostring() { return("x = " + x + ", y = " + y + ", count = " + count); } public static void incrementy() { y++; } Illustrate illusobject = new Illustrate(); Illustrate.incrementY(); Illustrate.count++; Java Programming: Program Design Including Data Structures 24 8

The Modifier static (continued) Illustrate illusobject1 = new Illustrate(3); Illustrate illusobject2 = new Illustrate(5); Java Programming: Program Design Including Data Structures 25 Illustrate.incrementY(); Illustrate.count++; The Modifier static (continued) Java Programming: Program Design Including Data Structures 26 Finalizers Automatically execute when class object goes out of scope Have no parameters Only one finalizer per class Name of finalizer: finalize Java Programming: Program Design Including Data Structures 27 9

Accessor and Mutator Methods Accessor method: A method of a class that only accesses (that is, does not modify) the value(s) of the data member(s) Mutator method: modifies the value(s) of the data member(s) Java Programming: Program Design Including Data Structures 28 Creating Packages You can create packages using a reserved word package Define the class to be public. (If class is not public, it can only be used within package.) Choose name for package Organize package (create subdirectories) Java Programming: Program Design Including Data Structures 29 Creating Package for class Clock package jpfpatpd.ch08.clockpackage; public class Clock { //put instance variables and methods, //as before, here } import jpfpatpd.ch08.clockpackage.clock; Java Programming: Program Design Including Data Structures 30 10

The Reference this Refers to instance variables and methods of a class Used to implement cascaded method calls Java Programming: Program Design Including Data Structures 31 Inner Classes Defined within other classes Can be either a complete class definition or an anonymous inner class definition Used to handle events Java Programming: Program Design Including Data Structures 32 Abstract Data Type A data type that specifies the logical properties without the implementation details Java Programming: Program Design Including Data Structures 33 11

Programming Example: Candy Machine (Problem Statement) A new candy machine is bought for the gym, but it is not working properly. The machine sells candies, chips, gum, and cookies. In this programming example, we will write a program to create a Java application program for this candy machine so that it can be put into operation. We will divide this program in two parts. In the first part, we will design a non-gui application program. In the second part, we will design an application program that will create a GUI, as described in the second part. Java Programming: Program Design Including Data Structures 34 Programming Example: Candy Machine (Problem Statement continued) The non-gui application program should do the following: 1. Show the customer the different products sold 2. Let the customer make the selection 3. Show the customer the cost of the item selected 4. Accept money from the customer 5. Release the item Java Programming: Program Design Including Data Structures 35 Programming Example: Candy Machine (Input and Output) Input: The item selection and the cost of the item Output: The selected item Java Programming: Program Design Including Data Structures 36 12

Programming Example: Candy Machine Components: Cash register Dispenser Machine Java Programming: Program Design Including Data Structures 37 Programming Example: Candy Machine (continued) Java Programming: Program Design Including Data Structures 38 Programming Example: Candy Machine (continued) Java Programming: Program Design Including Data Structures 39 13

Programming Example: Candy Machine (continued) Java Programming: Program Design Including Data Structures 40 Programming Example: Candy Machine (continued) Java Programming: Program Design Including Data Structures 41 Programming Example: Candy Machine (continued) Java Programming: Program Design Including Data Structures 42 14

Programming Example: Candy Machine (continued) Java Programming: Program Design Including Data Structures 43 Chapter Summary Creating classes Members of a class: private protected public static Implementing classes Various operations on classes Java Programming: Program Design Including Data Structures 44 Chapter Summary (continued) Constructors Finalizers Method tostring Abstract data types Java Programming: Program Design Including Data Structures 45 15