1 / 31

Introduction to Object-Oriented Programming

Introduction to Object-Oriented Programming. CS 102-02 Lecture 1-3. 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. Types of Data. Related data Automobiles

pauld
Download Presentation

Introduction to Object-Oriented Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Object-Oriented Programming CS 102-02 Lecture 1-3

  2. 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

  3. Types of Data • Related data • Automobiles • Whole numbers • Fractions • Sentences

  4. 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

  5. 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.”?

  6. 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

  7. 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

  8. 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

  9. Inheritance

  10. Same Car, Different View

  11. 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.drawString( "Welcome to Java Programming!", 25, 25 ); } } A “Welcome” is a kind of “Applet”

  12. Reuse, Reuse, Reuse “Writing good software is hard, so avoid it whenever possible.” - Kurt Fenstermacher • O-O concepts make it easy to reuse • Inheritance: Someone else creates the general, and you add specifics • Composition: Put the puzzle pieces together

  13. 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?

  14. “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.

  15. Examples of Classes • Related groups of things constitute a class • Share the same structure, actions (behavior) and similarly derived • Aardvarks • Airports • Applets

  16. Classes in Java If you’ll need a group of related objects, create a class: class Point { int x, y; } Define a class with: classclassname{ Class definition (some data and/or some actions) }

  17. Classes Have Data • Airport class • Gates • Runways • Airlines • Class data goes inside the class definition, usually at the very beginning: public class Time1 { private int hour; // 0 - 23 private int minute; // 0 - 59 private int second; // 0 - 59

  18. 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

  19. 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

  20. 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”

  21. 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

  22. 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? You want a new what?

  23. Java Object Magic • Creating objects is easy in Java • Forget about memory ‘cuz Java’s simple • Want another airport, just call new again!

  24. 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

  25. Building Time public class Time1 { private int hour; // 0 - 23 private int minute; // 0 - 59 private int second; // 0 - 59 // Time1 constructor initializes each // instance variable to zero. Ensures // that each Time1 object starts in a // consistent state. public Time1() { setTime( 0, 0, 0 ); } Constructors have the same name as the class Anybody can create a new Time1 object

  26. 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, ...

  27. 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, ...

  28. Hiding Data in Java public class Time1 { private int hour; // 0 - 23 private int minute; // 0 - 59 private int second; // 0 - 59 // Time1 constructor initializes each instance variable // to zero. Ensures that each Time1 object starts in a // consistent state. public Time1() { setTime( 0, 0, 0 ); } Nobody can mess with hour, minute or second Nobody can set hour = “ABC” or minute = “456.45”

  29. Hiding Time public class Time1 { private int hour; // 0 - 23 private int minute; // 0 - 59 private int second; // 0 - 59 // Time1 constructor initializes each // instance variable to zero. Ensures // that each Time1 object starts in a // consistent state. public Time1() { setTime( 0, 0, 0 ); } Anybody can create a new Time1 object One of our reasons for data hiding

  30. 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

  31. Object Oriented Means… II • Hiding data: Only the essentials are visible to the outside world • Modularity: Group related abstractions together

More Related