Chapter 5: Classes and Objects in Depth. Introduction to methods

Similar documents
Chapter 5: Classes and Objects in Depth. Information Hiding

Chapter 4 Defining Classes I

Objects and Classes. 1 Creating Classes and Objects. CSCI-UA 101 Objects and Classes

Handout 7. Defining Classes part 1. Instance variables and instance methods.

Chapter 4. Defining Your Own Classes Part 1. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

Chapter 9 Objects and Classes. Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved.

COMP 202. More on OO. CONTENTS: static revisited this reference class dependencies method parameters variable scope method overloading

Chapter 4. Defining Classes I

AP Computer Science Chapter 10 Implementing and Using Classes Study Guide

Class, Variable, Constructor, Object, Method Questions

Chapter 6 Introduction to Defining Classes

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

Anatomy of a Class Encapsulation Anatomy of a Method

CS 2530 INTERMEDIATE COMPUTING

Classes and Objects 3/28/2017. How can multiple methods within a Java class read and write the same variable?

Objectives: Lab Exercise 1 Part 1. Sample Run. Part 2

Distributed Systems Recitation 1. Tamim Jabban

Chapter3: Introduction to Classes and Objects

Kapil Sehgal PGT Computer. Science Ankleshwar Gujarat

CH. 2 OBJECT-ORIENTED PROGRAMMING

Unit 4: Classes and Objects Notes

Object Oriented Programming in C#

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.

Chapter 4. Defining Your Own Classes Part 1

Darshan Institute of Engineering & Technology for Diploma Studies Unit 3

Introduction to Programming Using Java (98-388)


COMP 202. More on OO. CONTENTS: static revisited this reference class dependencies method parameters variable scope method overloading

Review questions. Review questions, cont d. Class Definition. Methods. Class definition: methods. April 1,

Table of Contents Date(s) Title/Topic Page #s. Chapter 4: Writing Classes 4.1 Objects Revisited

CS1083 Week 2: Arrays, ArrayList

STUDENT LESSON A5 Designing and Using Classes

ECE 122. Engineering Problem Solving with Java

Chapter 10 Introduction to Classes

Methods. Bok, Jong Soon

Programming in C. main. Level 2. Level 2 Level 2. Level 3 Level 3

Programming II (CS300)

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming

Methods and Data (Savitch, Chapter 5)

Programming II (CS300)

Programming: Java. Chapter Objectives. Chapter Objectives (continued) Program Design Including Data Structures. Chapter 7: User-Defined Methods

MIDTERM REVIEW. midterminformation.htm

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

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

ECOM 2324 COMPUTER PROGRAMMING II

( &% class MyClass { }

CS212 Midterm. 1. Read the following code fragments and answer the questions.

For example, when we first started Java programming we described the HelloWorld class:

Principles of Object Oriented Programming. Lecture 4

Lecture 5: Methods CS2301

Objects as a programming concept

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

Classes and Methods: Classes

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

EECS168 Exam 3 Review

CSC 1051 Data Structures and Algorithms I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

Java Object Oriented Design. CSC207 Fall 2014

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Classes Basic Overview

Java Primer 1: Types, Classes and Operators

Distributed Systems Recitation 1. Tamim Jabban

Chapter 5 Object-Oriented Programming

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

Designing Classes. Where do objects come from? Where do objects come from? Example: Account datatype. Dr. Papalaskari 1

Interview Questions of C++

Object Oriented Programming SCJ2153. Class and Object. Associate Prof. Dr. Norazah Yusof

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

CS111: PROGRAMMING LANGUAGE II

CS304 Object Oriented Programming Final Term

Lecture 13 & 14. Single Dimensional Arrays. Dr. Martin O Connor CA166

Where do objects come from? Good question!

CS-140 Fall Binghamton University. Methods. Sect. 3.3, 8.2. There s a method in my madness.

9 Working with the Java Class Library

This Week. Fields and Variables. W05 Example 1: Variables & Fields. More on Java classes. Constructors. Modifiers

Notes on Chapter Three

Comments are almost like C++

Java Foundations Certified Junior Associate

Lecture 7: Classes and Objects CS2301

Discover how to get up and running with the Java Development Environment and with the Eclipse IDE to create Java programs.

An Introduction to C++

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

CSCI 161 Introduction to Computer Science

Chapter 7 User-Defined Methods. Chapter Objectives

CS313D: ADVANCED PROGRAMMING LANGUAGE

Software and Programming 1

Classes. Classes. Classes. Class Circle with methods. Class Circle with fields. Classes and Objects in Java. Introduce to classes and objects in Java.

CMPT 117: Tutorial 1. Craig Thompson. 12 January 2009

Chapter 4: Writing Classes

Static Methods. Why use methods?

CSC 1051 Data Structures and Algorithms I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

CS 251 Intermediate Programming Methods and Classes


CS 251 Intermediate Programming Methods and More

Encapsulation. You can take one of two views of an object: internal - the structure of its data, the algorithms used by its methods

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

Unit3: Java in the large. Prepared by: Dr. Abdallah Mohamed, AOU-KW

OOPS Viva Questions. Object is termed as an instance of a class, and it has its own state, behavior and identity.

Chapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc.

Programs as Models. Procedural Paradigm. Class Methods. CS256 Computer Science I Kevin Sahr, PhD. Lecture 11: Objects

JAVA PROGRAMMING LAB. ABSTRACT In this Lab you will learn to define and invoke void and return java methods

Transcription:

Chapter 5: Classes and Objects in Depth Introduction to methods

What are Methods Objects are entities of the real-world that interact with their environments by performing services on demand. Objects of the same class have: the same characteristics: store the same type of data. And the same behavior: provide the same services to their environment. Services that objects provide are called methods. Page 2

Why Methods Information hiding prevent the data an object stores from being directly accessed by outsiders. Encapsulation allows objects containing the appropriate operations that could be applied on the data they store. So, the data that an object stores would be accessed only through appropriate operations. Page 3

Method Declaration Method declaration is composed of: Method header. Method body <method header> { <method body> Page 4

Method Declaration (cont.) <modifiers> <return type> <method name> ( <parameters> ){ <method body> Modifier Return Type Type Method Name Parameters public void setownername ( String name ) { ownername = name; Method body body Page 5

Method Header <modifiers> <return type> <method name> ( <parameters> ){ <method body> The modifiers represent the way the method is accessed. The return type indicates the type of value (if any) the method returns. If the method returns a value, the type of the value must be declared. Returned values can be used by the calling method. Any method can return at most one value. If the method returns nothing, the keyword void must be used as the return type. The parameters represent a list of variables whose values will be passed to the method for use by the method. They are optional. A method that does not accept parameters is declared with an empty set of parameters inside the parentheses. Page 6

Types of methods There 3 different criteria defining types of methods: Modifiers: this criteria is also composed of 3 subcriteria: Visibility: public or private (or protected in csc 113) Shared between all instances or not: class member (static) or instance method. Override able or not (final): to be discussed in CSC 113. Return type: method with or without (void) return value. Parameters: with or without parameters. Page 7

Example of Methods with No-Parameters and No-Return value import java.util.scanner; public class Course { // Attributes private String studentname; private String coursecode ; private static Scanner input = new Scanner(System.in); //Class att. // Methods public void enterdatafromkeyboard() { System.out.print ( Enter the student name: ); studentname = input.next(); System.out.print ( Enter the course code: ); coursecode = input.next(); public void displaydata() { System.out.println ( The student name is: + studentname); System.out.println ( The the course code is: + coursecode); Page 8

Message Passing Principle or Method Invocation Message passing is the principle that allows objects to communicate by exchanging messages. Passing a message to an object means ordering this latter to execute a specific method. Passing messages to objects is also known as method invocation. Page 9

Method Invocation Invoking a method of a given object requires using: the instance variable that refers to this object. the dot (.) operator as following: instancevariable.methodname(arguments) public class CourseRegistration { public static void main(string[] args) { Course course1, course2; //Create and assign values to course1 course1 = new Course( ); course1.enterdatafromkeyboard(); course1.display(); //Create and assign values to course2 course2 = new Course( ); course2.enterdatafromkeyboard(); course2.display(); Page 10

Method Invocation Execution Schema class Client { public static void main(string[] arg) { X obj = new X(); // Block statement 1 obj.method(); // Block statement 2... The client class X {... public void method() { // Method body... Block statement 1 executes The method Invocation Block statement 2 starts Passing Parameters if exist Return result if any The method body starts The method body finishes The client Page 11

Returning a Value from a Method A method returns to the code that invoked it when it: completes all the statements in the method, reaches a return statement, or throws an exception (covered in CSC 113), If the method returns a value: The caller must declare a variable of the same type of the return value. The caller assigns the return value to the variable: variablename = instancevariable.methodname(args); Page 12

The return keyword The method's return type is declared in its method declaration. The return statement is used within the body of the method to return the value. Any method declared void doesn't return a value. It does not need to contain a return statement. It may use a return statement to branch out of a control flow block and exit the method. The return statement is simply used like this: return; Return a value from a such method, will cause a compiler error. Any method that is not declared void: must contain a return statement with a corresponding return value, like this: return returnvalue; The data type of the return value must match the method's declared return type. you can't return an integer value from a method declared to return a boolean. Page 13

Example of a Method with Return value public class Student { // Attributes private String studentname; private int midterm1, midterm2, lab, final ; // Methods public int computetotalmarks() { int value = mid1 + mid2 + lab + final; return value; public class TestStudent { public static void main (String [] args) { Student st = new Student(); int total; total = st.computetotalmarks(); System.out.println(total); Page 14

Template for Methods with Return value public class ClassName { // Attributes... // Methods... public returntype methodname( ) { returntype variablename; // 1 - calculate the value to return // 2 - assign the value to variablename return variablename; public class ClientClass { public static void main (String [] args) { ClassName instancevariable = new ClassName(); returntype receivingvaraiable;... receivingvaraiable = instancevariable.methodname( );... Page 15

Passing Information to a Method The declaration for a method declares the number and the type of the data-items to be passed for that method. Parameters refers to the list of variables in a method declaration. Arguments are the actual values that are passed in when the method is invoked. When you invoke a method, the arguments used must match the declaration's parameters in type and order Page 16

Arguments and Parameters An argument is a value we pass to a method. A parameter is a placeholder in the called method to hold the value of the passed argument. class Sample { public static void main(string[] arg) { Account acct = new Account();... acct.add(400);...... argument class Account {... parameter public void add(double amt) { balance = balance + amt;... Page 17

Matching Arguments and Parameters The number or arguments and the parameters must be the same Arguments and parameters are paired left to right The matched pair must be assignmentcompatible (e.g. you cannot pass a double argument to a int parameter) Page 18

Parameter Passing When a method is called: The parameters are created. The values of arguments are copied into the parameters variables. The variables declared in the method body (called local variables) are created. The method body is executed using the parameters and local variables. When the method finishes: Parameters and local variables are destroyed. Page 19

Passing Objects to a Method As we can pass primitive data type values, we can also pass object references to a method using instance variables. Pass an instance variable to a method means passing a reference of an object. It means that the corresponding parameter will be a copy of the reference of this objects. Because the passing parameter mechanism copies the value of the argument (which is an object reference) into the parameter. The argument and its corresponding parameter refer to the same object. The object is not duplicated. There are two instance variables (the argument and the parameter) referring to the same object. Page 20

How Private Attributes could be Accessed Private attributes are not accessible from outside. Except from objects of the same class. They are accessible: From inside: from the object containing the data itself. From objects of the same class. They are accessible from outside using accessor operations. Getters Setters Page 21

class Course { // Data Member private String studentname; private String coursecode ; public class CourseRegistration { public static void main(string[] args) { Course course1, course2; //Create and assign values to course1 course1 = new Course( ); course1.coursecode= CSC112 ; course1.studentname= Majed AlKebir ; //Create and assign values to course2 course2 = new Course( ); course2.coursecode= CSC107 ; course2.studentname= Fahd AlAmri ; System.out.println(course1.studentName + " has the course + course1.coursecode); System.out.println(course2.studentName + " has the course + course2.coursecode); Page 22

Getters The object point of view Are operations performed by the object returning to outsiders data retrieved from the object state. :Y (Client) Data public object:x private Getters Data The user point of view Are services called from outside allowing to retrieve data from the object state. Getters are: Public With no parameters With return value Page 23

Template for Getters public class ClassName { private datatype1 attribute1;... private datatypen attributen;... public datatype1 getattribute1() { return attribute1;... public datatypen getattributen() { return attributen;... Page 24

Setters The object point of view Are operations performed by the object allowing to receive and store in the object state the data provided by outsiders. The user point of view Are services used by outsiders allowing to provide to the object the data that should be stored in the object state. :Y (Client) Data object:x public private Data Setters are: Public With 1 parameter With no return value Setters Page 25

Template for Setters public class ClassName { private datatype1 attribute1;... private datatypen attributen;... public void setattribute1(datatype1 param){ attribute1 = param;... public void setattributen(datatypen param) { attributen = param;... Page 26

public class Course { // Attributes private String studentname; private String coursecode ;... public String getstudentname() { return studentname; public String getcoursecode() { return coursecode;... public void setstudentname(string val) { studentname = val; public void setcoursecode(string val) { coursecode = val; Page 27

public class CourseRegistration { public static void main(string[] args) { Course course1, course2; //Create and assign values to course1 course1 = new Course( ); course1.setcoursecode( CSC112 ); course1.setstudentname( Majed AlKebir ); //Create and assign values to course2 course2 = new Course( ); course2.setcoursecode( CSC107 ); course2.setstudentname( Fahd AlAmri ); System.out.println(course1.getStudentName() + " has the course + course1.getcoursecode()); System.out.println(course2.getStudentName() + " has the course + course2.getcoursecode()); Page 28

Passing an Object to a Setter Page 29

Using Setters and sharing the same Object The same Student object reference is passed to card1 and card2 using setters Since we are actually passing the same object reference, it results in the owner of two LibraryCard objects referring to the same Student object Page 30

Class Constructors A class is a blueprint or prototype from which objects of the same type are created. Constructors define the initial states of objects when they are created. ClassName x = new ClassName(); A class contains at least one constructor. A class may contain more than one constructor. Page 31

The Default Class Constructor If no constructors are defined in the class, the default constructor is added by the compiler at compile time. The default constructor does not accept parameters and creates objects with empty states. ClassName x = new ClassName(); Page 32

Class Constructors Declaration public <constructor name> ( <parameters> ){ <constructor body> The constructor name: a constructor has the name of the class. The parameters represent values that will be passed to the constructor for initialize the object state. Constructor declarations look like method declarations except that they use the name of the class and have no return type. Page 33

Example of a Constructor with No-Parameter public class Kasree { private int bast; private int maquam; public Kasree() { bast = 0; maquam =1;... Kasree x; A B x = new Kasree ( ) ; A. A. The The instance instance variable variable is is allocated allocated in in memory. memory. B. B. The The object object is is created created with with initial initial state state C. C. The The reference reference of of the the object object created created in in B is is assigned assigned to to the the variable. variable. bast x x Object: Kasree maquam 1 bast 0 Object: Kasree 0 maquam 1 C Page 34 Code State of Memory

Class with Multiple Constructors public class Kasree { private int bast; private int maquam; public Kasree() { bast = 0; maquam =1; public Kasree(int a, int b) { bast = a; if (b!= 0) maquam = b; else maquam = 1;... A. A. The The constructor constructor declared declared with with no-parameter is is used used to to create create the the object object bast B. B. The The constructor constructor declared declared with with parameters parameters is is used used to to create create the the object object x Object: Kasree maquam 1 y 0 Kasree x, y; x = new Kasree() y = new Kasree(4, 3); Code Page 35 A B bast Object: Kasree maquam 3 State of Memory 4

Overloading Two of the components of a method declaration comprise the method signature: the method's name and the parameter types. The signature of the constructors declared above are: Kasree() Kasree(int, int) overloading methods allows implementing different versions of the same method with different method signatures. This means that methods within a class can have the same name if they have different parameter lists. Page 36

Overloading (cont.) Overloaded methods are differentiated by: the number, and the type of the arguments passed into the method. You cannot declare more than one method with: the same name, and the same number and type of parameters. The compiler does not consider return type when differentiating methods. No declaration of two methods having the same signature even if they have a different return type. Page 37