Presentation is loading. Please wait.

Presentation is loading. Please wait.

Encapsulation ◦ Blackbox concept Data and method(s) Hidden details InterfaceEffect(s) methods called class.

Similar presentations


Presentation on theme: "Encapsulation ◦ Blackbox concept Data and method(s) Hidden details InterfaceEffect(s) methods called class."— Presentation transcript:

1

2 Encapsulation ◦ Blackbox concept Data and method(s) Hidden details InterfaceEffect(s) methods called class

3 RelationshipSymbol Line Style Arrow Tip Inheritance-is-a SolidTriangle Interface Implementation DottedTriangle Aggregation-has-a Solid Diamond Dependency DottedOpen UML Relationship Symbols  Aggregation is a stronger form of dependency-see page 467

4

5 Place multiplicity notations near the ends of an association/ dependency. Multiplicity (Cardinality)

6 GJY 1..*

7  Establishes has-a relationship/association between classes  BankAccount  One can navigate from one class to another  instantiation in Java – (note NOT inheritance)

8 package bankaccount; public class BankAccount { private double balance; public BankAccount () { balance=0; } public void deposit (double amount) { balance=balance+amount; } public void withdraw (double amount){ balance=balance - amount; } public double getBalance () { return balance; } package bankaccount; public class Bank { public static void main(String[] args) { BankAccount harrysChecking = new BankAccount(); harrysChecking.deposit(2000.00); harrysChecking.withdraw(500.00); System.out.println(harrysChecking.getBalance()); } Review BankAccount

9 Lab: Part 1 1.Add the interest method to your BankAccount Class 2. Add an account with your name 3. Call interest for Harry and pass 5% or.05 4. Call the interest method for your account and pass the parameter as.08 5. Revise VISIO drawing accordingly

10 Chapter 8, pp 304-307  pre & post conditions  Section 8.5

11  Documentation included in form of comments ◦ Prior to a class ◦ Prior to a method ◦ Begins with “/**” and ends with “*/”  Internal Method comments discouraged

12 Objective: Tells other programmers how to use the method! precondition documentation postcondition documentation

13 Precondition: describes the state of relevant identifiers prior to the function's execution. Includes a reference to what variables are passed to the function. Postcondition: describes the state after the function is executed: the state of attributes after execution the return value if any.

14 Do NOT: 1) Repeat code description! (code is hidden and user/programmer on needs to know what to expect and what must be supplies) 2) Describe how code works 3) Do not use attribute names unless meaningful

15 Precondition Publish preconditions so the caller won't call methods with bad parameters Preconditions

16 Method should let user know if condition is violated. Caution: Text might imply otherwise

17 Condition that is true after a method has completed The return value is computed correctly The object is in a certain state after the method call is completed Don't document trivial postconditions that repeat the @return clause Postconditions

18 /** * precondition: Balance is available for an account * @param amount >=0 * postcondition:The account balance is adjusted to reflect * the deposit. */ public void deposit (double amount) { System.out.println(amount); balance = balance + amount; }

19 Lab: Part 2 Enhance the BankAccount Class  Add preconditions for all methods  Add parameters to documentation as necessary  Add postconditions where applicable  Post Complete labs to DropBoxes located in September 19 th ANGEL Lesson Tab

20  Chapter 10

21  Inheritance : derive a new class from an existing one  Parent class, or superclass, or base class.  Thechild class or subclass.  Component hierarchy:

22  is-a relationship between superclass and a subclass or base class

23 Deposit BankForm parent Is-a component of child

24 Business KMartMacys ServiceBusiness Kinkos RetailBusiness is-a

25 JAVA Example 1: class RetailBusiness extends Business Example 2: class CheckingAccount extends BankAccount { }

26

27 SavingsAccount object inherits the balance instance field from BankAccount, and gains one additional instance field: interestRate : Layout of a Subclass Object

28

29 public class BankAccount { private double balance; /** * PostCondition: A bank account with a zero balance. */ public BankAccount() { balance = 0; } /** @param initialBalance the initial balance PostCondition: A bank account with a given balance is constructed. */ public BankAccount(double initialBalance) { balance = initialBalance; } Continued Next Page

30 /** * PreCondition: a balance exists @param amount the amount to deposit PostCondition: Money is deposited into the bank account. */ public void deposit(double amount) { double newBalance = balance + amount; balance = newBalance; } /** * Precondition: A balance exists @param amount the amount to withdraw PostCondition: Money is withdrawn from the bank account. */ public void withdraw(double amount) { double newBalance = balance - amount; balance = newBalance; } /** PostCondition: Current balance of the bank account exists. @return the current balance */ public double getBalance() { return balance; }} BankAccount Class Continued

31 package infsy535bankacctwithinheritance; public class SavingsAccount extends BankAccount { private double interestRate; /** @param rate the interest rate PostCondition: A bank account with a given interest rate. */ public SavingsAccount(double rate) { interestRate = rate; } /** PostCondition: Added the earned interest to the account balance. */ public void addInterest() { double interest = getBalance() * interestRate / 100; deposit(interest); } } Savings Account


Download ppt "Encapsulation ◦ Blackbox concept Data and method(s) Hidden details InterfaceEffect(s) methods called class."

Similar presentations


Ads by Google