Slide #1.

presentation slides for JAVA, JAVA, JAVA Object-Oriented Problem Solving Third Edition Ralph Morelli | Ralph Walde Trinity College Hartford, CT published by Prentice Hall
More slides like this


Slide #2.

Java, Java, Java Object Oriented Problem Solving Chapter 0 Computers, Objects, and Java
More slides like this


Slide #3.

Objectives • Understand basic computer technology. • Become familiar with programming. • Learn why Java is a good introductory programming language. • Become familiar with Java objects and classes. • Learn some object-oriented programming principles. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #4.

Outline • What Is a Computer? • Networks, the Internet, the World Wide Web • Why Study Programming? • Programming Languages • Why Study Java? • What Is Object-Oriented Programming? Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #5.

What Is a Computer? • Computer -- a machine that processes information under the control of a program. • Hardware -- a computer’s electronic and mechanical components. • Software -- a computer’s control programs. • General purpose computer -- is able to change its control program. • Special purpose computer -- has a fixed control program; a calculator or watch. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #6.

Computer Hardware (Input/Output) • Output devices – Display information in human readable form. – Examples: Printers, monitors, speakers. • Input devices – Bring data into the computer. – Examples: Keyboard, mouse, scanner. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #7.

Computer Hardware (Memory) • Primary or main memory – Scratch pad: Temporarily stores data and programs during processing. – Volatile: Data is lost when power is off. – Fast: Completely electronic. • Secondary storage – Nonvolatile storage of data and programs – Examples: Disk drives, Compact Disks (CDs). – Slow: Requires mechanical motion. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #8.

Computer Hardware (Processor) • Central Processing Unit (CPU) – The microprocessor, such as Intel Pentium or Apple Power PC. – Controlled by software. – Issues signals to control hardware components. • Arithmetic-Logic Unit (ALU) – Part of the CPU. – Performs arithmetic (+), relational (>) and logic (&) operations. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #9.

Types of Software • Application Software – Programs that perform a particular task or provide a particular service. – Examples: Word processor, spreadsheet, computer games, E-mail program. • System Software – Programs that perform basic operations. – Examples: The Operating System lets you run programs, save your work in files, send messages to other users. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #10.

Networks, the Internet, and World Wide Web • Computer network – An organized collection of computers. – Enables sharing of hardware and information. • Client/Server Computing – Server -- computer that provides some service. – Client -- computer that receives some service. – Example: a file server stores files that can be shared by all users (clients). – Example: the E-mail server stores e-mail which is retrieved by client software such as Eudora. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #11.

The Internet • The Internet (capital I ) – A global network composed of smaller, disparate networks. • The World Wide Web (WWW) – A client/server application, not a separate physical network. – WWW server stores Web pages and transmits them to browser (client) software such as Netscape Navigator or Internet Explorer. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #12.

The World Wide Web • HyperText Transfer Protocol (HTTP) • A protocol is a set of rules that govern communication between two computers. • Web servers/clients run HTTP software. • HyperText Markup Language (HTML) – The tag-based language to encode Web pages. – Interpreted by Web browsers. – Example: Italic font gives Italic Font. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #13.

The HTTP Client/Server Protocol • The client’s browser requests a page from a Web server. When the HTML document is returned, it is interpreted and displayed by the browser. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #14.

Why Study Programming? • • • • • • • • Not because it is required to use a computer. Not because it is required for Computer Science. Not because it is required for a computing career. Not because your parents want you to. Because programming is problem solving. Because programming is creative. Because programming is challenging. Because programming is fun. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #15.

What is Programming? • Computer programming – the art and science of designing and writing computer programs. • Computer program – a set of instructions that directs the computer's behavior. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #16.

Programming Languages • High-level Language – Easily readable by humans -- (a + b) / 2 – Used to write most computer software. – Examples: Java, C, C++, BASIC, Pascal, COBOL, FORTRAN. – Cannot be directly understood by a computer. • Machine Language – The only language understood by the CPU. – Binary code -- 0010010010100010101 Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #17.

Language Translators • Interpreter – Software than translates a single line of a highlevel language program into machine language. – BASIC and Perl are interpreted languages. • Compiler – Software that translates an entire high-level program (source code) into an entire machine language program (object code). – C, C++, COBOL, FORTRAN are compiled. • Java uses interpretation and compilation. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #18.

The Language Translation Process • A single expression in a high-level language (a+b/2) usually requires several primitive operations in the machine language. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #19.

Why Study Java? • Java is Object Oriented (OO): dividing programs into modules (objects) helps manage software complexity. • Java is robust: errors in Java don't usually cause system crashes as in other languages. • Java is platform independent: programs run without changes on all different platforms. • Java is a distributed language: programs can easily be run on computer networks. • Java is a secure language: it guards against viruses and other untrusted code. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #20.

What’s in it for You? • Novice Java programmers can write relatively sophisticated programs that can be distributed through the Web to just about any computer in the world. • Examples of some of the games and puzzles we will develop in this course: http:// starbase.cs.trincoll.edu/~jjjava/games/ Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #21.

What Is Object-Oriented Programming? • An Object-oriented program (OOP) is a set of interacting objects that models a collection of real world objects. Figure 0.4. A model of a kitchen. • Whereas a kitchen model is static, a computer program is dynamic: its objects communicate with each other and change over time. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #22.

What is an Object? • An object is any thing whatsoever. It can be physical (Car), mental (Idea), natural (Animal), artificial (ATM). • We use UML (Unified Modeling Language) to depict objects. Figure 0.5. In UML objects are represented by rectangles Labeled with a two part label of the form id:Type. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #23.

Attributes and Values • Objects have certain characteristic attributes which have certain values. • An object’s collection of attributes and values is sometimes called its state. • In UML, an object’s attributes are represented in the second partition of the rectangle. Figure 0.6. Two ATM objects showing their attributes and values. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #24.

Actions and Messages • Objects have characteristic actions or behaviors. • Actions associated with an object can be used to send messages--moveTo(3,4)--to the object. • Arguments (3,4) are data values that can be passed as part of the message. Figure 0.7. A message is represented as an arrow. Figure 0.8. This UML diagram illustrates a simple ATM Transaction. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #25.

What is a Java Class? • A class (Rectangle) is a blueprint or template of all objects of a certain type. • An object is an instance of a class. Figure 0.9. A UML Class Diagram Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #26.

Variables and Methods • A variable, which corresponds to an attribute, is a named memory location that can store a certain type of value. • A method, which corresponds to an action, is a named chunk of code that can be invoked to perform a certain predefined set of actions. Variables Methods Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #27.

Instance vs. Class Variables and Methods • A instance variable (or instance method) is a variable or method that belongs to an object. • A class variable (or class method) is a variable or method that is associated with the class itself. Class variable Instance variables Figure 0.10. The Rectangle class and two of its instances. Note that class variables are underlined in UML. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #28.

Constructing Objects • A constructor is a special method, associated with the class, that is used to create instances of that class. • Example: We call the Rectangle() constructor to create an instance with length=25, width=10 and located at x=100 and y=50. Figure 0.11. Constructing a Rectangle instance. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #29.

Class Hierarchy • Class Hierarchy: Classes can be arranged in a hierarchy from most general to most specific. A subclass is more specific than its superclass. Classes Superclass Subclasses Figure 0.12. A hierarchy of Java classes. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #30.

Class Inheritance • Class Inheritance: A subclass inherits elements (variables and methods) from its superclasses. • Inherited elements can be specialized in the subclass. Figure 0.13. The ChessPiece hierarchy. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #31.

Principles of Object Orientation • Divide-and-Conquer Principle – Problem solving: Break problems (programs) into small, manageable tasks. – Example: Sales agent, shipping clerk. • Encapsulation Principle – Problem solving: Each object knows how to solve its task and has the information it needs. – Example: Sales agent is the sales expert. The shipping clerk is the shipping expert. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #32.

Principles of Object Orientation (cont) • Interface Principle – Each object has a well-defined interface, so you know how to interact with it. – Example: Digital vs. analog clock interfaces. – Example: The sales agent must be told the name and part number of the software. • Information Hiding Principle – Objects hide details of their expertise. – Example: Customer needn’t know how the sales agent records the order. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #33.

Principles of Object Orientation (cont) • Generality Principle – Objects are designed to solve a kind of task rather than a singular task. – Example: Sales agents sell all kinds of stuff. • Extensibility Principle – An object’s expertise can be extended or specialized. – Example: One sales agent specializes in software sales and another in hardware sales. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #34.

The (Overarching) Abstraction Principle • Abstraction is the ability to focus on the important features of an object when trying to work with large amounts of information. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #35.

Summary: Technical Terms • • • • • • • • • • • • • • action argument attribute class class hierarchy class inheritance class method class variable compiler computer program high-level language instance instance method instance variable • • • • • • • • • • interpreter message object object code object oriented result source code subclass superclass Unified Modeling Language (UML) • variable Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #36.

Summary : Key Points • A Java program is a set of interacting objects. This is the basic metaphor of objectoriented programming (OOP). • OOP Principles – Divide and Conquer: Successful problem solving involves breaking a complex problem into small, manageable tasks. – Encapsulation and Modularity: Each task should be assigned to an object; the object's function will be to perform that task. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #37.

Summary : Key Points • OOP Principles – Interface: Each object should present a clear public interface that determines how other objects will use it. – Information Hiding: Each object should shield its users from unnecessary details of how it performs its task. – Generality: Objects should be designed to be as general as possible. – Extensibility: Objects should be designed so that their functionality can be extended to carry out more specialized tasks. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #38.

Summary : Key Points • Abstraction is the ability to group a large quantity of information into a single chunk so it can be managed as a single entity. • Computer Hardware – – – – Input/output (I/O) devices. Primary and secondary memory. Central processing unit (CPU). Machine language (binary code). Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this


Slide #39.

Summary : Key Points • Software – Application software refers to programs designed to provide a particular task or service. – Systems software assists the user in using application software. – Compilers and interpreters translate high-level (source code) into machine language (object code). • Client/server model – A form of distributed computing in which part of the software for a task is stored on a server and part on client computers. Java, Java, Java, 3E by R. Morelli | R. Walde Copyright 2006. Chapter 0: Computers, Objects, and Java
More slides like this