Programação orientada a objetos

A programação orientada a objetos (OOP) é uma forma de escrever programas de computador que utiliza a idéia de "objetos" para representar dados e métodos. Normalmente, os programas de computador eram apenas uma lista de instruções para o computador, dizendo ao computador para fazer certas coisas de uma certa maneira, o que é chamado de programação procedural. Entretanto, na programação orientada a objetos, os programas de computador fazem uso de objetos que falam uns com os outros e para alterar os dados nesses objetos, para trabalhar de uma forma que o usuário deseja. Além disso, devido à forma como a programação orientada a objetos é projetada, ela ajuda o desenvolvedor permitindo que o código seja facilmente reutilizado por outras partes do programa ou mesmo por outras pessoas.

A maioria das linguagens de programação é uma mistura de diferentes tipos de formas de escrever programas de computador. Por exemplo, Python permite que os programas de computador sejam escritos tanto na programação orientada a objetos quanto na programação de procedimentos. Há muitas linguagens de programação que permitem escrever programas de computador no OOP, algumas dessas linguagens de programação são, por exemplo: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, etc.

Características

A idéia principal da programação orientada a objetos é que tudo é um objeto. Entretanto, o objeto pode ser de diferentes tipos:

  • As variáveis podem conter informações (ou dados) de diferentes tipos que são suportados pela linguagem de programação. Exemplos disso são o tipo de dados inteiros e a estrutura de dados da lista. Variáveis é uma idéia que já está disponível nas linguagens de programação de procedimentos. Na programação orientada a objetos, as variáveis são conhecidas principalmente como atributos.
  • Os procedimentos (também conhecidos como funções, métodos ou rotinas) são uma lista de instruções que dizem ao computador para receber entradas, fazer alguns cálculos ou alterar dados e retornar a saída para o usuário. Procedimentos é também uma idéia que já está disponível nas linguagens de programação de procedimentos. Na programação orientada a objetos, os procedimentos são conhecidos principalmente como métodos.
  • As classes são um conjunto de diferentes variáveis e procedimentos. As classes geralmente conversam entre si para fazer alterações nos dados a fim de trabalhar da maneira que o usuário deseja.

Objetos é um termo usado para se referir a instâncias de classes.

Exemplos

Nos exemplos abaixo, criamos uma classe chamada Humana. Esta classe contém os atributos nome (para o nome da pessoa) e amigo (para o nome do amigo). Cada um dos métodos da classe Humano contém uma lista de instruções que faz uso tanto do nome quanto dos atributos do amigo.

Python

Este código está em Python.

classe Human(object): def __init__(self, name, friend=None): self. name = name self. friend = friend def say_name(self): print("Meu nome é "+self. name") def say_goodnight(self): if self. friend is None: print("Good night nobody.") else: print("Good night "+self. friend. nome) # Criar um novo objeto Humano chamado stephen com nome "Stephen" stephen = Humano("Stephen") # Criar um novo objeto Humano chamado joe com nome "Joe" e stephen como um amigo joe = Humano("Joe", stephen) stephen. say_name() # Mostra 'Meu nome é Stephen' stephen. say_goodnight() # Mostra 'Good night nobody' joe. say_name() # Mostra 'Meu nome é Joe' joe. say_goodnight() # Mostra 'Boa noite Stephen'.

Java

Este código está em Java.

A classe humana

classe Humano { nome da corda privada = "sem nome"; // o nome deste Humano humano privado Amigo humano = nulo; // o amigo do Humano // Este método cria um novo objeto Humano quando dado o nome e amigo público Humano(String name, Human friend) { este. nome = nome; este. amigo = amigo;      } // Este método também cria um novo objeto Humano quando dado apenas o nome público Human(String name) { this. name = name; this. friend = null;      } // Este método cria um novo objeto Humano quando não é dado tanto o nome quanto o amigo público Human() { este. nome = "sem nome"; este. amigo = nulo;      } public void sayName() { System. out. println("Meu nome é " + este. nome); } public void sayGoodnight() { if (friend === null) { System. out. println("Good night nobody.");          } else { System. out. println("Good night " + friend. name);          } } }

Um método para falar com a classe Humana acima

classe Main { public static void main(String[] args) { // Criar um novo objeto humano stephen com nome "Stephen" Human stephen = novo Human("Stephen"); // Criar um novo objeto humano joe com nome "Joe" e stephen como amigo Human joe = novo Human("Joe", stephen); stephen. sayName(); // Mostra 'Meu nome é Stephen' stephen. sayGoodnight(); // Mostra 'Good night nobody' joe. sayName(); // Mostra 'Meu nome é Joe' joe. sayGoodnight(); // Mostra 'Good night Stephen'      } }

Críticas

Embora a programação orientada a objetos seja popular, mas há muitas pessoas que acham que é ruim e a criticam.

  • Luca Cardelli escreveu um artigo intitulado "Bad Engineering Properties of Object-Oriented Languages".
  • Richard Stallman escreveu em 1995, "Adicionar OOP ao Emacs não é claramente uma melhoria; eu usei OOP ao trabalhar nos sistemas de janelas da máquina Lisp, e discordo da visão habitual de que é uma maneira superior de programar".
  • Um estudo de Potok et al. nos diz que há muito pouca diferença na produtividade entre a OOP e as abordagens processuais.
  • Christopher J. Date disse que comparar o OOP com outras coisas, especialmente como o OOP e a outra coisa estão relacionados, é difícil porque as pessoas não concordam sobre o significado do OOP.
  • Alexander Stepanov sugeriu que o OOP dê um ponto de vista limitado à matemática, e o chamou de "quase tão falso quanto a Inteligência Artificial".
  • Paul Graham, um vendedor e programador de sucesso na Internet, sugeriu que o objetivo do OOP é agir como um mecanismo de pastoreio que impede que os programadores médios em organizações médias "causem demasiados danos". Isto também desacelera os programadores melhores e mais rápidos que sabem fazer as coisas de uma forma mais poderosa e compacta. [1]

Perguntas e Respostas

P: O que é programação orientada a objetos?


R: A programação orientada a objetos é uma forma de escrever programas de computador usando "objetos" para representar dados e métodos.

P: Qual é a diferença entre a programação orientada a objetos e a programação procedural?


R: Na programação procedural, os programas de computador são uma lista de instruções para o computador, dizendo-lhe para fazer certas coisas de uma determinada maneira. Na programação orientada a objetos, os programas de computador usam objetos que conversam entre si para alterar os dados nesses objetos e trabalhar da maneira que o usuário deseja.

P: Como a programação orientada a objetos beneficia os desenvolvedores?


R: A programação orientada a objetos permite que o código seja facilmente reutilizado por outras partes do programa ou até mesmo por outras pessoas.

P: Por que a linguagem de programação Python é conhecida?


R: Python permite que os programas de computador sejam escritos tanto em programação orientada a objetos quanto em programação procedural.

P: O senhor pode dar exemplos de linguagens de programação que permitem escrever programas de computador em programação orientada a objetos?


R: As linguagens de programação que permitem que o senhor escreva programas de computador em programação orientada a objetos incluem C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C# etc.

P: O que são objetos na programação orientada a objetos?


R: Objetos são entidades na programação orientada a objetos que contêm dados e métodos.

P: Como os objetos funcionam na programação orientada a objetos?


R: Os objetos interagem uns com os outros para alterar os dados nesses objetos e para trabalhar da maneira que o usuário deseja.

AlegsaOnline.com - 2020 / 2023 - License CC3