Sie sind auf Seite 1von 18

Object-oriented

programming
programming paradigm based on the
concept of objects

Object-oriented programming (OOP) is a


way of writing computer programs which
is using the idea of "objects" to represent
data and methods. Usually, computer
programs were just a list of instructions to
the computer, telling the computer to do
certain things in a certain way, which is
called procedural programming. However,
in object-oriented programming, computer
programs make use of objects that talk to
one another and to change the data in
those objects, to work in a way that the
user wants. Also, because of the way
object-oriented programming is designed,
it helps the developer by allowing for code
to be easily reused by other parts of the
program or even by other people.

Most programming languages are a mix of


different types of ways of writing
computer programs. For example, Python
allows for computer programs to be
written both in object-oriented
programming and in procedural
programming. There are many
programming languages that allow you to
write computer programs in OOP, some of
which are C++, Java, Ruby, Perl, Emarald,
Sapphire, PHP, etc.

Features
The main idea of object-oriented
programming is that everything is an
object. However, the object can be of
different types:

Variables can hold information (or data)


of different types that is supported by
the programming language. Examples
are the integer data type and the lists
data structure. Variables is an idea that
is already available from procedural
programming languages. In object-
oriented programming, variables are
mainly known as attributes.
Procedures (also known as functions,
methods or routines) are a list of
instructions telling the computer to take
input, do some calculations or change
data, and return output to the user.
Procedures is also an idea that is
already available from procedural
programming languages. In object-
oriented programming, procedures are
mainly known as methods.
Classes are a collection of different
variables and procedures. Classes
usually talk to one another to make
changes to data in order to work in a
way that the user wants.

Objects is a term used to refer to


instances of classes.

Examples
In the examples below, we create a class
called Human . This class contains the
attributes name (for the name of the
person) and friend (for the name of
the friend). Each of the methods in the
Human class contains a list of
instructions that makes use of both the
name and friend attributes.

Python …

This code is in Python.

class Human
Human(object):
def __init__(self,
name, friend=None):
self.name = name
self.friend =
friend
def say_name(self):
print("My name is
print
"+self.name)
def
say_goodnight(self):
if self.friend is
None:
print("Good
print
night nobody.")
else:
else
print("Good
print
night "+self.friend.name)

# Create a new Human object


named stephen with name
"Stephen"
stephen = Human("Stephen")
# Create a new Human object
named joe with name "Joe"
and stephen as a friend
joe = Human("Joe", stephen)

stephen.say_name() # Shows
'My name is Stephen'
stephen.say_goodnight() #
Shows 'Good night nobody.'
joe.say_name() # Shows 'My
name is Joe'
joe.say_goodnight() # Shows
'Good night Stephen'

Java …
This code is in Java.

The Human class

class Human {
private String name =
"unnamed"; // the name of
this Human
private Human friend =
null; // the Human's friend
null

// This method creates


a new Human object when
given the name and friend
public Human(String
name, Human friend) {
this.name = name;
this
this.friend =
this
friend;
}

// This method also


creates a new Human object
when only given the name
public Human(String
name) {
this.name = name;
this
this.friend = null
this null;
}

// This method creates


a new Human object when not
given both the name and the
friend
public Human() {
this.name =
this
"unnamed";
this.friend = null
this null;
}

public void sayName() {

System.out.println("My name
is " + this
this.name);
}

public void
sayGoodnight() {
if (friend == null
null)
{

System.out.println("Good
night nobody.");
} else {

System.out.println("Good
night " + friend.name);
}
}
}

A method for talking to the Human


class above
class Main {
public static void
main(String[] args) {
// Create a new
Human object stephen with
name "Stephen"
Human stephen = new
Human("Stephen");

// Create a new
Human object joe with name
"Joe" and stephen as a
friend
Human joe = new
Human("Joe", stephen);
stephen.sayName();
// Shows 'My name is
Stephen'

stephen.sayGoodnight(); //
Shows 'Good night nobody.'
joe.sayName(); //
Shows 'My name is Joe'
joe.sayGoodnight();
// Shows 'Good night
Stephen'
}
}

Criticism
Even though object-oriented programming
is popular, but there are many people who
think that it is bad and criticize it.

Luca Cardelli wrote a paper titled 'Bad


Engineering Properties of Object-
Oriented Languages '.
Richard Stallman wrote in 1995, "Adding
OOP to Emacs is not clearly an
improvement; I used OOP when working
on the Lisp Machine window systems,
and I disagree with the usual view that it
is a superior way to program."[1]
A study by Potok et al.[2] tells us that
there is very little difference in
productivity between OOP and
procedural approaches.
Christopher J. Date said that comparing
OOP to other things, especially how OOP
and the other thing are related, is
difficult because people don't agree on
the meaning of OOP.[3]
Alexander Stepanov suggested that
OOP gives a point of view that is limited
as far as math, and called it, "almost as
much of a hoax as Artificial Intelligence"
[4][5]

Paul Graham, a successful internet


salesman and programmer, has
suggested that the purpose of OOP is to
act as a herding mechanism which
keeps average programmers in average
organizations from "doing too much
damage". This also slows down faster,
better programmers who know how to
do things in a more powerful and more
compact way.. [1]

References
1. "Mode inheritance, cloning, hooks &
OOP (Google Groups Discussion)" .
2. http://www.csm.ornl.gov/~v8q/Home
page/Papers%20Old/spetep-
%20printable.pdf
3. C. J. Date, Introduction to Database
Systems, 6th-ed., Page 650
4. "The AI Effect" .
5. "STLport: An Interview with A.
Stepanov" . www.stlport.org.

Retrieved from
"https://simple.wikipedia.org/w/index.php?
title=Object-
oriented_programming&oldid=6714309"

Last edited 2 months ago by an anonymous user

Content is available under CC BY-SA 3.0 unless


otherwise noted.

Das könnte Ihnen auch gefallen