Você está na página 1de 11

GOVERNO DE ANGOLA

MINISTÉRIO DA EDUCAÇÃO CIÊNCIA E TECNOLOGIA

CURSO: ENGENHARIA INFORMÁTICA

TURMA: KI-EI BB5

1ºANO

DOCENTE

ESTEVES NDJENGUE MBUCO JÚNIOR


INTEGRANTES DO GRUPO

1-João Nlandu Mfitu

2-Lussala Francisco Paulo

6-José Sebastião Joveta

3-Eduardo Kumenda Mavitidi

4-Adelina Isabel Pedro

5-Alfredo Pedro Coxe

7-José Manuel Kassoma

8-Miriã Silva

9-Kimendo Mande
ÍNDICE

INTRODUÇÃO ----------------------------------------------------------------------------------------------- 4

DESENVOLVIMENTO ---------------------------------------------------------------------------------- 5

Paradigma de programação --------------------------------------------------------------------------- 5

Os 4 pilares da programação orientada a objetos ----------------------------------------------- 6

Importância da programação orientada a objetos ----------------------------------------------- 8

Principais linguagens de programação orientadas a objetos --------------------------------- 9

CONCLUSÃO ---------------------------------------------------------------------------------------------- 10

REFERÊNCIAS--------------------------------------------------------------------------------------------10
INTRODUÇÃO

A Programação Orientada a Objetos (POO) surgiu com a finalidade de facilitar a vida


daqueles que trabalham com desenvolvimento de software, pois na POO o difícil não é
software que satisfaça o cliente, ou seja, garantir que o que será entregue será
realmente o que foi pedido. Uma das características da POO é fazer com que o
programador pense as coisas de forma distintas, transformando-as assim em objeto,
aplicando propriedades e métodos, que comentaremos mais adiante, reduzindo assim
a complexidade no desenvolvimento e manutenção de software, aumentando a
produtividade.
DESENVOLVIMENTO

Quando desenvolvemos um sistema, temos sempre um objetivo em mente, criar a


solução para um problema. Partimos com um propósito de chegar a um resultado final
que atenda com sucesso à demanda desejada. Por isso, é fundamental entender cada
etapa, com muita clareza. Os passos seguintes para desenvolver uma aplicação são
desenhar a arquitetura, o design e os padrões de projeto que serão mais adequados
para o desenvolvimento do produto final. A partir daí, é possível ter mais assertividade
na escolha das tecnologias que serão aplicadas. E é aqui que entra a programação
orientada a objetos (POO).

A programação orientada a objetos (POO) é um paradigma de programação que se


propõe a abordar o design de um sistema em termos de entidades, os objetos, e
relacionamentos entre essas entidades.

Paradigma de programação

Paradigmas de programação existem para responder questões que surgem justamente


do processo de pensar na abordagem que será utilizada para a solução de problemas.
Enquanto uma linguagem de programação é a implementação de fato de uma
ferramenta para desenvolver um software, o paradigma de programação é o modelo
conceitual e o conjunto de padrões e metodologias que serão aplicadas no uso de uma
linguagem para o desenvolvimento de um software.

Na programação estruturada, a abordagem utilizada para o desenvolvimento de


sistemas é procedural, ou seja, pensamos em um programa de computador como uma
rotina ou sequência lógica, com início e fim determinados. Os programas são usados
para processar uma entrada, alterando seus dados até que a saída desejada seja
produzida. A programação estruturada é composta por três tipos de estruturas básicas:
sequências (os comandos a serem executados), condições (blocos de decisão) e
repetições (sequências que devem ser repetidas até chegar a determinada condição).

Esta abordagem pode se tornar problemática à medida em que os sistemas começam


a ficar complexos. O acesso à variáveis se torna um problema, pois sub-rotinas devem
compartilhar essas variáveis para processá-las.
Os 4 pilares da programação orientada a objetos

A orientação a objetos, como vimos, é um modo de projetar e escrever um programa


de modo a pensar nas entidades envolvidas como objetos que possuem características
(os atributos) e responsabilidades (as funções) e estabelecer relações entre esses
objetos. Ela tem quatro pilares principais:

Abstração

Consiste em extrair entidades do mundo real para dentro do código seguindo a fio suas
responsabilidades. Um objeto deve ter uma identidade única dentro de um sistema, não
podendo haver repetições. Suas qualidades e responsabilidades devem ser bem
definidas. Por exemplo:

Ao criar um estoque de itens em uma loja virtual, um produto teria como “qualidade” ou
“características” um “nome”, “categoria”, “quantidade”, etc.

O mesmo produto também teria como “responsabilidade” ou “funcionalidade” o ato de


diminuir ou aumentar a quantidade de itens no estoque, ou até o ato de ser removido
do estoque por completo.

Encapsulamento

Quando definimos os atributos de um objeto, devemos garantir que alterar os valores


desses atributos sejam responsabilidade exclusiva do próprio objeto. O
encapsulamento, portanto, é o conceito de proteger os atributos de um objeto. Em
programação orientada a objetos, os atributos de um objeto são “trancados” dentro do
objeto, definindo suas propriedades como privadas, ou seja, elas podem ser
consultadas, mas não modificadas por outros objetos.

Encapsulamento é a limitação imposta a atributos de uma classe, restringindo o acesso


aos métodos dessa classe através de limitadores de acesso, dos quais os mais
utilizados são:

Público (public) – a classe só é vista pelas demais classes se estiverem dentro do


mesmo pacote;

Protegida (protected) – o acesso se restringe apenas a própria classe e suas


subclasses;

Privado (private) – o acesso só é permitido somente pela própria classe.


Herança

O conceito de herança nos permite definir uma nova classe, com base em uma já
existente. A classe criada (subclasse ou classe derivada) automaticamente herda todas
as variáveis e métodos da classe já existente (superclasse). O mecanismo de herança
permite que a subclasse inclua ou sobre ponha novas variáveis e métodos da
superclasse. O mecanismo de herança é recursivo, permitindo criar-se uma hierarquia
de classes, do nível mais alto, onde as características herdadas são comuns a todos os
objetos desta classe até os níveis inferiores, onde estão as especializações das
classes superiores. As subclasses herdam as características comuns, definindo suas
propriedades específicas, ou seja, facilita a construção de novos objetos a partir de
outros já existentes, sem a necessidade de reescrevê-lo todo. para definir várias
formas de membros de uma mesma espécie. Utilizando essa analogia, o mecanismo
de polimorfismo utilizado na POO, nos permite tratar objetos semelhantes de uma
maneira uniforme.

Para evitar repetição de entidades, usamos Herança para passar características e


responsabilidades. Em um sistema desenvolvido para uma escola, por exemplo, onde
existam Entidades Alunos e Pessoas:

Ao criar uma entidade (classe) Pessoa, podemos afirmar que toda pessoa possui um
“nome”. Por outro lado, todo aluno também deveria ter um nome, sendo assim, para
que todo Aluno tenha um nome, fazemos com que o Aluno, herde a característica
“nome” de Pessoa, pois todo Aluno é uma Pessoa.

Polimorfismo

O Polimorfismo, por sua vez, diz respeito à especialização das classes “filhas”.
Seguindo o Exemplo da Escola, a entidade Aluno teria como característica uma
“matrícula”, mesmo que a entidade Pessoa (pai de Aluno) não o tenha. Nesse caso,
podemos afirmar que Aluno ainda teria sua base vinda de Pessoa, mas teria mudanças
para sua funcionalidade específica.

Seguindo o mesmo padrão, poderia haver uma terceira entidade chamada Professor,
que seria herdada de Pessoa, mas com características diferentes de Alunos.

Para que o polimorfismo seja utilizado, é necessária a aplicação do conceito de


herança, aplicados somente aos métodos da classe. Anterior a utilização da POO,
sempre que uma nova funcionalidade fosse criada ou acrescentada, a aplicação
deveria ser alterada e recompilada, porém com a utilização do polimorfismo,
acrescentar novos métodos a classe já existente sem a necessidade de ter que
recompilar a aplicação tornou-se mais fácil.
Importância da programação orientada a objetos

Existem várias vantagens de se usar o paradigma de orientação a objetos na


linguagem escolhida. As seis principais são

Confiável

A orientação a objetos confere aos sistemas maior clareza, distribuição mais adequada
de responsabilidades, encapsulamento de atributos e comportamentos, dentre muitas
outras características. Isso torna o código mais seguro e confiável.

Oportuno

Por se aproximar mais do mundo real, modelando objetos reais e seus


comportamentos, bem como o relacionamento entre esses objetos, a orientação a
objetos é mais adequada ao desenvolvimento de software moderno.

Ajustável

Ao concentrar em objetos atributos e funcionalidades, é bem mais fácil manter um


código orientado a objetos. Se um sistema não se comporta da maneira esperada,
torna- se mais fácil localizar o problema.

Extensível

A herança e o polimorfismo permitem a inclusão de funcionalidades em um sistema de


forma muito direta.

Reutilizável

Ao deslocar as funcionalidades do software de procedures para dentro de objetos, é


possível, de forma muito fácil reutilizar código.
Principais linguagens de programação orientadas a objetos

As principais linguagens de programação orientadas a objetos são:

Java

Java é a mais popular linguagem de programação orientada a objetos. Ela foi


desenvolvida pela Sun Microsystems e hoje é mantida pela Oracle.

O Java possui uma vasta gama de ferramentas e recursos para o desenvolvimento de


sistemas orientados a objetos. Desde a incorporação da tecnologia Java pela Oracle,
ela tem ganhado cada vez mais bibliotecas e tem sofrido atualizações mais frequentes,
incorporando tecnologias recentes e inovadoras.

C#

Foi desenvolvido pela Microsoft como parte da plataforma .NET. Ela foi criada com
forte influência de outras linguagens de programação como Object Pascal e,
especialmente, o Java.

C++

O C++ foi desenvolvido a partir da linguagem C, uma linguagem estruturada e


procedural. O C++ foi criado justamente para adaptar o C, que era bastante popular à
época para esse paradigma de programação que ganhava força. O C++ se destaca
pelo desempenho, uma vez que possibilita o uso de recursos de mais baixo nível, como
ponteiros.

Uma diferença interessante entre C++ e Java no assunto específico da orientação a


objetos é que C++ permite a implementação direta do conceito de herança múltipla, isto
é, um objeto herdar de dois ou mais objetos. Em Java, isto também é possível, porém
de forma menos direta, por meio de interfaces.
CONCLUSÃO

Hoje, entendemos o que é e quais as vantagens de usar a POO para criar sistemas
mais complexos. A linguagem de POO está em nosso dia-a-dia facilitando as nossas
vidas. Muitas das vezes estamos desfrutando dos seus benefícios sem mesmo
perceber, quando por exemplo: quando falamos ao celular, utilizamos o PC e, até
mesmo quando estamos fazendo uma simples compra no supermercado.

A linguagem de POO possui ainda inúmeras ferramentas e aplicativos facilitadores que


interagem ajudando os desenvolvedores e apresenta aos iniciantes um conjunto de
opções , dando a oportunidade de se identificarem com a linguagem de POO ou de
continuar a procura de uma nova ferramenta de estudo ou de trabalho. A linguagem de
POO não significa a reinvenção da roda mas, a mão na roda para qualquer
desenvolvedor.
REFERÊNCIAS

https://kenzie.com.br/blog/programacao-orientada-a-objetos/

https://www.digitalhouse.com/br/blog/programacao-orientada-a-objetos-o-que-e

https://www.ev.org.br/POO

https://www.ev.org.br/cursos/introducao-a-programacao-orientada-a-objetos-poo

https://blog.betrybe.com/tecnologia/poo-programacao-orientada-a-objetos/

https://www.devmedia.com.br/principais-conceitos-da-programacao-orientada-a-
objetos/32285

Você também pode gostar