CS100J Lecture 7 Previous Lecture This Lecture Java Constructs

Slides:



Advertisements
Similar presentations
Looking inside classes Fields, Constructors & Methods Week 3.
Advertisements

Based on Java Software Development, 5th Ed. By Lewis &Loftus
Copyright 2008 by Pearson Education Building Java Programs Chapter 8 Lecture 8-3: Encapsulation, toString reading: self-checks: #13-18,
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. Instance Variables Instance variables store the data of an object; the fields of an object. Instance of a class: an object.
Big Java by Cay Horstmann Copyright © 2009 by John Wiley & Sons. All rights reserved. Chapter Three - Implementing Classes.
CS 100Lecture 61 CS100J Lecture 6 n Previous Lecture –Programming Concepts n Programming by stepwise refinement –a pattern –sequential refinement –case.
Unit 4II 1 More about classes H Defining classes revisited H Constructors H Defining methods and passing parameters H Visibility modifiers and encapsulation.
Java Programming Chapter 3 More about classes. Why?  To make classes easier to find and to use  to avoid naming conflicts  to control access  programmers.
CS 100Lecture 41 CS100J Lecture 4 n Previous Lecture –Programming Concepts n iteration n programming patterns (templates) –Java Constructs n while-statements.
ECE122 L6: Problem Definition and Implementation February 15, 2007 ECE 122 Engineering Problem Solving with Java Lecture 6 Problem Definition and Implementation.
Chapter 9: Classes with Instance Variables or Classes=Methods+Variables Asserting Java © Rick Mercer.
Chapter 3 Implementing Classes. Chapter Goals To become familiar with the process of implementing classes To be able to implement simple methods To understand.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 4 Defining Your Own Classes.
Understanding class definitions Looking inside classes.
Writing Classes (Chapter 4)
Introduction to Object-Oriented Programming
Week 4 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Chapter 7 Objects and Classes 1 Fall 2012 CS2302: Programming Principles.
ACO 101: Introduction to Computer Science Anatomy Part 2: Methods.
Inheritance - Polymorphism ITI 1121 Nour El Kadri.
Chapter 4 -2 part Writing Classes 5 TH EDITION Lewis & Loftus java Software Solutions Foundations of Program Design © 2007 Pearson Addison-Wesley. All.
Week 4 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
JAVA Classes Review. Definitions Class – a description of the attributes and behavior of a set of computational objects Constructor – a method that is.
1 Announcements Note from admins: Edit.cshrc.solaris instead of.tcshrc Note from admins: Do not use delta.ece.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
© 2004 Pearson Addison-Wesley. All rights reserved September 14, 2007 Anatomy of a Method ComS 207: Programming I (in Java) Iowa State University, FALL.
CS 100Lecture 21 CS100J: Lecture 2 n Previous Lecture –Programming Concepts n problem, algorithm, program, computer, input, output, sequential execution,
Chapter 3: Developing Class Methods Object-Oriented Program Development Using Java: A Class-Centered Approach.
CS 100Lecture 111 CS100J Lecture 11 n Previous Lecture –Scope of names and the lifetime of variables n blocks and local variables n methods and parameters.
72 4/11/98 CSE 143 Abstract Data Types [Sections , ]
Topics Instance variables, set and get methods Encapsulation
CS 100Lecture71 CS100J Lecture 7 n Previous Lecture –Computation and computational power –Abstraction –Classes, Objects, and Methods –References and aliases.
CS 100Lecture 11 Introduction to Programming n What is an algorithm? n Input and output n Sequential execution n Conditional execution Reading: Chapter.
©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 3: An Introduction to Classes 1 Chapter 3 An Introduction to Classes.
Outline Anatomy of a Class Encapsulation Anatomy of a Method Graphical Objects Graphical User Interfaces Buttons and Text Fields Copyright © 2012 Pearson.
Object-Oriented Programming: Classes and Objects Chapter 1 1.
Big Java by Cay Horstmann Copyright © 2009 by John Wiley & Sons. All rights reserved. Chapter Three - Implementing Classes.
Chapter 3 Implementing Classes
COMPUTER SCIENCE & TECHNOLOGY DEGREE PROGRAMME FACULTY OF SCIENCE & TECHNOLOGY UNIVERSITY OF UVA WELLASSA ‏ Properties of Object Oriented Programming.
Comp1004: Building Better Objects II Encapsulation and Constructors.
Copyright © 2012 Pearson Education, Inc. Chapter 4 Writing Classes : Review Java Software Solutions Foundations of Program Design Seventh Edition John.
Classes and Objects: Encapsulation
Lecture 3 John Woodward.
Examples of Classes & Objects
Object-Oriented Programming: Classes and Objects
Writing Classes Chapter 4.
Writing Classes We've been using predefined classes from the Java API. Now we will learn to write our own classes. Chapter 4 focuses on: class definitions.
CompSci 230 S Programming Techniques
Chapter 4: Writing Classes
Chapter Three - Implementing Classes
Defining Your Own Classes Part 1
Ch 4: Writing Classes Java Software Solutions Foundations of Program Design Sixth Edition by Lewis & Loftus Coming up: Classes and Objects.
Chapter 4: Writing classes
Classes & Objects: Examples
Building Java Programs
Encapsulation and Constructors
More on Classes and Objects
CS100J Lecture 11 Previous Lecture This Lecture
CS2011 Introduction to Programming I Objects and Classes
CS100J Lecture 8 Previous Lecture This Lecture Programming Concepts
Outline Anatomy of a Class Encapsulation Anatomy of a Method
JAVA CLASSES.
Introduction to Object-Oriented Programming
Building Java Programs
CS 1054: Lecture 2, Chapter 1 Objects and Classes.
Previous Lecture: Today’s Lecture: Reading (JV):
Chapter 5 Classes.
Introduction to Computer Science and Object-Oriented Programming
Presentation transcript:

CS100J Lecture 7 Previous Lecture This Lecture Java Constructs Computation and computational power Abstraction Classes, Objects, and Methods References and aliases Reading: Lewis & Loftus, Chapter 4 and Section 5.1 Savitch, Chapter 4 This Lecture Programming Concepts Classes, Objects, and Methods --- reiterated Accessors Encapsulation Java Constructs return statement Visibility modifiers public private CS 100 Lecture7

Class Definition A class is a named group of declarations and methods class class-name { declarations-and-methods } A method is a named parameterized group of declarations and statements Method definition return-type method-name( parameter-list ) declaration-and-statement-list CS 100 Lecture7

Class Definition Example class Account { int balance; // current balance int deposits; // deposits to date int withdrawals; // withdrawals to date // deposit d to account void deposit(int d) balance = balance + d; deposits = deposits + d; } // withdraw w from account void withdraw(int w) balance = balance - w; withdrawals = withdrawals + w; CS 100 Lecture7

Object Instantiation The value of expression new class-name() is a reference to a new object of the given class-name CS 100 Lecture7

Object Instance Example An object is a collection of instance variables (also known as fields) and methods An object can be referred to as a unit balance deposits withdrawals deposit withdraw fields methods CS 100 Lecture7

Access to Fields and Methods If r is an expression whose value refers to an object o of class c f is a field of o m is a method of o then r.f is a variable of object o r.m is a method of o CS 100 Lecture7

Application Setting Process bank account transactions: The input consists of zero or more non-zero integers signifying “transactions”, followed by 0. A positive value is a deposit. A negative value is a withdrawal. Assume the account has an initial balance of 0, process all transactions, and output: Final balance Total of all deposits Total of all withdrawals Sample input data 100 200 -50 0 Sample output Balance: 250 Deposits: 300 Withdrawals: 50 CS 100 Lecture7

Application Example int amount; // current transaction Account account = new Account(); /* Read and process all transactions. */ amount = in.readInt(); while ( amount != 0 ) { if ( amount >= 0 ) account.deposit(amount); else account.withdraw(-amount); } /* Output summary information. */ System.out.println( ”Balance: ” + account.balance ); ”Deposits: ” + account.deposits ”Withdrawals: ” + account.withdrawals CS 100 Lecture7

Application Example, cont. The code for the application would be in a different class from Account, say /* Process banking stransactions. */ import java.io.*; public class TrivialApplication { public static void main(String args[]) declarations // Initialize Text object in to read // from standard input. TokenReader in = new TokenReader(System.in); statements } CS 100 Lecture7

Methods that Return Values Method invocation object-expression . method-name(expression-list) Method execution initialize the parameters with the values of the argument expressions execute the statement-list of the method thereafter, continue where you were before Non-void methods with return-type t can return a value of type t using the statement return expression ; A method that just returns the value of a field is called an field accessor. CS 100 Lecture7

Class Definition Example, Version 2 class Account { int balance; // current balance int deposits; // deposits to date int withdrawals; // withdrawals to date // deposit d to account void deposit(int d) { balance = balance + d; deposits = deposits + d; } // withdraw w from account void withdraw(int w) { balance = balance - w; withdrawals = withdrawals + w; // field accessors int getBalance() { return balance; } int getDeposits() { return deposits; } int getWithdrawals() { return withdrawals; } methods for accessing field values CS 100 Lecture7

Application Example, Version 2 int amount; // current transaction Account account = new Account(); /* Read and process all transactions. */ amount = in.readInt(); while ( amount != 0 ) { if ( amount >= 0 ) account.deposit(amount); else account.withdraw(-amount); } /* Output summary information. */ System.out.println( ”Balance: ” + account.getBalance() ); ”Deposits: ” + account.getDeposits() ”Withdrawals: ” + account.getWithdrawals() field values accessed via methods field values accessed via methods field values accessed via methods CS 100 Lecture7

Field Modifiers A field declarations and method definitions can have a modifier Declarations modifier type name ; Method definitions modifier return-type method-name( parameter-list ) { statement-list } Possible modifiers are: public private others later A private field or method is not visible from outside the class definition. CS 100 Lecture7

Class Definition Example, Version 3 fields hidden from clients class Account { private int balance; // current balance private int deposits; // deposits to date private int withdrawals; // withdrawals to date // deposit d to account void deposit(int d) { balance = balance + d; deposits = deposits + d; } // withdraw w from account void withdraw(int w) { balance = balance - w; withdrawals = withdrawals + w; // field accessors int getBalance() { return balance; } int getDeposits() { return deposits; } int getWithdrawals() { return withdrawals; } CS 100 Lecture7

Class Definition Example, Version 4 balance field deleted class Account { private int deposits; // deposits to date private int withdrawals; // withdrawals to date // deposit d to account void deposit(int d) { deposits = deposits + d; } // withdraw w from account void withdraw(int w) { withdrawals = withdrawals + w; // return computed balance int getBalance() { return deposits - withdrawals; // field accessors int getDeposits() { return deposits; } int getWithdrawals() { return withdrawals; } balance computed CS 100 Lecture7

Encapsulation and Information Hiding The users of a class and its objects are called its clients. The author of a class is called its implementor. Information hiding principle. Implementors hide implementation details inside a class definition so clients can’t see them. In particular, they make all fields private. The methods of a class provide services to clients. The interface of a class is the contract in which the implementor commits to deliver certain services to the clients. Implementors are free to change the implementation of a class provided the interface doesn’t change, i.e. provided clients can’t see any change in services. CS 100 Lecture7