Скачать презентацию Introduction to Object-Oriented Programming CS 102 -02 Lecture Скачать презентацию Introduction to Object-Oriented Programming CS 102 -02 Lecture

a007d6751132ed085f9d539720fdf035.ppt

  • Количество слайдов: 34

Introduction to Object-Oriented Programming CS 102 -02 Lecture 1 -3 April 3, 1998 CS Introduction to Object-Oriented Programming CS 102 -02 Lecture 1 -3 April 3, 1998 CS 102 -02 Lecture 1 -3

Before You Write a Program. . . • Decide on data – What input Before You Write a Program. . . • Decide on data – What input does your program need? – What data will it manipulate? – What information will it produce? • Actions – Things your program does April 3, 1998 CS 102 -02 Lecture 1 -3

Types of Data • Related data – Automobiles – Whole numbers – Fractions – Types of Data • Related data – Automobiles – Whole numbers – Fractions – Sentences April 3, 1998 CS 102 -02 Lecture 1 -3

How Do Actions and Data Relate? • Actions can act on data – Square How Do Actions and Data Relate? • Actions can act on data – Square root procedures act on numbers – Problem: Need different actions for different data • Actions and data can coexist – Objects combine both data and actions into one package April 3, 1998 CS 102 -02 Lecture 1 -3

Driving a Car • When you step on the gas in a car, do Driving a Car • When you step on the gas in a car, do you think: – “I’m calling the accelerate procedure and passing it a pink Chevy Malibu and a pedal position. ” – Or, “Chevy Malibus ‘know’ how to accelerate already and I’m just asking the car to do its thing. ”? April 3, 1998 CS 102 -02 Lecture 1 -3

The World is Full of Objects I • Some objects in the world, and The World is Full of Objects I • Some objects in the world, and what they can do: Object Actions Chevy Malibus Stop, go, turn Microscopes Focus, insert slide, remove slide Hotels Make up rooms, check in guests April 3, 1998 CS 102 -02 Lecture 1 -3

The World is Full of Objects II • Some objects in the world, and The World is Full of Objects II • Some objects in the world, and what they know: Object Data Chevy Malibus Gas level, coolant level, top speed Microscopes Slide light on? Hotels Number of conference rooms April 3, 1998 CS 102 -02 Lecture 1 -3

How are Objects Related? So, Nat'ralists observe, a Flea Hath smaller Fleas that on How are Objects Related? So, Nat'ralists observe, a Flea Hath smaller Fleas that on them prey, And these have smaller Fleas to bite 'em, And so proceed ad infinitum. -J. Swift April 3, 1998 CS 102 -02 Lecture 1 -3

Object Relationships • Objects can contain other objects – Composition – “Has a” (or Object Relationships • Objects can contain other objects – Composition – “Has a” (or “hath” if you’re an English author) relationship • Objects are more specific versions of other objects – Inheritance – “Is a” relationship April 3, 1998 CS 102 -02 Lecture 1 -3

Inheritance April 3, 1998 CS 102 -02 Lecture 1 -3 Inheritance April 3, 1998 CS 102 -02 Lecture 1 -3

Same Car, Different View April 3, 1998 CS 102 -02 Lecture 1 -3 Same Car, Different View April 3, 1998 CS 102 -02 Lecture 1 -3

The Welcome Applet // A first program in Java // import Applet class import The Welcome Applet // A first program in Java // import Applet class import java. applet. Applet; // import Graphics class import java. awt. Graphics; public class Welcome extends Applet { public void paint( Graphics g ) { g. draw. String( "Welcome to Java Programming!", 25 ); } } A “Welcome” is a kind of “Applet” April 3, 1998 CS 102 -02 Lecture 1 -3

Reuse, Reuse “Writing good software is hard, so avoid it whenever possible. ” - Reuse, Reuse “Writing good software is hard, so avoid it whenever possible. ” - Me • O-O concepts make it easy to reuse – Inheritance: Someone else creates the general, and you add specifics – Composition: Put the puzzle pieces together April 3, 1998 CS 102 -02 Lecture 1 -3

Building an Airport • What actions do airports know how to perform? • What Building an Airport • What actions do airports know how to perform? • What attributes do airports have? • Are airports a kind of something? • What kinds of airports are there? • Do airports have logical subparts? April 3, 1998 CS 102 -02 Lecture 1 -3

“Just Like Summer Vacation, -No Class” • A class is a specification of : “Just Like Summer Vacation, -No Class” • A class is a specification of : – Structure (the data, a. k. a. instance variables) – Actions (methods) – Inheritance (parents, or derived structure and actions) for objects. April 3, 1998 CS 102 -02 Lecture 1 -3

Examples of Classes • Related groups of things constitute a class • Share the Examples of Classes • Related groups of things constitute a class • Share the same structure, actions (behavior) and similarly derived – Aardvarks – Airports – Applets April 3, 1998 CS 102 -02 Lecture 1 -3

Classes in Java If you’ll need a group of related objects, create a class: Classes in Java If you’ll need a group of related objects, create a class: class Point { int x, y; } Define a class with: classname { Class definition (some data and/or some actions) } April 3, 1998 CS 102 -02 Lecture 1 -3

Classes Have Data • Airport class – Gates – Runways – Airlines • Class Classes Have Data • Airport class – Gates – Runways – Airlines • Class data goes inside the class definition, usually at the very beginning: public class Time 1 { private int hour; private int minute; private int second; April 3, 1998 CS 102 -02 // 0 - 23 // 0 - 59 Lecture 1 -3

Classes Know Actions • Classes aren’t just data, but actions too – At the Classes Know Actions • Classes aren’t just data, but actions too – At the airport • Delivering baggage • Preparing for plane’s arrival – Class actions are called methods April 3, 1998 CS 102 -02 Lecture 1 -3

Types • Type is similar to class: a collection of data and actions • Types • Type is similar to class: a collection of data and actions • Usually, we’ll consider type and class to be the same thing – In Java there are interfaces and classes April 3, 1998 CS 102 -02 Lecture 1 -3

Abstract Data Types • ADTs (from HTP 6. 16) are implemented in Java with Abstract Data Types • ADTs (from HTP 6. 16) are implemented in Java with classes – An airport class represents the abstract notion of a class – The Platonic “form” April 3, 1998 CS 102 -02 Lecture 1 -3

Objects are Instances Airport : O’Hare : : Class : Object • Classes are Objects are Instances Airport : O’Hare : : Class : Object • Classes are the overarching concepts – Concept “airport” is an abstract notion • Objects are instances of those classes – O’Hare, LAX and Heathrow are concrete instances of airports April 3, 1998 CS 102 -02 Lecture 1 -3

Creating an Object Give the variable a name Some airport specification Use new: Airport Creating an Object Give the variable a name Some airport specification Use new: Airport peotone = new Airport(“Peotone, IL”); What type of variable is it? April 3, 1998 You want a new what? CS 102 -02 Lecture 1 -3

Java Object Magic • Creating objects is easy in Java – Forget about memory Java Object Magic • Creating objects is easy in Java – Forget about memory ‘cuz Java’s simple • Want another airport, just call new again! April 3, 1998 CS 102 -02 Lecture 1 -3

Creating Instances from Classes • Real-world – Spend money to hire construction crews – Creating Instances from Classes • Real-world – Spend money to hire construction crews – Lay asphalt – Build roads • In Java, build airports with constructors – Special methods defined in a class which set up new objects – Same name as class April 3, 1998 CS 102 -02 Lecture 1 -3

Building Time public class Time 1 { private int hour; private int minute; private Building Time public class Time 1 { private int hour; private int minute; private int second; // 0 - 23 // 0 - 59 Constructors have the same name as the // Time 1 constructor initializes each class // instance variable to zero. Ensures // that each Time 1 object starts in a // consistent state. public Time 1() { set. Time( 0, 0, 0 ); } Anybody can create a new Time 1 object April 3, 1998 CS 102 -02 Lecture 1 -3

Hiding (a. k. a. Encapsulating) Data • Airport operations – Do you know: • Hiding (a. k. a. Encapsulating) Data • Airport operations – Do you know: • Outer marker? • NDB? • ATIS Frequency for O’Hare? • Use the airport because you only need to know a little – Parking lot, ticket counter, baggage claim, . . . April 3, 1998 CS 102 -02 Lecture 1 -3

Why Hide Data? • Can’t break it – What if you could change the Why Hide Data? • Can’t break it – What if you could change the tower frequency? – Double-check data • Easier for you – What if you couldn’t get on a plane without knowing how to operate a jetway? • Inner workings can change – Change the guts of the airport, but don’t change the ticket counter, baggage claim, . . . April 3, 1998 CS 102 -02 Lecture 1 -3

Hiding Data in Java public class Time 1 { private int hour; private int Hiding Data in Java public class Time 1 { private int hour; private int minute; private int second; // 0 - 23 // 0 - 59 // Time 1 constructor initializes each instance variable // to zero. Ensures that each Time 1 object starts in a // consistent state. public Time 1() { set. Time( 0, 0, 0 ); } Nobody can mess with hour, minute or second Nobody can set hour = “ABC” or minute = “ 456. 45” April 3, 1998 CS 102 -02 Lecture 1 -3

Hiding Time public class Time 1 { private int hour; private int minute; private Hiding Time public class Time 1 { private int hour; private int minute; private int second; // 0 - 23 // 0 - 59 // Time 1 constructor initializes each // instance variable to zero. Ensures // that each Time 1 object starts in a // consistent state. public Time 1() { set. Time( 0, 0, 0 ); } Anybody can create a new Time 1 object April 3, 1998 One of our reasons for data hiding CS 102 -02 Lecture 1 -3

Airport Modules Modular Design Passenger Terminal Maintenance & Storage • View related abstractions together Airport Modules Modular Design Passenger Terminal Maintenance & Storage • View related abstractions together • Modules are useful only if they’re loosely connected – Passenger Terminal and Maintenance, not a Door and its hinges April 3, 1998 CS 102 -02 Lecture 1 -3

Modularity in Java • Java has two ways to separate modules: – Classes • Modularity in Java • Java has two ways to separate modules: – Classes • Use class to define • Separate classes with access modifiers – Packages • Group related classes together • Optionally, declare a package using package in the first line of the file package transportation. airport; • Without package, code is part of the default package April 3, 1998 CS 102 -02 Lecture 1 -3

Object-Oriented Means… I • Objects: Combining data and actions under one roof • Hierarchies: Object-Oriented Means… I • Objects: Combining data and actions under one roof • Hierarchies: An ranking of abstractions – Inheritance: The “is a” hierarchy – Composition: The “part of” hierarchy • Abstraction: What distinguishes an object from other kinds objects, given a particular perspective April 3, 1998 CS 102 -02 Lecture 1 -3

Object Oriented Means… II • Hiding data: Only the essentials are visible to the Object Oriented Means… II • Hiding data: Only the essentials are visible to the outside world • Modularity: Group related abstractions together April 3, 1998 CS 102 -02 Lecture 1 -3