implementação orientada a objetos – aula 03 atributos e encapsulamento prof. danielle martin...
TRANSCRIPT
![Page 1: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/1.jpg)
Implementação Orientada a Objetos – Aula 03
Atributos e Encapsulamento
Prof. Danielle Martin
Universidade de Mogi das Cruzes
![Page 2: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/2.jpg)
Caracteristicas da orientação a Objetos
A orientação a objetos suporta quatro conceitos chave na criação de classes:
– Abstração– Encapsulamento– Herança– Polimorfismo
![Page 3: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/3.jpg)
Abstração
Abstração
Diz-se da possibilidade de abstrair entidades do mundo real como parte da solução de software
Ex. – Criação de classes Aluno, Veiculo, Documento
![Page 4: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/4.jpg)
Exemplo
Em uma aplicação de software para um sistema acadêmico, pode-se criar a classe Aluno.
A classe Aluno possui os atributos nome, rgm, nota1, nota2, notaFinal e o método calcularMedia.
![Page 5: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/5.jpg)
Declaração de Classes
Sintaxe:
<modificadores> class <nomeDaClasse> {[<declaracoes_atributos>][<declaracoes_construtores>][<declaracoes_métodos>]
}
Exemplo:
public class Aluno {public int rgm;public void setRgm( int novoRgm ) {rgm = novoRgm;
}}
![Page 6: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/6.jpg)
Declaração de Atributos
Sintaxe:
[<modificadores>] <tipo> <nome> [=<valor_inicial>];
Exemplo:
public class Aluno {private int rgm;private String nome;private double nota1;private double nota2;private double notaFinal;private double notaDeAprovacao = 5.0;
}
![Page 7: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/7.jpg)
Declaração de métodos
Sintaxe:
[<modificadores>] <tipo_retorno> <nome> ([<lista_parametros>]){[<instrucoes>]
}
Exemplo:
public class Calculadora {
public double somar (double x, double y) {
double resultado;resultado = x + y;return resultado;
}}
![Page 8: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/8.jpg)
Criação de objetos
Um objeto é uma instância de uma classe
Para criar um novo objeto, usa-se a instrução new
Sintaxe para declaração de um objeto do tipo Aluno:
[<nome_da_classe>] <nome_objeto> = new [<nome_da_classe>]([<parametros>]);
Ou:
[<nome_da_classe>] <nome_objeto>;<nome_objeto> = new [<nome_da_classe>]([<parametros>]);
Exemplo:
Aluno objetoAluno = new Aluno()
Ou:
Aluno objetoAluno;objetoAluno = new Aluno();
![Page 9: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/9.jpg)
Acessar membros de objetos
Apos a instrução new, todos os métodos e atributos da classe serão membros do objetoAluno
Para acessar os atributos e métodos do objeto, usa-se o “ponto” como separador.
Sintaxe:
<nome_objeto>.<membro>;
Exemplo:
objetoAluno.nota1 = 10; //permitido somente se nota1 for publico
objetoAluno.calcularMedia();
![Page 10: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/10.jpg)
Encapsulamento
Encapsulamento
Diz-se da possibilidade da classe de agregar toda a informação relevante para seu processamento, escondendo detalhes de implementaçãode classes externas
Ex. – Toda a manipulação de dados de Alunos se encontra na classe
Aluno– Atributos da classe Aluno nao devem ser acessados por classes
externas, a menos que explicitamente permitido
![Page 11: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/11.jpg)
Encapsulamento
Toda a manipulação de dados de Alunos se encontra na classe Aluno
Operações disponíveis para a classe Aluno
Dados (atributos) da classe Aluno
![Page 12: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/12.jpg)
Encapsulamento
Atributos da classe Aluno não devem ser acessados por classes externas, a menos que explicitamente permitido
Uma boa prática para garantir o encapsulamento dos dados é declarar os atributos sempre privados, e os métodos públicos.
![Page 13: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/13.jpg)
Modificadores de acesso/visibilidade
Existem três modificadores de visibilidade de atributos e métodos:
public
• O atributo/método declarado como público podera ser acessado por qualquer objeto externo. O acesso externo neste caso é total.
private
• O atributo/método declarado como private somente pode ser acessado pelo próprio objeto, sem nenhuma visibilidade externa.
protected
• O atributo/método declarado como protected pode ser acessado pelo próprio objeto e/ou por objetos de classes derivadas através de uma herança (Herança será um tópico abordado nas próximas aulas).
![Page 14: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/14.jpg)
Métodos de acesso getters e setters
Se os atributos são privados, como ler/modificar o valor dos mesmos para diferentes objetos?
SOLUÇÃO: criar métodos que encapsulem o acesso aos atributos.
Esses métodos sao chamados GETTERS e SETTERS
– Para LER o valor do atributo rgm, criar o método getRgm
– Para ALTERAR o valor do atributo rgm, criar o método setRgm
![Page 15: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/15.jpg)
Métodos de acesso getters e setters
Isso é permitido, mas NÃO recomendado:
Aluno objetoAluno;objetoAluno = new Aluno();
objetoAluno.nome = “João”;objetoAluno.nota1 = 2;objetoAluno.nota2 = 6;
objetoAluno.notaFinal = 10;System.out.println(“Media final ” +
objetoAluno.notaFinal); //irá imprimir 10
Isso é permitido E recomendado:
Aluno objetoAluno;objetoAluno = new Aluno();
objetoAluno.setNome(“João”);objetoAluno.setNota1(2);objetoAluno.setNota2(6);
objetoAluno.calcularMedia();System.out.println(“Media final ” +
objetoAluno.getNotaFinal());//irá imprimir 4
![Page 16: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/16.jpg)
Exemplo: Classe Aluno
Exemplo
public class Aluno {private int rgm;private String nome;private double nota1;private double nota2;private double notaFinal;
public void setRgm(int r) {rgm = r;
}
public void setNome(String n) {nome = n;
}
public void setNota1(double n) {nota1 = n;
}
public void setNota2(double n) {nota2 = n;
}
public int getRgm() {return rgm;
}
public String getNome() {return nome;
}
public double getNota1() {return nota1;
}
public double getNota2() {return nota2;
}
public double getNotaFinal() {return notaFinal;
}
public void calcularMedia() {notaFinal = (nota1 + 2*nota2)/3;
}
}
Não existe o médoto setNotaFinal. O atributo notaFinal apenas poderá ser modificado através do método calcularMedia().
![Page 17: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc16b497959413d8ec51e/html5/thumbnails/17.jpg)
Exercicio: Criar objetos Aluno
1. Criar a classe Aluno conforme o slide anterior (nao esqueça de salvá-la em um arquivo Aluno.java)
2. Criar uma classe executável AplicacaoMedia que instancie um objeto aluno, atribua valores para nome, rgm, nota1 e nota2 e imprima a notaFinal. Nao esqueça de salvá-la em um arquivo chamado AplicacaoMedia.java
public class AplicacaoMedia {
public static void main(String[] args) {
//Digite seu codigo aqui
}}
3. Compile ambas as classes e execute AplicacaoMedia