page 4.1 – autumn 2010steffen vissing andersen sdj i1, autumn 2010 agenda – session 4 – 7....

21
Page 4.1 – Autumn 2010 Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2 Classes and Objects

Upload: melinda-wade

Post on 18-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.1 – Autumn 2010 Steffen Vissing Andersen

SDJ I1, Autumn 2010

Agenda – Session 4 – 7. September 2009

• Java fundamentals, checkpoint from chapter 2• Classes and Objects

Page 2: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.2 – Autumn 2010 Steffen Vissing Andersen

Checkpoints from Chapter 2

• Checkpoints• 2.1-2.3, 2.5-2.6 p. 36• 2.10-2.11 p. 48-49• 2.12-2.18, 2.20-2.22 p. 59• 2.22-2.23 p.65• 2.24 p. 67• 2.26 p. 71

• Review Questions page 105• Question 1-12, 15-21

Page 3: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.3 – Autumn 2010 Steffen Vissing Andersen

Strings

• String is an Object Data Type (a Class)• The Class String is defined in package java.lang

• Strings can be concatenated just by adding them

public class TestStrings { public static void main(String[] args) { String name1 = "Bob" String name2 = "Pete"; System.out.println("Hello " + name1

+ " and " + name2); }}

Page 4: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.4 – Autumn 2010 Steffen Vissing Andersen

import java.util.Scanner;public class StringTest{ public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter name of city: "); String city = input.nextLine();

System.out.println(“Number of letters: " + city.length()); System.out.println("Uppercase: " + city.toUpperCase()); System.out.println("Lowercase: " + city.toLowerCase()); System.out.println("First character: " + city.charAt(0)); }}

Using Strings – an example

Page 5: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.5 – Autumn 2010 Steffen Vissing Andersen

UML Class Diagram

Page 6: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.6 – Autumn 2010 Steffen Vissing Andersen

UML Class Diagram

Page 7: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.7 – Autumn 2010 Steffen Vissing Andersen

public class Message{

private String message;

public Message(String message){

this.message = message;}public String getMessage(){

return message;}

}

Message class

Page 8: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.8 – Autumn 2010 Steffen Vissing Andersen

Message class – UML Class Diagram

Page 9: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.9 – Autumn 2010 Steffen Vissing Andersen

public class MessageTest{ public static void main(String[] args) {

Message oneMessage = new Message("Hello world!");

System.out.println(oneMessage.getMessage()); }}

Using the Message class

Page 10: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.10 – Autumn 2010 Steffen Vissing Andersen

Object Oriented Concepts

• Objects• Attributes• Behaviour

• Object Oriented Analysis and Design - OOAD• What? – Analysis of Requirements• How? – Design

• Object Oriented Programming - OOP• Implementation (Writing Code)• Testing

Page 11: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.11 – Autumn 2010 Steffen Vissing Andersen

Characteristics of Objects

• Objects in Real Life• Can perform certain Actions• Actions can have effect on other Objects in the World• Have a certain State at a certain Time

• Objects in an OO-Programming Language• Can perform Actions (has Operations/Methods)• Can perform Actions on other Objects (Collaboration)• Have a certain State at a certain Time (Values stored in

Attributes/Fields)

Page 12: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.12 – Autumn 2010 Steffen Vissing Andersen

• Class

• The general Description of all Objects of a given Type (Example: “Car”, “Person”, “House”, “Ball”, …)The Template for all Objects of the same Class

• Object

• Represent ‘things’ from the real World (Example: “the red Car in the Car Park”, “the Person to your right”

Classes and Objects

–color : String

Car

–name : String

Person

color : String = "red"

myCar : Car

name : String = "Peter"

peter : Person

+getColor() : String +getName() : String

Page 13: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.13 – Autumn 2010 Steffen Vissing Andersen

Some Observations of Objects

Encapsulation • The Data in an Object are hidden for the

outside world and can only be accessed inside the Object

• The Data in an Object is accessed through the Objects Methods/Operations

Abstraction • The Details about functionality are hidden in

the Object (Class) itself

Page 14: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.14 – Autumn 2010 Steffen Vissing Andersen

UML versus Java

UML Java

public class Person { // fields private String name; private String address; private int ssn; private int age;

// methods void eat() { } void walk(int speed) { }}

Attributes

Fields

Operations

Methods

Parameters

Arguments

Data Type

+walk(speed : int)+eat()

-name : String-address : String-ssn : int-age : int

Person

Page 15: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.15 – Autumn 2010 Steffen Vissing Andersen

Class Rectangle (1/3)

public class Rectangle{ private double length; private double width;

public Rectangle(double len, double w) { length = len; width = w; }

public void setLength(double len) { length = len; }

- Same Name as Class Name

- No return type

Constructor

Page 16: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.16 – Autumn 2010 Steffen Vissing Andersen

Class Rectangle (2/3)

public void setWidth(double w) { width = w; }

public void set(double len, double w) { length = len; width = w; }

public double getLength() { return length; }

Page 17: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.17 – Autumn 2010 Steffen Vissing Andersen

Class Rectangle (3/3)

public double getWidth() { return width; }

public double getArea() { return length * width; }

} // end of class Rectangle

Page 18: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.18 – Autumn 2010 Steffen Vissing Andersen

Rectangle – UML Class diagram

Page 19: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.19 – Autumn 2010 Steffen Vissing Andersen

RectangleDemo

public class RectangleDemo{ public static void main(String[] args) { Rectangle box = new Rectangle(10.0, 20.0);

System.out.println("The length is " + box.getLength()); System.out.println("The width is " + box.getWidth()); System.out.println("The area is " + box.getArea()); }}

Page 20: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.20 – Autumn 2010 Steffen Vissing Andersen

RectangleDemo

Class Diagram

Object DiagramRectangle box = new Rectangle(10.0, 20.0);

Page 21: Page 4.1 – Autumn 2010Steffen Vissing Andersen SDJ I1, Autumn 2010 Agenda – Session 4 – 7. September 2009 Java fundamentals, checkpoint from chapter 2

Page 4.21 – Autumn 2010 Steffen Vissing Andersen

Constructors – Creating Objects

• Default constructor – a no-argument constructor• Ex.: Rectangle rect1 = new Rectangle();

• Constructors with arguments• Ex.: Rectangle rect2 = new Rectangle(10.0);• Ex.: Rectangle rect3 = new Rectangle(10.0, 20.0);

• Implementing Constructors• If no Constructors are explicitly defined by the

programmer (you) then a default constructor is provided by the compiler