CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: www.csc.villanova.edu/~map/1051/

Slides:



Advertisements
Similar presentations
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 4: Writing Classes Presentation slides for Java Software Solutions for AP* Computer Science.
Advertisements

1 Classes, Encapsulation, Methods and Constructors (Continued) Class definitions Instance data Encapsulation and Java modifiers Method declaration and.
Chapter 4: Writing Classes
© 2006 Pearson Education Chapter 4: Writing Classes Presentation slides for Java Software Solutions for AP* Computer Science A 2nd Edition by John Lewis,
Chapter 4 Writing Classes. © 2004 Pearson Addison-Wesley. All rights reserved4-2 Writing Classes We've been using predefined classes. Now we will learn.
Chapter 4 Writing Classes. © 2004 Pearson Addison-Wesley. All rights reserved4-2 Writing Classes The programs we’ve written in previous examples have.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Chapter Day 7. © 2007 Pearson Addison-Wesley. All rights reserved4-2 Agenda Day 7 Questions from last Class?? Problem set 1 Corrected  Good results 3.
ECE122 L6: Problem Definition and Implementation February 15, 2007 ECE 122 Engineering Problem Solving with Java Lecture 6 Problem Definition and Implementation.
Classes, Encapsulation, Methods and Constructors
Aalborg Media Lab 26-Jun-15 Software Design Lecture 5 “ Writing Classes”
Chapter 4 Writing Classes. We've been using predefined classes. Now we will learn to write our own classes to define objects Chapter 4 focuses on:  class.
Chapter 4: Writing Classes Presentation slides for Java Software Solutions Foundations of Program Design Third Edition by John Lewis and William Loftus.
Chapter 4 Writing Classes 5 TH EDITION Lewis & Loftus java Software Solutions Foundations of Program Design © 2007 Pearson Addison-Wesley. All rights reserved.
ELC 312 Day 6. © 2004 Pearson Addison-Wesley. All rights reserved4-2 Agenda Questions? Problem set two Posted in WebCT  Due Sept 30  On Page 153&154.
Copyright © 2012 Pearson Education, Inc. Chapter 4 Writing Classes Java Software Solutions Foundations of Program Design Seventh Edition John Lewis William.
Chapter 4: Writing Classes Presentation slides for Java Software Solutions for AP* Computer Science by John Lewis, William Loftus, and Cara Cocking Java.
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 4: Writing Classes Presentation slides for Java Software Solutions for AP* Computer Science.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley John Lewis, Peter DePasquale, and Joseph Chase Chapter 5: Writing Classes.
Chapter 4 Writing Classes. © 2004 Pearson Addison-Wesley. All rights reserved2/48 Writing Classes We've been using predefined classes. Now we will learn.
Writing Classes (Chapter 4)
Objects and Classes. Problem Solving The key to designing a solution is breaking it down into manageable pieces When writing software, we design separate.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Chapter 4 Writing Classes 5 TH EDITION Lewis & Loftus java Software Solutions Foundations of Program Design © 2007 Pearson Addison-Wesley. All rights reserved.
GP3, Martin Lillholm 1 Introductory Programming (GP) Spring 2006 Lecture 3 We start at 13:00 Slides are available from the course home page Feel free to.
Chapter 4 -2 part Writing Classes 5 TH EDITION Lewis & Loftus java Software Solutions Foundations of Program Design © 2007 Pearson Addison-Wesley. All.
CSE 1201 Object Oriented Programming Writing Classes.
Chapter 4 Writing Classes Part 2. © 2004 Pearson Addison-Wesley. All rights reserved4-2 Classes A class can contain data declarations and method declarations.
© 2004 Pearson Addison-Wesley. All rights reserved September 12, 2007 Encapsulation ComS 207: Programming I (in Java) Iowa State University, FALL 2007.
Chapter 4 Writing Classes. © 2004 Pearson Addison-Wesley. All rights reserved4-2 Writing Classes We've been using predefined classes. Now we will learn.
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.
Wednesday –POD –I have updated grades in powerschool. If you have a zero for a lab grade, it probably means you didn’t DropItToMe. Please do so. –Slides.
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 4: Writing Classes Presentation slides for Java Software Solutions for AP* Computer Science.
Programming in Java (COP 2250) Lecture 10 Chengyong Yang Fall, 2005.
Chapter 4 Writing Classes. © 2004 Pearson Addison-Wesley. All rights reserved4-2 Writing Classes We've been using predefined classes. Now we will learn.
Copyright © 2012 Pearson Education, Inc. Chapter 4 Writing Classes Java Software Solutions Foundations of Program Design Seventh Edition John Lewis William.
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 4: Writing Classes Presentation slides for Java Software Solutions for AP* Computer Science.
Chapter 4 Writing Classes. © 2004 Pearson Addison-Wesley. All rights reserved4-2 Writing Classes We've been using predefined classes. Now we will learn.
Chapter 4 Writing Classes 5 TH EDITION Lewis & Loftus java Software Solutions Foundations of Program Design © 2007 Pearson Addison-Wesley. All rights reserved.
Outline Anatomy of a Class Encapsulation Anatomy of a Method Graphical Objects Graphical User Interfaces Buttons and Text Fields Copyright © 2012 Pearson.
1 Chapter 4: Writing Classes  Chapter 4 focuses on: class definitions encapsulation and Java modifiers method declaration, invocation, and parameter passing.
Outline Anatomy of a Class Encapsulation Anatomy of a Method Copyright © 2014 Pearson Education, Inc.
© 2004 Pearson Addison-Wesley. All rights reserved3-1 Objects Declaration: String title;  title (object variable) of type String( Class )  title is just.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Copyright © 2012 Pearson Education, Inc. Chapter 4 Writing Classes : Review Java Software Solutions Foundations of Program Design Seventh Edition John.
Chapter 4: Writing Classes
Chapter 4: Writing Classes
CSC 1051 – Data Structures and Algorithms I
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.
Chapter 4: Writing Classes
Chapter 4 Writing Classes.
Methods The real power of an object-oriented programming language takes place when you start to manipulate objects. A method defines an action that allows.
Chapter 5 – Writing Classes
Chapter 4 Writing Classes.
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
Chapter 4 Writing Classes.
Group Status Project Status.
Classes, Encapsulation, Methods and Constructors (Continued)
Chapter 4 Writing Classes
Anatomy of a Method.
Writing Classes.
Outline Anatomy of a Class Encapsulation Anatomy of a Method
Encapsulation September 13, 2006 ComS 207: Programming I (in Java)
4 Writing Classes Software Solutions Lewis & Loftus java 5TH EDITION
Presentation transcript:

CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: CSC 1051 M.A. Papalaskari, Villanova University Designing Classes – part 2

Getting to know classes so far Predefined classes from the Java API. Defining classes of our own … CSC 1051 M.A. Papalaskari, Villanova University Driver classes: –Transactions –RollingDice –YouVeGotShoes (Project 5) –PeopleBeingPeople (Lab 8) Our classes: –Account –Die –Shoe –Person

Next: Review what we learned so far Focus on method definition Encapsulation CSC 1051 M.A. Papalaskari, Villanova University

class declaration CSC 1051 M.A. Papalaskari, Villanova University Constructor deposit() withdraw() long acctNumber; double balance; String name; Data declarations Method declarations toString() Review

CSC 1051 M.A. Papalaskari, Villanova University //******************************************************************** // Transactions.java Author: MA Papalaskari // (based on Lewis/Loftus example) // Demonstrates the creation and use of multiple Account objects. //******************************************************************** public class Transactions1 { // // Creates some bank accounts and requests various services. // public static void main (String[] args) { Account acct1 = new Account ("Ted Murphy", 72354, ); Account acct2 = new Account ("Jane Smith", 69713, 40.00); System.out.println (acct1); System.out.println (acct2); acct1.deposit (25.85); System.out.println (); System.out.println (acct1); System.out.println (acct2); } } Review driver classes

acct acctNumber balance name "Ted Murphy" CSC 1051 M.A. Papalaskari, Villanova University Object creation: Constructors Account acct1 = new Account ("Ted Murphy", 72354, ); public Account (String owner, long account, double initial) { acctNumber = account; balance = initial; name = owner; } Review

Account class acct acctNumber balance name "Ted Murphy" CSC 1051 M.A. Papalaskari, Villanova University acct1.withdraw (60,2); // // Withdraws the specified amount from the account // and applies the fee. // public void withdraw (double amount, double fee) { balance = balance - amount - fee; } Review

acct acctNumber balance name "Ted Murphy" CSC 1051 M.A. Papalaskari, Villanova University toString() method System.out.prinltn(acct1); public String toString () { NumberFormat fmt = NumberFormat.getCurrencyInstance(); return (acctNumber +"\t”+ name +"\t”+ fmt.format(balance)); } Review

Method definition –parameters –return type –return statement char calc (int num1, int num2, String message) { int sum = num1 + num2; char result = message.charAt (sum); return result; } ch = obj.calc (25, count, "Hello"); CSC 1051 M.A. Papalaskari, Villanova University

myMethod(); myMethodcompute Method Control Flow If the called method is in the same class, only the method name is needed CSC 1051 M.A. Papalaskari, Villanova University

doIt helpMe helpMe(); obj.doIt(); main Method Control Flow The called method is often part of another class or object CSC 1051 M.A. Papalaskari, Villanova University

More Method Examples: Write a method that has one int parameter num, and prints “Happy Birthday” num times CSC 1051 M.A. Papalaskari, Villanova University

More Method Examples: Write a method with two double paramenters a and b that computes and returns the sum of squares: a 2 + b 2 of its two int parameters CSC 1051 M.A. Papalaskari, Villanova University

More Method Examples: Write a method that has one int parameter num, and returns the String “Happy Birthday” num times CSC 1051 M.A. Papalaskari, Villanova University

Encapsulation An encapsulated object can be thought of as a black box -- its inner workings are hidden from the client The client invokes the interface methods and they manage the instance data Methods Data Client CSC 1051 M.A. Papalaskari, Villanova University

Violating Encapsulation experiment Revisit your solution for the Account Class ExerciseAccount Class Exercise Add some code to the OnePercent.java class to modify the value of an instance variable, eg: Now modify Account.java – insert the word private in front of that variable declaration: Re-compile the Account class and run your program again. Note the error you get. CSC 1051 M.A. Papalaskari, Villanova University acct1.name = “Joe”; private String name;

Violating Encapsulation It is possible for a class to access the instance data of another class directly Methods Data Client CSC 1051 M.A. Papalaskari, Villanova University

Violating Encapsulation - Example It is possible for a class to access the instance data of another class directly – but it’s not a good idea! See Account.java (modified) Account.java See ImInUrClassMessingUrInstanceData.java ImInUrClassMessingUrInstanceData.java deposit() withdraw() addInterest() name acctNumber balance Transactions.java CSC 1051 M.A. Papalaskari, Villanova University acct1.name = “Joe”; Account.java

Visibility Modifiers In Java, we enforce encapsulation through the appropriate use of visibility modifiers: –public – can be referenced from other classes –private – can be referenced only within that class: –protected – involves inheritance (discussed later) Data declared without a visibility modifier have default visibility and can be referenced by any class in the same package An overview of all Java modifiers is presented in Appendix E CSC 1051 M.A. Papalaskari, Villanova University

public constants are ok - Example Add some code to OnePercent.java to print out the interest rate used for the accounts: System.out.println ("Interest rate = " + acct1.RATE); CSC 1051 M.A. Papalaskari, Villanova University

public constants are ok - Example Add some code to OnePercent.java to print out the interest rate used for the accounts: System.out.println ("Interest rate = " + acct1.RATE); Normally, constants are declared as static. If RATE had been declared as follows: final static double RATE = 0.03; Then the last statement above would have been: System.out.println ("Interest rate = " + Account.RATE); CSC 1051 M.A. Papalaskari, Villanova University

Visibility Modifiers – the RULES publicprivate Variables Methods Yes Yes, for support methods only Yes NO (but OK for public constants) CSC 1051 M.A. Papalaskari, Villanova University

Encapsulation – Accessing the data Indirect access through methods accessors and mutators (“getters” and “setters”) Usually named getX() and setX() deposit() withdraw() addInterest() name acctNumber balance Transactions.java CSC 1051 M.A. Papalaskari, Villanova University acct1.getBalance() Account.java Methods Data Example

Encapsulation – Mutators (setters) can restrict access to the data, as appropriate Example: Say a class has an instance variable: private int quantity; The mutator may also work to ensure that quantity, does not become negative: public void setQuantity(int num) { if (num<0) { System.out.println("*Error in setQuantity()"); System.out.println("negative quantity."); System.out.println("quantity not changed."); } else quantity = num; } CSC 1051 M.A. Papalaskari, Villanova University