Buscar

Introdução à programação orientada a objetos - aula01

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1ºAula
Introdução à programação 
orientada a objetos
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de: 
entender o que é a Programação Orientada a Objetos;
conhecer o que é uma Classe;
saber o que é um atributo e um método.
Olá, pessoal, tudo bem? 
Bem-vindos à disciplina de Programação Orientada a 
Objetos. Nesta primeira aula, vamos relembrar o que vimos nas 
matérias anteriores sobre a Programação Orientada a Objetos, 
a fim de relembrar o que foi estudado, antes de aprofundarmos 
mais ainda em nossos estudos.
Qualquer dúvida entre em contato via quadro de avisos. E 
lembrem-se de fazer as atividades desta aula. Estaremos sempre 
a sua disposição.
Boa aula!
Bons estudos!
Bons estudos!
63
Programação Orientada a Objetos 6
1 - Introdução à programação orientada a objetos 
2 - Do paradigma estruturado à orientação a objetos
1 - Introdução à programação 
orientada a objetos
Vocês devem ter ouvido falar sobre a Programação 
Orientada a Objetos nas disciplinas de Engenharia de Software 
II (no campo da análise) e em Linguagem de Programação II. 
Até aí, vocês tiveram um contato básico sobre esse paradigma 
de programação. Antes de aprofundarmos em nossos estudos, 
vamos relembrar o que vimos anteriormente.
Antes de começarmos a nossa revisão, vamos perguntar: 
Você sabe o que é o paradigma estruturado?
O paradigma estruturado é a forma tradicional de se fazer 
a programação. Ele organiza a programação em variáveis e em 
funções. Assim, podemos modularizar os nossos programas 
usando as funções. Até aqui, a maioria do tempo em que 
vocês se dedicaram para programar neste curso, foram em 
linguagens que suportam o paradigma estruturado.
A Programação Orientada a Objetos (também 
denominada de POO) começou a ser discutida nas décadas de 
1960 e 1970, com as linguagens pioneiras SmallTalk e Simula, 
mas, por muito tempo, a programação estruturada dominou 
a Ciência da Computação. Na década de 1980, houve uma 
ascensão da modelagem de banco de dados, através de autores 
como Peter Chen e Edgard Codd. Com isso, os projetistas 
passaram a ter mais ferramentas de modelagem de dados. 
Esse novo mundo de ferramentas de modelagem de dados 
levou a evidência de que o paradigma procedural colocava 
pouca organização sobre os dados, ou seja, geria os dados de 
forma débil (LEE; TEPFENHART, 2002). 
Foi a partir desse ponto que esse paradigma passou a 
ser mais popularizado. Graças às novas possibilidades que 
eram possíveis com esse paradigma, mais programadores 
passaram a procurar aprendê-lo, e mais analistas procuraram 
aprimorar a análise orientada a objetos (discutida em 
Engenharia de Software II). Mais linguagens passaram a 
adotar esse paradigma, seja como complemento ao Paradigma 
Estruturado (que é o caso do C++, PHP e Python, que 
permitem que você programe tanto no paradigma estruturado 
quanto no paradigma estruturado a objetos), ou como 
paradigma principal (que é o caso do Java, que adota a POO 
como a sua base).
Na seção a seguir, vamos explicar como a POO pode ser 
entendida a partir dos conceitos da programação estruturada.
2 - Do paradigma estruturado à 
orientação a objetos
No paradigma estruturado, os dados e as funções são 
isolados no programa. Não há uma relação entre eles ao 
Seções de estudo
observar as variáveis e as funções, apenas observando a 
estrutura do programa. Para observarmos a relação entre 
eles, devemos entender o contexto e a funcionalidade de cada 
estrutura do sistema.
Suponhamos um sistema que manipule os dados de um 
aluno. Podemos colocar os dados do aluno em um registro, 
conceito visto nas disciplinas de Algoritmos e Linguagem de 
Programação. Esse registro vai armazenar um nome, um rgm, 
as duas notas das provas e a nota do exame. Observem como 
caria o código de um registro de alunos na linguagem C++:
Agora, vamos pensar em uma função que tenha como 
objetivo calcular a média de um aluno. No paradigma 
estruturado, devemos criar uma função que receba uma 
variável com o registro aluno. Observe:
O mesmo vale se quisermos calcular a média do exame 
de um aluno. Observem o código dessa função na linguagem 
C++:
E se quisermos fazer uma função que de na a situação 
de um aluno? É a mesma coisa. Veja como codi camos isso 
na linguagem C++:
Vamos agora ver como caria um arquivo programa 
típico em C++, com a declaração das três funções e do 
registro:
64
7
Observem que ao menos que vocês tenham que analisar 
o programa na base do seu contexto, não temos como 
deduzir a relação entre uma variável do tipo Aluno com as 
suas respectivas funções de manipulação. 
Nas matérias de Estruturas de Dados, vocês devem ter 
tido contato com o conceito de Tipo Abstrato de Dados. Ele 
pode ser entendido como uma coleção bem de nida de dados 
a serem armazenados, e um grupo de operadores que podem 
ser aplicados para manipulação desses dados contidos nessa 
coleção. 
O registro Aluno e as suas operações se encaixam 
perfeitamente nesse conceito.
Apesar de que, o relacionamento contido entre os dados 
já esteja no nível satisfatório, temos alguns problemas que 
os TADs existem na programação estruturada. Um desses 
exemplos é a possibilidade de inserirmos valores inválidos, 
diretamente nos valores do registro, como uma nota negativa, 
por exemplo:
x.nota_p1 = -1;
Isso é perfeitamente válido na programação estruturada. 
Não existe uma forma de ocultar o dado para os usuários 
externos desse registro. Sendo um dos principais problemas 
que os projetistas viram nesse paradigma. 
Além disso, a reutilização é prejudicada. Ao menos que 
escrevamos uma biblioteca contendo a de nição do registro e 
de suas funções, não existe uma outra forma de reutilizarmos 
o nosso código.
Esses foram alguns dos motivos que motivaram a 
ascensão da Programação Orientada a Objetos. A partir de 
agora, vamos mostrar como transformar esse TAD para a 
Programação Orientada a Objetos.
 
2.1 - Do registro a classe e a objeto
Você viu que um registro é um conjunto de dados 
contidos em um grupo único. Em um registro, podemos 
agrupar um conjunto de dados comuns a um conjunto de 
variáveis, como no exemplo, um conjunto de alunos, que 
sempre possuem dados comuns entre eles. 
Uma classe tem o mesmo fundamento. Ela serve para 
agrupar características comuns entre diferentes variáveis 
de um programa. A diferença é que em uma classe não 
agrupamos somente variáveis, mas também funções. Assim, 
podemos colocar as funções que manipulam um registro para 
dentro da classe.
Aliás, dentro da classe, as variáveis e funções ganham uma 
nova nomenclatura. As variáveis, que de nem as características 
da classe, são denominadas de atributos da classe, enquanto 
que as funções, que de nem o comportamento da classe, 
ganham o nome de métodos.
Assim, podemos transformar o registro Aluno e suas 
funções relacionadas em uma classe chamada Aluno. Para 
isso, tomaremos as seguintes diretrizes:
• Como migraremos as funções que manipulam um 
aluno para dentro da classe e essas funções usam os 
dados de um aluno, que podem ser manipulados de 
uma forma direta dentro da função (agora chamado 
65
Programação Orientada a Objetos 8
de método), removemos a variável do então registro 
Aluno como argumento dos métodos;
• Para indicar que estamos querendo usar um atributo 
ou método de dentro da instância da classe Aluno, 
indicamos o atributo ou o método desejado da 
seguinte maneira: this-><nome>. Onde this tem o 
papel que estamos usando um membro (um atributo 
ou método) da própria instância da classe.
• Como você viu na aula 08 da matéria de Linguagem 
de Programação II, devemos indicar qual a 
visibilidade dos atributos e métodos. Na linguagem 
C++, declaramos em bloco, indicando o nome do 
modi cador, seguido pelo sinal de dois pontos. A 
partir daí, todos os atributos e métodos desse conjunto 
passarão a ser tratadas como o modi cador criado;
• A declaração de atributos e métodos é praticamente 
a mesma de variáveis e funções.
Observe como caria a declaração deuma classe Aluno 
na linguagem C++:
Para usarmos a classe, devemos criar uma variável dessa 
classe. Na Programação Orientada a Objetos, uma variável de 
uma classe é chamada de um Objeto. Ela pode representar 
uma entidade do mundo real, podendo ser um carro, uma 
geladeira, uma moto, um fogão, etc. Pode representar algo 
concreto ou uma entidade conceitual, como uma regra de 
negócio, por exemplo.
Ao processo de criação de um objeto é dado o nome de 
instanciação, quando criamos uma instância de uma classe. 
Observem como caria:
Aluno a;
Para usar os atributos e métodos desse objeto, fora da 
de nição da classe, usamos da mesma forma que fazemos em 
registros, indicando o nome da variável, seguido por um ponto 
e pelo nome do método que queremos acessar. Observem:
a.nota_p1 = 8;
a.nota_p2 = 6;
Em nossa matéria, vamos escrever os nossos programas 
usando a linguagem Java. Ela possui muitas similaridades 
com a linguagem C++, como veremos nas aulas a seguir. As 
principais diferenças são:
• A declaração da visibilidade dos atributos e métodos 
é individual, não coletiva;
• A indicação que estamos manipulando um membro 
do mesmo objeto não usa o operador seta, mas sim 
o operador ponto;
• Devemos declarar algum valor ponto de retorno 
padrão. O método calculaMediaExame foi 
con gurado para retornar alguma coisa somente 
quando a média for menor que 7. Assim, não temos 
nenhum retorno desse método quando o aluno for 
aprovado. Isso é possível na linguagem C++, mas 
não é possível na linguagem Java. Por isso, devemos 
declarar algum retorno. Nesse caso, con guramos 
para retornar a média normal quando o exame é 
desnecessário.
Observem como caria a declaração da mesma classe 
Aluno, na linguagem Java:
A partir desse ponto, podemos aplicar todos os benefícios 
e as novas possibilidades que a programação orientada a 
66
9
objetos nos proporciona. Essas novas possibilidades veremos 
nas próximas aulas.
Na próxima aula, veremos o que é a Linguagem Java e 
como instalá-la. Até logo! 
Lembrem-se: Vocês não estão sozinhos. Estaremos a sua disposição 
quando vocês tiverem algum problema. Basta nos contatarem 
usando o Quadro de Avisos ou o Fórum, que estão disponíveis na sua 
área do aluno. Sempre que precisar, estaremos lá! 
Retomando a aula
Chegamos ao nal da nossa primeira aula. Espera-se 
que agora tenha cado mais claro o entendimento de 
vocês sobre a Introdução à programação orientada 
a objetos. 
Vamos relembrar?
1 - Introdução à Programação Orientada a Objetos 
Nesta seção, relembramos alguns tópicos históricos 
sobre a Programação Orientada a Objetos e a sua evolução 
vinda da Programação Estruturada. A Programação Orientada 
a Objetos é uma outra maneira de organizar a programação, 
que enxerga o programa como um conjunto de classes e 
objetos, não como um conjunto de variáveis e funções.
2 - Do paradigma estruturado a orientação a objetos
Na segunda e última seção, vimos a evolução dos registros 
e dos Tipos Abstratos de Dados, presentes no paradigma 
estruturado, para os conceitos básicos da Programação 
Orientada a Objetos, que são as Classes, Objetos, Métodos 
e Atributos.
BOOCH, Grady JACOBSON, Ivar; RUMBAUGH, 
James. UML – guia do usuário. Elsevier, Rio de Janeiro. 2005.
CORNELL, Gary; HORSTMANN, Cay S.; 
FURMANKIEWICZ, Edson.et al. Core Java, volume I : 
fundamentos. 8. ed. São Paulo: Pearson Prentice Hall, 2010.
CORNELL, Gary; HORSTMANN, Cay S.; 
TORTELLO, José Eduardo N. et al. CoreJava 2: 
fundamentos. São Paulo: Makron Books do Brasil, 2001.
DEITEL, H.M. Java: como programar. 8. ed. São 
Paulo: Pearson Prentice Hall, 2012.
LEE, Richard C.; TEPFENHART, William M. UML e 
C++-Guia prático de desenvolvimento orientado a objeto. São Paulo: 
Vale a pena ler
DEVMEDIA. Análise e projeto orientado a objetos. 
Disponível em: <http://www.devmedia.com.br/curso/
analise-e-projeto-orientado-a-objetos/336>. Acesso em: 19 
out. 2018.
Vale a pena acessar
Vale a pena
Makron, 2002.
ENGHOLM JR, Hélio. Engenharia de Software na prática. 
São Paulo: Novatec Editora, 2010.
SCHILDT, Herbert. Java Para Iniciantes - Crie, Compile 
e Execute Programas Java Rapidamente. 6. ed. Porto Alegre: 
Bookman, 2015.
SEBESTA, Robert W. Conceitos de linguagens de 
programação. Porto Alegre: Bookman Editora, 2009.
Minhas anotações
67

Continue navegando