TeachJava 2003 - PowerPoint PPT Presentation

About This Presentation
Title:

TeachJava 2003

Description:

Writing OO programs in Java is remarkably easy -- provided we recognize that it ... But well-written Java programs consist primarily of assignment, if, and return ... – PowerPoint PPT presentation

Number of Views:35
Avg rating:3.0/5.0
Slides: 32
Provided by: tri5114
Learn more at: https://www.cs.rice.edu
Category:
Tags: teachjava | java

less

Transcript and Presenter's Notes

Title: TeachJava 2003


1
TeachJava! 2003
  • Corky Cartwright
  • Dung Nguyen
  • Stephen Wong
  • Charlie Reis, James Hsia, Peter Centgraf

2
From C To Java
  • C and Java have similar syntax.Dont be
    misled!
  • Profoundly different semantics high-level
    objects vs. bytes in memory
  • Profoundly different programming modelsJava is
    object-oriented (OO)C is object-based (OB) in
    normal usage

3
Encouraging Note
  • Writing OO programs in Java is remarkably easy --
    provided we recognize that it is fundamentally
    different than writing OB programs in C.
  • There is little common conceptual ground, other
    than syntactic conventions, beween OO programing
    (OOP) in Java and OB programming in C

4
Guiding Vision
  • Program design in Java is data-directed.Design
    the data abstractions first they will determine
    the structure of the code. In OOP circles, this
    data design process is often called
    object-modeling.
  • Common data abstractions are codified as design
    patterns

5
Secondary Theme
  • DrJava, our lightweight, reactive environment for
    Java, facilitates active learning with DrJava
    learning Java is a form of exploration.
  • DrJava is not a toy DrJava is developed using
    DrJava. It includes everything that we believe
    is important and nothing more.

6
What Is an Object?
  • Collection of fields representing the properties
    of a conceptual or physical object.
  • Collection of operations called methods for
    observing and changing the fields of the object.
  • These fields and methods often called the
    members of the object.

7
Example Phone Directory
  • Task maintain a directory containing the office
    address and phone number for each person in the
    Rice Computer Science Dept.
  • Each entry in such a directory has a natural
    representation as an object with three fields
    containing a persons
  • name
  • address
  • phone number
  • represented as character strings.

8
Summary of Entry format
  • Fields
  • String name
  • String address
  • String phone
  • Methods
  • String getName()
  • String getAddress()
  • String getPhone()

9
Java Method Invocation
  • A Java method m is executed by sending a method
    call o.m()
  • to an object o, called the receiver. The method
    m must be a member of o.
  • The code defining the method m can refer to the
    receiver using the keyword this.

10
Finger Exercise
  • In the DrJava programming environment, open the
    program file Entry.java, compile it, and type the
    following statements in the Interactions pane
  • Entry e new Entry("Corky","DH 3104","x
    6042")e.getName()
  • e.getPhone()

11
Java Expressions
  • Java supports essentially the same expressions
    over primitive types (int, float, double,
    boolean) as C.
  • Notable differences
  • boolean is a distinct type from int
  • no unsigned version of integer types
  • explicit long type

12
Finger Exercise
  • Evaluate the following
  • -5 3
  • -(5 3)
  • 5 3
  • 5./3.
  • 5 / 0
  • 5./0.
  • 3 .1 .1 - 3.
  • 5
  • 5. 6.

13
Finger Exercise cont.
  • 72. - 32. 1.8
  • (72. - 32.) 1.8
  • 72. - 30. - 12.
  • 72. - (30. - 12.)

14
Java Statements
  • Essentially the same form as in C assignment,
    if, while, for, return,
  • But well-written Java programs consist primarily
    of assignment, if, and return statements (with
    smattering of for).
  • Focus on assignment and if for most of the week.

15
Assignment
  • Restricted form of assignment variable
    definition
  • type var exp
  • Example
  • int x 5

16
Finger Exercise
  • int x 5
  • xx
  • double d .000001
  • double dd dd
  • dd
  • dddd
  • 1. dd
  • 1. dddd

17
Finger Exercise cont.
  • Evaluate
  • int x 7
  • if (x 5) y 0 else y 10
  • y
  • Did you get the behavior that you expected?
    Repeat the exercise with corrected syntax.
  • Evaluate
  • boolean switch1 (x 7)
  • switch1
  • Repeat the exercise with corrected syntax.

18
Classes Object Templates
  • A Java program is a collection of classes.
  • A class is an object template consisting of a
    collection of members--fields and methods-- plus
    a constructor, which is a special method used to
    initialize objects when created.

19
Example Class Entry
  • class Entry
  • / fields /
  • String name
  • String address
  • String phone
  • / constructor /
  • Entry(String n, String a, String p)
  • this.name n
  • this.address a
  • this.phone p
  • / accessors /
  • String getName() return this.name
  • String getAddress() return this.address
  • String getPhone() return this.phone

20
Finger Exercise
  • In the Definitions pane of DrJava, enter the
    Java program defining the Entry class. In the
    Interactions pane, evaluate the following program
    text
  • Entry e new Entry("Corky", "DH 3104", "x
    6042")
  • e.getName()
  • e.getAddress()
  • e.getPhone()
  • Save your program for future use in a file named
    Entry.java.

21
Java Data Types
  • Two fundamental categories
  • Primitive types int, boolean, double, float,
    char, long, short, byte (first three are most
    common)
  • Object types all class instances (objects)
    belong to object types, which are disjoint from
    the primitive types
  • Value of primitive type (e.g., true, 0) are not
    objects

22
Object Types
  • Organized in a strict hierarchy with the
    universal type Object at the top.
  • Every class C except Object has an immediate
    superclass, which is the parent of C in the
    hierarchy. In a class definition (like our Entry
    example), the default superclass is Object.
  • A descendant in the class hierarchy is called a
    subclass. B is a subclass of A iff A is a
    superclass of B. Entry is a subclass of Object
    Object is a superclass of Entry.

23
Example the String class
  • The String class is built-in to Java, just like
    Object.
  • Finger Exercise evaluate
  • String s "Corky"
  • Object o s
  • o
  • s
  • o s
  • String t "Cork" "y
  • t s
  • hello hello
  • Multiple copies of the same String may exist do
    not use to test String equality.

24
Object Types cont.
  • Each subclass C inherits (includes) all of the
    members of its superclass.
  • The declared members of C augment the inherited
    members with one exception if C declares a
    method m with exactly the same name and types as
    an inherited method, then the new definition of m
    overrides (replaces) the inherited definition.

25
Inheritance from Object
  • The Object class has several members that its
    children inherit. They include the methods
  • public String toString() which gives a String
    representation for the object.
  • public boolean equals(Object o) which compares
    this to o

26
Example of Overriding
  • class Entry
  • / fields /
  • String name
  • String address
  • String phone
  • / constructor /
  • Entry(String n, String a, String p)
  • this.name n
  • this.address a
  • this.phone p
  • / accessors /
  • String getName() return this.name
  • String getAddress() return this.address
  • String getPhone() return this.phone

27
Finger Exercise
  • Open your Entry class into the DrJava Definitions
    pane.
  • Compile your program and evaluate
  • Entry e new Entry("Corky", "DH 3104", "x
    6042")e
  • Add the definition of toString() from the
    previous slide to your Entry class.
  • Compile your program and evaluate
  • Entry e new Entry("Corky", "DH 3104", "x
    6042")

28
The Wrapper Classes
  • How do we treat primitive values as objects?
    Java includes a builtin wrapper class for each
    primitive type.
  • Examples
  • Integer is the wrapper class for int
  • Boolean is the wrapper class for boolean
  • Double is the wrapper class for double

29
Finger Exercise
  • In the DrJava Interactions evaluate the
    following
  • Integer i new Integer(5)
  • i
  • Integer j i
  • i j
  • Integer k new Integer(5)
  • i k
  • i.equals(k)

30
Constructors
  • Given a class definition, Java provides a
    mechanism called new for creating new instances
    of the class.
  • To exploit the new, the class must provide a
    special method called a constructor that
    specifies how the fields of the created object
    are initialized.
  • A constructor method has the same name as the
    class and does not contain the return type in the
    heading.
  • Example
  • Entry(String n, String a, String p)
  • this.name n
  • this.address a
  • this.phone p
  • If a class does not include a constructor, Java
    provides a default constructor (of no arguments)
    that does nothing.

31
Finger Exercise
  • Add a second constructor
  • Entry(String n)
  • to the Entry class where n specifies the name of
    the entry. Use any reasonable default value,
    e.g., "unknown" for the address and phone fields.
  • Evaluate the expression
  • new Entry("Matthias")
Write a Comment
User Comments (0)
About PowerShow.com