page 4.1 – autumn 2010steffen vissing andersen sdj i1, autumn 2010 agenda – session 4 – 7....
TRANSCRIPT
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 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 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.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 4.5 – Autumn 2010 Steffen Vissing Andersen
UML Class Diagram
Page 4.6 – Autumn 2010 Steffen Vissing Andersen
UML Class Diagram
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 4.8 – Autumn 2010 Steffen Vissing Andersen
Message class – UML Class Diagram
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 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 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 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 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 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 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 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 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 4.18 – Autumn 2010 Steffen Vissing Andersen
Rectangle – UML Class diagram
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 4.20 – Autumn 2010 Steffen Vissing Andersen
RectangleDemo
Class Diagram
Object DiagramRectangle box = new Rectangle(10.0, 20.0);
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