You are on page 1of 50

Object Oriented Programming

Chapter One
Introduction to Object-
Oriented Programming

1 Prepared by Tesfa K. 01/05/2022


Outline
o Programming Languages
o Programming Paradigm and its types
o Over View of OOP Principles
o Over View of Java Programming

2 Prepared by Tesfa K. 01/05/2022


Programming Languages (PL)

A computer program is a set of instructions used to


operate a computer to produce a specific result.
Writing computer programs is called computer
programming.
The languages used to create computer programs are
called programming languages.

3 Prepared by Tesfa K. 01/05/2022


How to write Program ?
o Programming Language
Is a formal constructed language designed to
I.
communicate instructions to a machine, particularly
a computer.
II. Is used to create programs to control the behavior of
a machine
o Hundreds of computer languages are in use today.
o Programming Languages are classifies as:
I. Machine Language
II. Assembly Language
III. High Level Language

4 Prepared by Tesfa K. 01/05/2022


Machine Language
Machine language is the “natural language” of a computer and it is defined
by its hardware design.
Machine languages generally consist of strings of numbers (1s and 0s) - that
instruct computers to perform their most elementary operations one at a
time.
Machine languages are machine dependent.
Machine language program is also called object code
Such languages are difficult for humans to write a program.
Machine-language programming was simply too slow, tedious and error
prone for most programmers.
Example
o Machine Instruction Machine Operation
00000000 Stop Program
00000001 Turn bulb fully on

5 Prepared by Tesfa K. 01/05/2022


Assembly Language
Assembly language uses English-like abbreviations/
mnemonic codes to represent elementary operations
instead of sequence of 0s and 1s
Example:-ADD for addition , SUB for subtraction etc.
Translator programs called assemblers were developed
to convert assembly-language programs to machine
language Since computer system only understand the
language of 0s and 1s .
Although such code is clear to humans, but it is not
understandable to computers until translated to machine
language.

6 Prepared by Tesfa K. 01/05/2022


Assembly Language …
Computer usage increased rapidly with the arrival
of assembly languages, but programmers still had to
use many instructions to accomplish the simplest
tasks.
For example, the following section of an assembly-
language program adds overtime pay to base pay and
stores the result in gross pay:
load basepay
add overpay
store grosspay

7 Prepared by Tesfa K. 01/05/2022


High Level Language
 To speed up the programming process, high-level
languages were developed in which single
statements could be written to accomplish a
number of tasks.
High-level languages allow programmers to write
instructions that look almost like everyday
English and contain commonly used
mathematical notations.
For example a payroll program written in a high-
level language might contain a statement such as
grossPay = basePay + overTimePay

8 Prepared by Tesfa K. 01/05/2022


High Level Language …
o High level language program is also called source
code.
o Program written in high level languages are much
easier to maintain and modified .
 Translator programs called compilers and
Interpreter convert high-level language
programs into machine language.
Some examples include BASIC, FORTRAN, Java,
C,C++, Pascal and Microsoft’s .NET

9 Prepared by Tesfa K. 01/05/2022


Programming Paradigm
o Paradigm can also be termed as method to solve some
problem or do some task.
o Programming paradigm is an approach to solve problem
using some programming language.
o There are lots for programming language that are known
but all of them need to follow some strategy when they
are implemented and this methodology/strategy is
paradigms.
o The two most known programming paradigms are :
I. Structured programming
II. Object oriented programming

10 Prepared by Tesfa K. 01/05/2022


Structured programming
o In Structured Programming a programmer who is faced with some
problem must identify a computing task that needs to be performed in
order to solve the problem.
o Programming then consists of finding a sequence of instructions that will
accomplish that task.
o Structured Programming focuses on process/ logical structure and the
data required for that process.
o Structured Programming is also known as Modular Programming
o In Structured Programming, Programs are divided into small self
contained functions.

11 Prepared by Tesfa K. 01/05/2022


Structured programming …
Structured programming follows top-down approach.
 In Structured programming data was separate from the
code.
Structured Programming is less secure as there is no
way of data hiding.
Structured Programming provides less reusability,
more function dependency.
Less abstraction and less flexibility.
C and Pascal are examples of procedural programming
languages

12 Prepared by Tesfa K. 01/05/2022


Programs with Structural Programming
1. Unrestricted Access

o Functions have unrestricted access to global data.


2. Real-World Modeling

o Unrelated functions and data, the basics of the procedural


paradigm, provide a poor model of the real world.
3. Difficult of Creating New Data Types

o Traditional languages are not extensible because they


will not let you create new data types.

13 Prepared by Tesfa K. 01/05/2022


Object-Oriented Programming (OOP)
It is a modern programming paradigm that allows the
Programmer to model a problem in a real-world as an
object.
 Allows us to decompose a problem into a number of
entities called objects and then build data and functions
(methods) around them.
Hence, programs are divided into what are known as
objects
Binds data more closely to the functions that operate on
it and protects it from unintentional modification by
other functions.
Hence, Object Oriented Programming is more secure
as having data hiding feature.
 Follows bottom-up approach in program design

14 Prepared by Tesfa K. 01/05/2022


Object Oriented Programming…
An object represents an entity in the real world that can be distinctly
identified.
Everywhere you look in the real world you see objects - people,
animals, plants, cars, planes, buildings, computers and so on.
Humans think in terms of objects. Telephones, houses, traffic lights
and water are just a few more objects.
 All objects have attributes (e.g., a car has a size, shape, color and
weight), and they all exhibit behaviors (e.g., a car accelerates,
brakes and turns).
Humans learn about existing objects by studying their attributes and
observing their behaviors.
Comparisons can be made, for example, between babies and adults
and between humans and chimpanzees.

15 Prepared by Tesfa K. 01/05/2022


Object Oriented Programming…
OOP models object by their attributes and behaviors
just as we describe real-world objects.
OOP also takes advantage of class relationships, where
objects of a certain class, such as a class of vehicles,
have the same characteristics (cars, trucks, little red
wagons and taxi have much behaviors in common).
OOP also models communication between objects.
 Just as people send messages to one another; objects
also communicate via messages.

16 Prepared by Tesfa K. 01/05/2022


Object Oriented Programming…
For example, suppose you want to write a program that
automates the video rental process for a local video store.
The two main objects in this problem are the video and the
customer.
Then, specify for each object the relevant data and possible
operations to be performed on that data.
For a video object, the data might include: movie name, starring
actors, producer, production company, number of copies in stock
Some of the operations on a video object might include:
checking the name of the movie.
reducing the number of copies in stock by one after a copy is rented.
incrementing the number of copies in stock by one after a customer
returns a copy.

17 Prepared by Tesfa K. 01/05/2022


Object Oriented Programming…
OOP give emphasis for data rather than procedure
Data is not allowed to move freely around a system, but it is
tied closely to the functions that operate on it.(i.e. Data is
hidden from external functions)
Data is protected because the data belonging to an object can
only be accessed and modified by the methods of that object.
Different objects can 'talk' to each other through their
methods.
In this way, Object A cannot directly modify data belonging
to Object B – but it can call a method of Object B that in
turn modifies the data.

18 Prepared by Tesfa K. 01/05/2022


What is Java
Java is high level programming language developed by a
team led by James Gosling at Sun Microsystems.
Originally called Oak, it was designed in 1991 for use in
consumer electronic applications.
In 1995, renamed Java, it was redesigned for developing
Internet applications as well.
Java is modeled after C and C++, and much of the syntax
and object-oriented structure is borrowed from C++.
Java is simple, object oriented, secure, portable and high
performance.

19 Prepared by Tesfa K. 01/05/2022


What is Java…
Java can be used to create two types of programs: applications
and applets.
Java applications are more general programs written in the Java
language.
Java applications don’t require a browser to run.(desktop
application or stand alone application)
Applets are Java programs that are downloaded over the World
Wide Web and executed by a Web browser on the reader’s machine
(web based application)
Java offers two ways of creating dynamic web content:
Applets-which are Java programs which are run by a client
computer’s web browser
Servlets-which are Java programs which are run by the web server.

20 Prepared by Tesfa K. 01/05/2022


What is Java…
Java programs are platform independent.
Java programs are portable - it is possible to move java
programs from one computer system to another.
Java promise: “Write once, run everywhere”.
Java differs from other programming languages in that
it is both compiled and interpreted language.
Java is Powerful: massive libraries.

21 Prepared by Tesfa K. 01/05/2022


Typical Java Development Environment
There are five phases in creating and executing a Java
application using a Java development environment.
They are:-
Create/edit
compile
load
verify and
execute

22 Prepared by Tesfa K. 01/05/2022


Phase 1: Creating a Program
It consists of writing a java source code and editing a file with an editor
program or IDE.
Integrated development environments (IDEs) - provide tools that support
the software development process, including editors - for writing and
editing programs and debuggers - for locating logic errors.
Popular IDEs include:-
Eclipse (www.eclipse.org) NetBeans (www.netbeans.org)
JBuilder (www.borland.com) JCreator (www.jcreator.com)
BlueJ (www.blueJ.org)
jGRASP (www.jgrasp.org) jEdit (www.jedit.org).
Then Make any necessary corrections and save the program on a
secondary storage device, such as your hard drive.
A file name ending with the .java extension indicates that the file
contains Java source code.

23 Prepared by Tesfa K. 01/05/2022


Phase 2: Compiling a Java Program into
Bytecodes
Use the command javac to compile a program.
For example, to compile a program called
Welcome.java, you would type javac Welcome.java
in the command window of your system
If the program compiles, the compiler produces a
.class file called Welcome.class that contains the
compiled version of the program.
The Java compiler translates Java source code into
bytecodes

24 Prepared by Tesfa K. 01/05/2022


Phase 2: Compiling a Java Program into
Bytecodes…
Bytecodes are a set of instructions that looks like a machine
codes, but it is not specific to any one processor or platform.
Bytecodes are executed by the Java Virtual Machine (JVM)
—a part of the JDK.
A virtual machine (VM) is a software application that
simulates a computer, but hides the underlying operating
system and hardware from the programs that interact with the
VM.
 Unlike machine language, which is dependent on specific
computer hardware, bytecodes are platform-independent
instructions
So, Java’s bytecodes are portable

25 Prepared by Tesfa K. 01/05/2022


Phase 3: Loading a Program into
Memory
In Phase 3, the program must be placed in memory
before execution-which is known as loading.
Hence the class loader takes the .class files containing
the program’s bytecodes and transfers them to primary
memory.

26 Prepared by Tesfa K. 01/05/2022


Phase 4: Bytecode Verification
In Phase 4, the bytecode verifier examines their
bytecodes to ensure that they are valid and do not
violate Java’s security restrictions.
Java enforces strong security, to make sure that Java
programs arriving over the network do not damage
your files or your system (as computer viruses and
worms might).

27 Prepared by Tesfa K. 01/05/2022


Phase 5: Execution
In Phase 5, the JVM executes the program’s bytecodes.
The JVM is invoked by the java command.
For example, to execute a Java application called Welcome,
you would type the command java Welcome in a command
window to invoke the JVM.
In early Java versions, the JVM was simply an interpreter
for Java bytecodes.
This caused most Java programs to execute slowly because the
JVM would interpret and execute one bytecode at a time.
Today’s JVMs typically execute bytecodes using a
combination of interpretation and so-called just-in-time
(JIT) compilation.
28 Prepared by Tesfa K. 01/05/2022
Phase 5: Execution…
Today’s JVMs analyzes the bytecodes searching for hot
spots— parts of the bytecodes that execute frequently.
For these parts, a just-in-time (JIT) compiler - known
as the Java HotSpot compiler- translates the bytecodes
into the underlying computer’s machine language.
Thus Java programs actually go through two
compilation phases
One in which source code is translated into bytecodes
Second is during execution- the bytecodes are translated
into machine language for the actual computer on which
the program executes.

29 Prepared by Tesfa K. 01/05/2022


Typical Java Development Environment

30 Prepared by Tesfa K. 01/05/2022


The Java Language Specification, API and JDK
Computer languages have strict rules of usage.
If you do not follow the rules when writing a program,
the computer will be unable to understand it.
The Java language specification is defines the syntax
and semantics of the Java programming language.
The application program interface (API) contains
predefined classes and interfaces for developing Java
programs.
The Java language specification is stable, but the API
is still expanding.

31 Prepared by Tesfa K. 01/05/2022


The Java Language Specification, API and JDK
Java comes in three editions:
1. Java Standard Edition (Java SE) - can be used to
develop client-side standalone applications.
2. Java Enterprise Edition (Java EE) can be used to
develop server-side applications..
3. Java Micro Edition (Java ME) - can be used to develop
applications for mobile devices, such as cell phones.

32 Prepared by Tesfa K. 01/05/2022


The Java Language Specification, API and JDK
There are many versions of Java SE.
Each version has a Java Development Toolkit (JDK).
For Java SE 6, the Java Development Toolkit is called
JDK 1.6 (also known as Java 6 or JDK 6).
 JDK consists of a set of separate programs, each
invoked from a command line, for developing and
testing Java programs.
Besides JDK, you can use a Java development tool
(e.g., Net- Beans, Eclipse, and Jcreator) - for rapidly
developing Java programs.

33 Prepared by Tesfa K. 01/05/2022


Basic principles of OOP
Object
Object is a software bundle that has State and Behavior and it occupies
memory.
We can also define Object as a set of data items (fields) with operations
(methods ) to manipulate them.
 Example: dogs have states (name, color, hungry, breed) and behaviors (bark, fetch,
and wag tail).
Object combines data and operations in one place.
The state of an object (also known as its properties or attributes) is
represented by data fields with their current values.
A circle object, for example, has a data field radius, which is the property
that characterizes a circle.
A rectangle object has data field’s width and height, which are the
properties that characterize a rectangle.

34 Prepared by Tesfa K. 01/05/2022


Basic principles of OOP
Object…
The behavior of an object (also known as its actions) is
defined by methods.
Method is an action performed by an object
To invoke a method within an object is to ask the
object to perform an action.
For example, you may define a method named getArea()
for circle objects.
A circle object may invoke getArea() to return its area.
objects interact and communicate with each other by
sending messages to each other.

35 Prepared by Tesfa K. 01/05/2022


Basic principles of OOP…
Class
 A class is a template or blueprint that defines what an object’s
data fields and methods will be.
 It defines the states and the behaviors common to all objects of
a certain kind.
 Class is a collection of objects of similar type.
 Classes are user-defined data types & behave like the built-in
types of programming language.
 An object is an instance of a class.
 E.g Ibsa is an instance of a Student
 You can create many instances of a class.
 Creating an instance is referred to as instantiation.
 The terms object and instance are often used interchangeable.

36 Prepared by Tesfa K. 01/05/2022


Basic principles of OOP…
Class Declaration
The syntax for a simple class declaration is
modifiers class class-name
{
body
}
Where the optional modifiers may be one or more of the three keywords
{ public, abstract, final }
Class-name is any valid identifier
Body is a sequence of declarations of variables, constructors, and methods
Modifier Meaning
Public - It is accessible from all other classes
Abstract- The class cannot be instantiated
Final -No subclasses can be declared
A class that is declared final cannot be a superclass.

37 Prepared by Tesfa K. 01/05/2022


Basic principles of OOP…
Abstraction
Also known as information hiding.
Ignore details when appropriate
Think about what a method/object/class does, not how it does it.
Objects have the property of information hiding.
This means that objects may know how to communicate with one
another across well-defined interfaces, but normally they are not
allowed to know how other objects is implemented-implementation
details are hidden within the objects themselves.
It is one of the fundamental ways to handle complexity.
Example driving a car effectively
E.g. Sort(insertion, selection, bubble)

38 Prepared by Tesfa K. 01/05/2022


Basic principles of OOP…
Encapsulation
OOD encapsulates (i.e., wraps) attributes and
operations (behaviors) into objects - an object’s
attributes and operations are intimately tied together.
Is the mechanism that binds together code and the data
object manipulates.
Put related things in the same place
I.e. group related data and operations in an object
Each object has its own data and knows how to use it
Hide internal representation/implementation
Deny external access to internal fields/methods

39 Prepared by Tesfa K. 01/05/2022


Basic principles of OOP…
Inheritance
Inheritance is a form of software reuse in which, new classes
of objects are derived by absorbing characteristics of existing
classes and adding unique characteristics of their own.
Inheritance is the process by which one object acquires the
properties of another object.
Classical Inheritance: “is-a kind of” relationship.
In inheritance, an object of a subclass can also be treated as
an object of its superclass.
For example, a car is a vehicle.
Example: fruits and types of fruit (an apple is a type of fruit)
Goal of inheritance: code reuse

40 Prepared by Tesfa K. 01/05/2022


Basic principles of OOP…
Polymorphism
The ability to take more than one form.
The same word or phrase can be mean different things in different
contexts
One instruction means different things to different agents
In terms of the OOP, this means that a particular operation may
behave differently for different sub-classes of the same class.
Technically: many objects can implement same interface in their own
way.
In Java, two or more classes could each have a method called output
 Each output method would do the right thing for the class that it was in.
 One output might display a number whereas a different one might
display a name.

41 Prepared by Tesfa K. 01/05/2022


A Simple Java Program
Let us begin with a simple Java program that displays the
message “Welcome to Java!” on the console.
Console refers to text entry and display device of a
computer.
1 public class Welcome {
2 public static void main(String[] args) {
3 // Display message Welcome to Java! to the console
4 System.out.println("Welcome to Java Programming!");
5 }
6 }

42 Prepared by Tesfa K. 01/05/2022


Description of the program
Line 1 defines a class.
public class Welcome {
Every program in Java consists of at least one class definition that is defined by
you - the programmer.
These classes are known as programmer-defined classes, or user-defined classes.
The class keyword introduces a class definition in Java and is immediately
followed by the class name.(In this example, the class name is Welcome.)
Every class we define begins with the public keyword
Keywords (or reserved words) are reserved for use by java and are always spelled
with all lowercase letters.
By convention, class names start with an uppercase letter.
A pair of braces in a program forms a block that groups the program’s components.
In Java, each block begins with an opening brace ({) and ends with a closing brace
(}).
Every class has a class block that groups the data and methods of the class.

43 Prepared by Tesfa K. 01/05/2022


Description of the program…
Line 2 defines the main method.
In order to run a class, the class must contain a method named main.
public static void main( String args[] )
It is a part of every Java application.
Java applications begin executing at main.
The parentheses after main indicate that main is a program building block called a
method.
 Java class definitions normally contain one or more methods.
For a Java application class, exactly one of those methods must be called main.
otherwise, the java interpreter will not execute the application.
Methods are able to perform tasks and return information when they complete their
tasks.
The void keyword indicates that this method will perform a task (displaying a line
of text, in this program), but will not return any information when it completes its
task.
The left brace, {, on line 2 begins the body of the method definition. A
corresponding right brace, }, must end the method definition’s body

44 Prepared by Tesfa K. 01/05/2022


Description of the program…
 Line 3 is a comment that documents what the program is and how it is
constructed.
 Comments help programmers to communicate and understand the program.
 They are not programming statements and thus are ignored by the compiler.
 In Java, comments are preceded by two slashes (//) on a line, called a line
comment, or enclosed between /* and */ on one or several lines, called a
block comment.
 When the compiler sees //, it ignores all text after // on the same line.
 When it sees /*, it scans for the next */ and ignores any text between /* and
*/.
 Here are examples of comments:
// This application program prints Welcome to Java!
/* This application program prints Welcome to Java! */
/* This application program
prints Welcome to Java! */

45 Prepared by Tesfa K. 01/05/2022


Description of the program…
Line number 4
System.out.println( "Welcome to Java Programming!" );
instructs the computer to perform an action, namely to print the string of
characters contained between the double quotation marks.
This statement prints a message "Welcome to Java Programming!"
command window from which the Java application executes. (line 4).
A string is sometimes called a character string, a message or a string
literal.
We refer to characters between double quotation marks generically as
strings.
White-space characters in strings are not ignored by the compiler.
Every statement in Java ends with a semicolon (;), known as the statement
terminator.

46 Prepared by Tesfa K. 01/05/2022


Creating, Compiling, and Executing a
Java Program
When you save your java file, the file name must be the
class name followed by the “.java” file-name extension.
For our application, the file name is Welcome.java.
All Java class definitions are stored in files ending with the
file-name extension “.java.”
To compile the program, we open a command window,
change to the directory where the program is stored and type
 javac Welcome.java

If the program contains no syntax errors, the preceding


command creates a new file called Welcome1.class
containing the Java bytecodes that represent our application.

47 Prepared by Tesfa K. 01/05/2022


Creating, Compiling, and Executing a
Java Program
These bytecodes will be interpreted by the java interpreter when
we tell it to execute the program.
In the command prompt type
java Welcome1
to launch the java interpreter and indicate that it should load the
“.class” file for class Welcome.
Note that the “.class” file-name extension is omitted from the
preceding command; otherwise the interpreter will not execute
the program.
The interpreter automatically calls method main.
Next, the statement on line 4 of main displays “Welcome to
Java Programming!”

48 Prepared by Tesfa K. 01/05/2022


Creating, Compiling, and Executing a
Java Program
 This section demonstrates how to create, compile, and run Java
programs from a command window.

49 Prepared by Tesfa K. 01/05/2022


End of Chapter One

50 Prepared by Tesfa K. 01/05/2022

You might also like