* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Week 1 - Intro to Object Oriented Programming
Survey
Document related concepts
Name mangling wikipedia , lookup
Abstraction (computer science) wikipedia , lookup
Programming language wikipedia , lookup
Go (programming language) wikipedia , lookup
Java (programming language) wikipedia , lookup
Object-relational impedance mismatch wikipedia , lookup
Java ConcurrentMap wikipedia , lookup
Structured programming wikipedia , lookup
Reserved word wikipedia , lookup
Java performance wikipedia , lookup
Transcript
Week 1 - Introduction to ObjectOriented Programming Outline 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 Machine Languages, Assembly Languages and High-Level Languages History of C++ History of Java Java Class Libraries Other High-Level Languages Structured Programming The Internet and the World Wide Web Basics of a Typical Java Environment Thinking About Objects: Introduction to Object Technology and the Unified Modeling Language 2002 Prentice Hall. All rights reserved. 1.1 Machine Languages, Assembly Languages and High-Level Languages • Machine language – “Natural language” of computer component – Machine dependent • Assembly language – English-like abbreviations represent computer operations – Translator programs convert to machine language • High-level language – Allows for writing more “English-like” instructions • Contains commonly used mathematical operations – Compiler convert to machine language • Interpreter – Execute high-level language programs without compilation 2002 Prentice Hall. All rights reserved. 1.2 History of C++ • C++ – Evolved from C • Evolved from BCPL and B – Provides object-oriented programming capabilities • Objects – Reusable software components that model real-world items 2002 Prentice Hall. All rights reserved. 1.3 History of Java • Java – Originally for intelligent consumer-electronic devices – Then used for creating Web pages with dynamic content – Now also used for: • Develop large-scale enterprise applications • Enhance WWW server functionality • Provide applications for consumer devices (cell phones, etc.) 2002 Prentice Hall. All rights reserved. 1.4 Java Class Libraries • Classes – Contain methods that perform tasks • Return information after task completion – Used to build Java programs • Java contains class libraries – Known as Java APIs (Application Programming Interfaces) 2002 Prentice Hall. All rights reserved. 1.5 Other High-Level Languages • Fortran – FORmula TRANslator • COBOL – COmmon Business Oriented Language • Pascal • Basic 2002 Prentice Hall. All rights reserved. 1.6 Structured Programming • Structured Programming – Structured programs • Clearer than unstructured programs • Easier to test, debug and modify – Pascal designed for teaching structured programming – ADA • Multitasking – C 2002 Prentice Hall. All rights reserved. 1.7 The Internet and the World Wide Web • Internet – Developed over three decades ago with DOD funding – Originally for connecting few main computer systems – Now accessible by hundreds of millions of computers • World Wide Web (WWW) – Allows for locating/viewing multimedia-based documents 2002 Prentice Hall. All rights reserved. 1.8 Basics of a Typical Java Environment • Java systems contain – – – – Environment Language APIs Class libraries 2002 Prentice Hall. All rights reserved. 1.8 Basics of a Typical Java Environment (cont.) • Java programs normally undergo five phases – Edit • Programmer writes program (and stores program on disk) – Compile • Compiler creates bytecodes from program – Load • Class loader stores bytecodes in memory – Verify • Verifier ensures bytecodes do not violate security requirements – Execute • Interpreter translates bytecodes into machine language 2002 Prentice Hall. All rights reserved. Fig. 1.1 A typical Java environment. Pha se 1 Pha se 2 Edit or Com piler Disk Disk Prog ram is c reat ed in the edit or and sto red on d isk. Com piler c rea te s byt ec odes and st ores the m on disk. Prim ary Mem ory Pha se 3 Class Lo ad er Class loa de r p ut s byt ec o des in m em ory. Disk . . . . . . Prim ary Mem ory Pha se 4 Byt ec ode Ve rifier . . . . . . Prim ary Mem ory Pha se 5 Int erp ret er . . . . . . 2002 Prentice Hall. All rights reserved. By te c ode verif ier c onf irms t hat a ll byt ec odes are v alid and do not violat e Java ’ s sec urit y rest ric t ions. Int erpret er read s byt ec odes and translat es them into a la nguag e t hat t he c om put er c an und ersta nd, possib ly st oring d at a values a s the program exec ut es. 1.9 Thinking About Objects: Introduction to Object Technology and the Unified Modeling Language • Object orientation • Unified Modeling Language (UML) – Graphical language that uses common notation – Allows developers to represent object-oriented designs 2002 Prentice Hall. All rights reserved. 1.12 Thinking About Objects (cont.) • Objects – Reusable software components that model real-world items – Look all around you • People, animals, plants, cars, etc. – Attributes • Size, shape, color, weight, etc. – Behaviors • Babies cry, crawl, sleep, etc. 2002 Prentice Hall. All rights reserved. 1.13 Thinking About Objects (cont.) • Object-oriented design (OOD) – Models real-world objects – Models communication among objects – Encapsulates data (attributes) and functions (behaviors) • Information hiding • Communication through well-defined interfaces • Object-oriented language – Programming is called object-oriented programming (OOP) – Java 2002 Prentice Hall. All rights reserved. 1.14 Thinking About Objects (cont.) • Object-Oriented Analysis and Design (OOAD) – Essential for large programs – Analyze program requirements, then develop solution – We begin OOAD in Chapter 2 • Elevator-simulation case study 2002 Prentice Hall. All rights reserved. 1.15 Thinking About Objects (cont.) • History of the UML – – – – Need developed for process with which to approach OOAD Brainchild of Booch, Rumbaugh and Jacobson Object Management Group (OMG) supervised Version 1.4 is current version • Version 2.0 scheduled tentatively for release in 2002 2002 Prentice Hall. All rights reserved. 1.16 Thinking About Objects (cont.) • UML – Graphical representation scheme – Enables developers to model object-oriented systems – Flexible and extendible 2002 Prentice Hall. All rights reserved.