1 / 17

HST 952

HST 952. Computing for Biomedical Scientists Lecture 2. Object Oriented Programming. In this course, we will examine imperative, object-oriented programming (OOP) using Java Imperative OOP: objects issue commands Object: an entity (car, dog, house, person, etc.)

Download Presentation

HST 952

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. HST 952 Computing for Biomedical Scientists Lecture 2

  2. Object Oriented Programming • In this course, we will examine imperative, object-oriented programming (OOP) using Java • Imperative OOP: objects issue commands • Object: an entity (car, dog, house, person, etc.) • In OOP, data and the methods for manipulating the data are grouped together in an object

  3. Object Oriented Programming • To create an OO program we need to identify • all the objects that we want to manipulate • the properties that these objects have • how these objects relate to/interact with each other • This process is called data modeling Example problem: scheduling final exams for four courses that have some of the same students so that no two students have an overlapping exam

  4. Object Oriented Programming • Objects are defined using classes -- an object is an instance of a class • Each class specifies attributes (properties) of an object and the object’s behavior (via methods) • An object can perform actions by invoking methods defined in its class

  5. Object Oriented Programming • To perform a task, find an object and send it a message (a message is a request to perform a method) • If no appropriate object is available, create one using an already defined class • If no class is available that does what you want, write a new class

  6. A simple Java class import java.io.*; /* The SimpleProgram class implements an application * that displays “Hello world!” to the standard output */ public class SimpleProgram { public static void main(String[] args) { // Display the words “Hello world!” System.out.println(“Hello world!”); } } Must be saved in a file called SimpleProgram.java

  7. Object Oriented Programming OOP follows three main design principles: 1. Encapsulation (information hiding) • Users of an object see only what is absolutely necessary for using that object • As an abstraction mechanism, encapsulation frees us from the details of a particular implementation of an object • We can focus on what an object can do (its interface) rather than how it does it

  8. Object Oriented Programming 2. Polymorphism (e.g., method overriding) • an instruction (via a single method name) can be issued using different types of objects • different actions are performed depending on the objects used • E.g., draw method for a shape will depend on the specific shape object (square, circle, triangle)

  9. Object Oriented Programming 3. Inheritance - means by which classes that have common or overlapping properties can have those properties specified just once • can base a new class on an existing class with more general properties: e.g., base “student” on “person” • common or base class is the superclass • new (derived) class is the subclass • subclass is usually a specialization of the superclass

  10. Object Oriented Programming Health care professional Pharmacist EMT Nurse Medical doctor Physiotherapist Pediatrician Surgeon Radiologist

  11. Object Oriented Programming Problem: Given a list of shapes, draw them Non-OO procedural programming approach (e.g. C, Pascal): for each shape, s in the list if s is a square specify square drawing code else if s is a rectangle specify rectangle drawing code else if s is a circle specify circle drawing code

  12. Object Oriented Programming Problem: Given a list of shapes, draw them Imperative OOP approach (e.g. Java, C++): for each shape, s s.draw() • There is a base shape class with a draw method • Each subclass of shape implements its own version of the draw method so it knows how to draw itself

  13. Object Oriented Programming If we add a new shape to the list using the procedural approach, need to add another conditional statement and code for drawing it If we add a new shape in the OOP approach, we need to implement its draw method

  14. OO Modeling Problem A bakery shop sells 5 different types of pastries and orders common ingredients used to make all pastry types each week. While all the pastries require flour, butter, sugar, and eggs, each of the five types of pastries uses one additional ingredient that the other four don’t. Common ingredients are ordered once a week. The store’s sales register program tracks the number of each type of pastry made, the number sold, and the number still available. The store would like you to add automated re-ordering methods to the sales register program for each pastry’s special ingredient: When the store has only 10 of a particular type of pastry left, an electronic order for its special ingredient should be generated to the particular store that sells this ingredient.

  15. Homework 1 • Download jdk1.4.2 using links from course web page • Write your program (problem 1) using a simple text editor such as Notepad, emacs or vi • Submit electronic version of homework to ta952@dsg.harvard.edu • To get started running Java on Unix/Linux, MacOS, or Windows, please first read http://java.sun.com/docs/books/tutorial/getStarted/cupojava/index.html

  16. Homework 1 • To set your PATH and CLASSPATH variables for Java on Windows 95 / 98 / 2000 / ME / NT please first read: http://java.sun.com/j2se/1.4.2/install-windows.html • To set your PATH and CLASSPATH variables for Java on Unix/Linux please first read: http://java.sun.com/j2se/1.4.2/install-solaris.html

  17. Before Next Class Read Chapter 3 of Java text

More Related