Classes - PowerPoint PPT Presentation

About This Presentation
Title:

Classes

Description:

A metaclass is a class whose instances are classes. ... achieved through appropriate libraries supporting Reflection and Introspection. ... – PowerPoint PPT presentation

Number of Views:20
Avg rating:3.0/5.0
Slides: 23
Provided by: TKPr6
Learn more at: http://cecs.wright.edu
Category:

less

Transcript and Presenter's Notes

Title: Classes


1
Classes
2
  • Class Instance (Object)
  • Static structure vs Run-time structure
  • (Analogy -- a statue Lincoln Memorial)
  • Class Abstract Data Type
  • A class is an ADT equipped with a possibly
    partial implementation.
  • Class Metaclass
  • A metaclass is a class whose instances are
    classes. (Useful for manipulating class
    representations at run-time by interpreters,
    browsers, etc.)

3
Abstraction Equivalence Relations
  • Computability
  • Recursive vs Non-recursive
  • Semantics
  • Behavioral Equivalence
  • Resource-independent interchangeability
  • Performance aspect irrelevant for correctness
  • E.g., Groups, Fields, Sorting, UNIX, etc
  • Complexity (Algorithms)
  • Time and Space requirements
  • Big-Oh (Worst-case Analysis)
  • NP-hard vs Polynomial-time

4
Specification of Data Types Motivation
  • Precise and unambiguous description.
  • Sound and complete description.
  • Avoids over-specification.
  • Spec Flexible enough to accommodate all possible
    implementations.
  • Impl. Constraining enough to exploit
    representation details for efficiency.

5
Specification of Data Types Details
  • Type Values Operations
  • Specify
  • Syntax Semantics
  • Signature of Ops Meaning of Ops
  • Model-based
    Axiomatic(Algebraic)
  • Description in terms of
    Give axioms satisfied
  • standard primitive data types
    by the operations

6
ADT Table (symbol table/directory)
  • empty Table
  • update Key x Info x Table -gt Table
  • lookUp Key x Table -gt Info
  • lookUp(K,empty) error
  • (Use of variable) (Alternative Use of
    Preconditions)
  • lookUp(K,update(Ki, I, T))
  • if K Ki then I else
    lookUp(K,T)
  • (last update overrides the others)

7
Implementations
  • Array-based
  • LinearList-based
  • Tree-based
  • Binary Search Trees, AVL Trees, B-Trees etc
  • HashTable-based
  • These exhibit a common Table behavior, but differ
    in performance aspects.
  • Correctness of a client program is assured even
    when the implementation is changed.

8
Java approach to metaclass benefits
  • To make available certain features to all
    classes, Java defines a root class (class
    Object) with those features. E.g., Thread support
    (locks), cloning, equality check, string
    representation, etc
  • Certain class operations are given special
    status. E.g., creation and initialization of an
    object is incorporated via constructors.
  • Meta-programming is achieved through appropriate
    libraries supporting Reflection and
    Introspection. E.g., In Java 1.1, package
    java.lang.reflect.

9
Class as module and type
  • Module (unit of software decomposition)
  • Syntactic Only affects the form of software
    text, not what the software can do. Separately
    compilable.
  • Type (static description of dynamic objects)
  • Semantic Influences execution of a software
    system by defining objects manipulated at
    run-time.
  • The facilities provided by a class, viewed
    as a module, are precisely the operations on
    instances of the class.

10
Example class Point
  • Features/Members
  • Attributes/Fields (represented using memory)
  • Routines/Methods (represented using computation)
  • real x-coord, y-coord
  • real radius, angle
  • real distance(Point)
  • void translate(real x,y)

11
Feature Classification by Role
No result
Returns result
Procedure
Arguments
No Arguments
Function
Computation
Memory
Routine
Function
Attribute (Field)
12
Feature Classification by Implementation
Computation
Memory
Routine (Method)
Attribute (Field)
Result
No result
Procedure
Function
13
Uniform Access principle
  • A client should be able to access a property
    (feature) of an object using a single notation
    whether the property is implemented by memory or
    by computation.
  • Eiffel 0-ary routine f and attribute f have
    the same syntax. Attributes cannot be directly
    assigned.
  • Java 0-ary method syntax is f() (not f). In
    SmallTalk/Java Beans, a field is accessed via
    getF() and/or setF(valueType) methods.

14
Object-Oriented Style of Computation
  • Single Target Principle
  • Every operation is relative to a certain object.
  • E.g., pt1.distance(pt2)
  • Current Instance
  • May be implicit, or referred to explicitly using
    a keyword such as this (Java/C), self (Self),
    Current (Eiffel), etc.
  • Module-Type Identification

15
  • double distance( Point p )
  • if (p / this)
  • return Math.sqrt(
  • (x - p.x) (x - p.x)
  • (y - p.y) (y - p.y) )
  • else
  • return 0

16
Composition Client and Supplier
  • A class C which contains a declaration of the
    form S x is said to be a client of S. S is
    said to be a supplier (server) of C.
  • x may be an attribute or a function of C, or a
    local entity or argument of a routine of C.

17
Feature Calls
  • Qualified calls
  • x.f or x.f()
  • x.f(a,b,)
  • Unqualified calls
  • f or f()
  • f(a,b,)
  • Equivalently,
  • this.f or this.f()
  • this.f(a,b,)
  • Operators
  • infix
  • associativity
  • prefix
  • Operator definitions supported in order to be
    consistent with the standard mathematical
    notations.
  • A B, - 5, etc.

18
Selective Export and Information Hiding
  • Eiffel has a general mechanism to export a
    feature to designated clients and their proper
    descendants.
  • Java and C support three levels
  • public all clients.
  • private (all instances of) current class.
  • protected all subclasses.
  • Default package wide visibility.

19
Function In-lining in C
  • Interface file ( .h extension ).
  • Contains prototype declarations, and (short)
    function definitions that may be in-lined.
  • Implementation file ( .c extension ).
  • Contains function definitions, possibly with
    inline directive.
  • In-lining enables programmers to have benefits of
    encapsulation while avoiding some of the run-time
    costs of function invocation.

20
Genericity
  • Unconstrained
  • Type parameterized classes
  • Generic type ListG
  • Instantiations Listint, ListString,
    ListWindow, etc
  • Constrained
  • Types with operations
  • Constrained Genericity Ordered, Group, etc
  • Java interface types.

21
  • type INTMAT is array ( POSITIVE range ltgt,
    POSITIVE range ltgt) of integer
  • function int_sum_all( M INTMAT ) return
    integer is
  • sum integer 0
  • begin
  • for I in M'range(1) loop
  • for J in M'range(2) loop
  • sum sum M(I,J)
  • end loop
  • end loop
  • return (sum)
  • end

22
  • generic
  • type ET is private type INDEX is (ltgt)
  • ID ET type AR is
  • array ( INDEX range ltgt, INDEX range
    ltgt) of ET
  • with function "" ( X,Y ET ) return ET is ltgt
  • function sum_all( M AR ) return ET
  • function sum_all( M AR ) return ET is
  • sum ET ID
  • begin
  • for I in M'range(1) loop
  • for J in M'range(2) loop
  • sum sum M(I,J)
  • end loop
  • end loop
  • return (sum)
  • end
Write a Comment
User Comments (0)
About PowerShow.com