Presentation is loading. Please wait.

Presentation is loading. Please wait.

COS 260 DAY 3 Tony Gauvin.

Similar presentations


Presentation on theme: "COS 260 DAY 3 Tony Gauvin."— Presentation transcript:

1 COS 260 DAY 3 Tony Gauvin

2 Agenda Questions Assignment 1 posted Miniquiz 1 Today
Due September 15 Miniquiz 1 Today 30 min, open book Less than 10 questions over chapter 1 One Extra Credit Password “BabyGeeseEatAcorns” Finish Objects and Classes Begin Understanding Class Definitions

3 Objects and Classes Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

4 Java Data Types Integers  int, byte, short and long
Real numbers  float and double Logic  boolean Character  char Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

5 Source code Each class has source code (Java code) associated with it that defines its details (fields and methods). Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

6 Java Code Person person1 = new person(); person1.makevisible();
person1.moveright(); person1.moveHorizontal(50); Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

7 Review Classes model concepts. Source code realises those concepts.
Source code defines: What objects can do (methods). What data they store (attributes). Objects come into existence with pre-defined attribute values. The methods determine what objects do with their data. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

8 Review When a method is called an object:
Alters its state, and/or Uses its data to decide what to do. Some methods take parameters that affect their actions. Methods without parameters typically use their state to decide what to do. Some methods return a value. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

9 Review Most programs contain multiple classes.
At runtime, objects interact with each other to realize the overall effect of the program. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

10 House Project Use House
Exercise 1.18 & 1.19 in class follow along – modifies where we left off with figures project © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

11 Understanding class definitions Chap 2
Objects First with Java Understanding class definitions Chap 2 Exploring source code 6.0 © David J. Barnes and Michael Kölling

12 Main concepts to be covered
Objects First with Java Main concepts to be covered fields constructors methods parameters assignment statements © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

13 Objects First with Java
Ticket machines Demo Source: Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling © David J. Barnes and Michael Kölling

14 Ticket machines – an external view
Objects First with Java Ticket machines – an external view Exploring the behavior of a typical ticket machine. Use the naive-ticket-machine project. Machines supply tickets of a fixed price. How is that price determined? How is ‘money’ entered into a machine? How does a machine keep track of the money that is entered? © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

15 Objects First with Java
Ticket machines Demo of naïve-ticket-machine © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

16 Ticket machines – an internal view
Objects First with Java Ticket machines – an internal view Interacting with an object gives us clues about its behavior. Looking inside allows us to determine how that behavior is provided or implemented. All Java classes have a similar-looking internal view. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

17 Objects First with Java
Basic class structure The outer wrapper of TicketMachine public class TicketMachine { Inner part omitted. } public class ClassName { Fields Constructors Methods } The inner contents of a class © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

18 Keywords Words with a special meaning in the language:
public class private int Also known as reserved words. Always entirely lower-case. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

19 Objects First with Java
Fields Fields store values for an object. They are also known as instance variables. Fields define the state of an object. Use Inspect to view the state. Some values change often. Some change rarely (or not at all). public class TicketMachine { private int price; private int balance; private int total; Further details omitted. } type visibility modifier variable name private int price; © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

20 Objects First with Java
Constructors public TicketMachine(int cost) { price = cost; balance = 0; total = 0; } Initialize an object. Have the same name as their class. Close association with the fields: Initial values stored into the fields. Parameter values often used for these. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

21 Passing data via parameters
Objects First with Java Passing data via parameters Parameters are another sort of variable. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

22 Objects First with Java
Assignment Values are stored into fields (and other variables) via assignment statements: variable = expression; balance = balance + amount; A variable can store just one value, so any previous value is lost. pattern example © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

23 Choosing variable names
There is a lot of freedom over choice of names. Use it wisely! Choose expressive names to make code easier to understand: price, amount, name, age, etc. Avoid single-letter or cryptic names: w, t5, xyz123 © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

24 Next concepts to be covered
Objects First with Java Next concepts to be covered Methods: including accessor and mutator methods; String concatenation; Conditional statements; Local variables. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

25 Objects First with Java
Methods Methods implement the behavior of objects. Methods have a consistent structure comprised of a header and a body. Accessor methods provide information about an object. Mutator methods alter the state of an object. Other sorts of methods accomplish a variety of tasks. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

26 Method structure The header: The header tells us:
public int getPrice() The header tells us: the visibility to objects of other classes; whether the method returns a result; the name of the method; whether the method takes parameters. The body encloses the method’s statements. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

27 Accessor (get) methods
Objects First with Java Accessor (get) methods return type visibility modifier method name parameter list (empty) public int getPrice() { return price; } return statement start and end of method body (block) © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

28 Accessor methods An accessor method always has a return type that is not void. An accessor method returns a value (result) of the type given in the header. The method will contain a return statement to return the value. Return must be handled by the calling code NB: Returning is not printing! © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

29 Get accessor methods public int getDiscount { retutn discount; }
© 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

30 Objects First with Java
Test public class CokeMachine { private price; public CokeMachine() price = 300 } public int getPrice return Price; What is wrong here? (there are five errors!) © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

31 Objects First with Java
Test public class CokeMachine { private price; public CokeMachine() price = 300 } public int getPrice return Price; int What is wrong here? ; (there are five errors!) () - } © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

32 Objects First with Java
Mutator methods Have a similar method structure: header and body. Used to mutate (i.e., change) an object’s state. Achieved through changing the value of one or more fields. They typically contain one or more assignment statements. Often receive parameters. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

33 Objects First with Java
Mutator methods visibility modifier return type method name formal parameter public void insertMoney(int amount) { balance = balance + amount; } assignment statement field being mutated © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

34 set mutator methods Fields often have dedicated set mutator methods.
These have a simple, distinctive form: void return type method name related to the field name single formal parameter, with the same type as the type of the field a single assignment statement © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

35 A typical set method public void setDiscount(int amount) { discount = amount; } We can easily infer that discount is a field of type int, i.e: private int discount; © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

36 Protective mutators A set method does not have to always assign unconditionally to the field. The parameter may be checked for validity and rejected if inappropriate. Mutators thereby protect fields. Mutators support encapsulation. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

37 Objects First with Java
Printing from methods public void printTicket() { // Simulate the printing of a ticket. System.out.println("##################"); System.out.println("# The BlueJ Line"); System.out.println("# Ticket"); System.out.println("# " + price + " cents."); System.out.println(); // Update the total collected with the balance. total = total + balance; // Clear the balance. balance = 0; } © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

38 Objects First with Java
String concatenation 4 + 5 9 "wind" + "ow" "window" "Result: " + 6 "Result: 6" "# " + price + " cents" "# 500 cents" overloading try out in codepad © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

39 Objects First with Java
Quiz System.out.println( "hello"); System.out.println("hello" ); 11hello hello56 © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

40 Method summary Methods implement all object behavior.
A method has a name and a return type. The return-type may be void. A non-void return type means the method will return a value to its caller. A method might take parameters. Parameters bring values in from outside for the method to use. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

41 Reflecting on the ticket machines
Objects First with Java Reflecting on the ticket machines Their behavior is inadequate in several ways: No checks on the amounts entered. No refunds. No checks for a sensible initialization. How can we do better? We need the ability to choose between different courses of action. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

42 Making choices in everyday life
If I have enough money left, then I will go out for a meal otherwise I will stay home and watch a movie. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

43 Making a choice in everyday life
if(I have enough money left) { I will go out for a meal; } else { I will stay home and watch a movie; } © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

44 Objects First with Java
Making choices in Java ‘if’ keyword boolean condition to be tested actions if condition is true if(perform some test) { Do these statements if the test gave a true result } else { Do these statements if the test gave a false result actions if condition is false ‘else’ keyword © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

45 Making a choice in the ticket machine
Objects First with Java Making a choice in the ticket machine public void insertMoney(int amount) { if(amount > 0) { balance = balance + amount; } else { System.out.println( "Use a positive amount: " + amount); conditional statement avoids an inappropriate action © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

46 Objects First with Java
Variables – a recap Fields are one sort of variable. They store values through the life of an object. They are accessible throughout the class. Parameters are another sort of variable: They receive values from outside the method. They help a method complete its task. Each call to the method receives a fresh set of values. Parameter values are short lived. (life of the method) © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

47 Scope highlighting © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

48 Objects First with Java
Scope and lifetime Each block defines a new scope. Class, method and statement. Scopes may be nested: statement block inside another block inside a method body inside a class body. Scope is static (textual). Lifetime is dynamic (runtime). © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

49 How do we write a method to ‘refund’ an excess balance?
Objects First with Java How do we write a method to ‘refund’ an excess balance? write method in BlueJ; first: do it wrong © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

50 Unsuccessful attempt public int refundBalance() { // Return the amount left. return balance; // Clear the balance. balance = 0; } It looks logical, but the language does not allow it. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

51 Local variables Methods can define their own, local variables:
Short lived, like parameters. The method sets their values – unlike parameters, they do not receive external values. Used for ‘temporary’ calculation and storage. They exist only as long as the method is being executed. They are only accessible from within the method. They are defined within a particular scope. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

52 Objects First with Java
Local variables A local variable public int refundBalance() { int amountToRefund; amountToRefund = balance; balance = 0; return amountToRefund; } No visibility modifier © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

53 Scope and lifetime The scope of a field is its whole class.
The lifetime of a field is the lifetime of its containing object. The scope of a local variable is the block in which it is declared. The lifetime of a local variable is the time of execution of the block in which it is declared. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

54 In Class Exercise Goal: Write a Java Program from Scratch using BlueJ
Requirements: Keep track of the score for a sports game where goals = 1 point Update game score when Home team scores Update game score when Away team scores Print score on demand Reset score to 0-0 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

55 Objects First with Java
Review (1) Class bodies contain fields, constructors and methods. Fields store values that determine an object’s state. Constructors initialize objects – particularly their fields. Methods implement the behavior of objects. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

56 Objects First with Java
Review (2) Fields, parameters and local variables are all variables. Fields persist for the lifetime of an object. Local variables are used for short-lived temporary storage. Parameters are used to receive values into a constructor or method. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling

57 Review (3) Methods have a return type.
void methods do not return anything. non-void methods always return a value. non-void methods must have a return statement. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

58 Objects First with Java
Review (4) ‘Correct’ behavior often requires objects to make decisions. Objects can make decisions via conditional (if) statements. A true-or-false test allows one of two alternative courses of actions to be taken. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. © David J. Barnes and Michael Kölling


Download ppt "COS 260 DAY 3 Tony Gauvin."

Similar presentations


Ads by Google