Aula-2 Introdução à Programação Orientada a...
Transcript of Aula-2 Introdução à Programação Orientada a...
![Page 1: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/1.jpg)
Linguagem de Programação III
Aula-2Introdução à Programação Orientada a Objetos
Prof. Esbel Tomás Valero Orellana
![Page 2: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/2.jpg)
Modelos
Modelos são representações simplificadas de objetos, pessoas, itens, tarefas, processos, conceitos. Ideias etcExemplo da data:A Data é um modelo do data, representando de forma simplificada as informações (dados) que são necessárias para representar um determinado evento.
![Page 3: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/3.jpg)
Modelos
O modelo Data também tem operações associadas aos dados contidos nele, como por exemplo:● Verificar se a data é valida● Comparar cronologicamente com outra data● Modificar a dataDe forma geral● Modelos = Dados + Operações● Modelos que contem somente Dados● Modelos que contem somente Operações
![Page 4: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/4.jpg)
Representação
Utilizando sempre fonte monoespaçada ● Dados de modelos e operações serão representados com minúsculas alternadas de maiúsculas● Modelos terão a primeira letra maiúscula.
No exemplo anteriorModelo: DataDados: dia
mêsano
![Page 5: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/5.jpg)
Modelos
A informação que utilizamos num modelo dependem do contexto que em este modelo está sendo utilizado. Simplificações são, as vezes, necessárias. Pensemos no modelo utilizado para representar uma pessoa nos seguintes contextos.● Pessoa professor da universidade.● Pessoa funcionário da universidade.● Pessoa aluno da universidade. Estes modelos podem ser utilizados para representar diferentes objetos.
![Page 6: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/6.jpg)
Programação Orientada a Objetos
● Programação Orientada a Objetos (POO) é um paradigma de programação de computadores onde se usam classes e objetos, criados a partir de modelos para representar e processar dados usando programas de computadores.● POO considera que os dados a serem processados e os mecanismos de processamento destes dados devem ser considerados em conjunto.● Os dados dos modelos podem ser representados por tipos nativos da linguagem ou por outros modelos já existentes na linguagem ou criados pelo programador.
![Page 7: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/7.jpg)
Encapsulamento
● Em muitos casos é recomendável deixar que sejam os mecanismos criados no modelo os únicas a modificar alguns dados dele e fazer que estes dados fiquem ocultos. ● A capacidade de ocultar dados dentro de modelos, permitindo que somente operações especializadas manipulem os dados ocultos chama-se encapsulamento, e é uma das características principais da POO.
![Page 8: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/8.jpg)
Modelos
Data__________________________________ dia mes ano__________________________________ inicializaData (d,m,a) dataEValida (d,m,a) mostraData ( )_______________________________
![Page 9: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/9.jpg)
Modelos
Lampada__________________________________
estadoDaLampada__________________________________
acende ( ) apaga ( ) MostraEstado ( )________________________________
![Page 10: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/10.jpg)
ModelosContaBancaria
____________________________________________ nomeDoCorrentista saldo contaEspecial____________________________________________ abreConta (nome,deposito,eEspecial) abreContaSimples (nome) deposita (valor) retira (valor) mostraDados ( )_________________________________________
![Page 11: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/11.jpg)
Modelos
RegistroAcademico____________________________________________________
nomeDoAluno numeroDeMatricula dataDeNascimento eBolsista anoDeMatricula
____________________________________________________ inicializaRegistro (nome,matricula,data,bolsa,ano) mostraRegistro ( )
_______________________________________________
![Page 12: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/12.jpg)
Classes●Em POO os modelos analisados aqui serão implementados como classes. ●Os dados da classes são chamados de campos ou atributos da classe. ●As operações definidas numa classe são chamadas de métodos. Muitos autores utilizam o termo mensagem para se referir à chamada de um método da classe. ●Classes são estruturas das linguagens de POO para representar os modelos. Para representar dados específicos do modelo teremos que criar instâncias desta classe ou objetos
![Page 13: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/13.jpg)
Exercício
Fazer uma representação dos três modelos de pessoa dentro da universidade discutidos nesta aula (professor, funcionário e aluno). Considere em cada casso quais atributos e métodos cada modelo deve ter.
![Page 14: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/14.jpg)
Classes em Java
● Uma classe em Java é sempre declarada com a palavrachave class seguida do nome da classe. O nome não pode conter espaços e deve sempre começar com letra. Não deve conter acentos e pode ter números. Não podem ser palavras reservadas em Java. ● Java diferencia maiúsculas e minúsculas nos nomes. ● O conteúdo da classe, todos atributos e métodos, está limitado por { e }.
![Page 15: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/15.jpg)
Classe Vazia
/** * A classe Vazia não possui atributos nem métodos, mas mesmo assim pode ser * usada para exemplificar as regras sintáticas básicas de Java, podendo * ate mesmo ser compilada. */class Vazia // esta é a declaração da classe{ /*Se houvesse atributos ou métodos para a classe Vazia, eles deveriam ser * declarados aqui dentro */ } // fim da classe Vazia
![Page 16: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/16.jpg)
Classes em Java
Comentários no código● Comentários de uma única linha (//).● Comentários em Bloco (/* */). ● Cometários em Bloco para documentação (/** */).
É aconselhável que os arquivos contenham somente uma classe, e que os nomes dos arquivos sejam compostos dos nomes das classes com a extensão .java
![Page 17: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/17.jpg)
Tipos de Dados Nativos
● boolean (true ou false): Valores Booleanos● char (0 a 65535): Caracteres representados em 16 bits. ● byte (-128 a 127): Inteiro de 8 bits● short (-32768 a 32767): Inteiro de 16 bits● int (...): Inteiro de 32 bits● long (...): Inteiro de 64 bits● float (...): Ponto flutuante de precisão simples● double (...): Ponto flutuante de precisão dupla
![Page 18: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/18.jpg)
A classe String
A classe String é usada para representar cadeias de caracteres. Nos exemplos utilizaremos instâncias desta classe que pela sua simplicidade pode ser considerada um tipo nativo de dado.As instâncias da classe String estão limitadas apenas pela capacidade de memória do computador.
![Page 19: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/19.jpg)
Sintaxe de Atributos
● Devem ser iniciados por letras, estar compostos por uma única palavra, e podem ter letras e números. Os nomes podem ter acentos.● Dois atributos de uma classe não podem ter o mesmo nome.● Vários atributos do mesmo tipo podem ser declarados simultaneamente
Como escolher que tipo de dado utilizar?
![Page 20: Aula-2 Introdução à Programação Orientada a Objetosnbcgib.uesc.br/nbcgib/files/LP-III/LP-III-Aula-02.pdf · 2013-04-12 · Classes Em POO os modelos analisados aqui serão implementados](https://reader033.fdocumentos.tips/reader033/viewer/2022050609/5fb0701a1d54fa4e304814ee/html5/thumbnails/20.jpg)
Sintaxe de Métodos
● Devem ser iniciados por letras, estar compostos por uma única palavra, e podem ter letras e números. Os nomes podem ter acentos.● Métodos não podem ser criados dentro de outros métodos nem fora da classe à qual pertencem● Cada método deve ter em sua declaração um tipo de retorno. Métodos que retornem alguma coisa diferente de void devem ter no seu corpo a palavra-chave return.