Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Implementação Orientada a Objetos – Aula 03
Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes
2
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
3
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
4
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.
5
Declaração de Classes Sintaxe: Exemplo:
<modificadores> class <nomeDaClasse> { [<declaracoes_atributos>] [<declaracoes_construtores>] [<declaracoes_métodos>] } Exemplo: public class Aluno { public int rgm; public void setRgm( int novoRgm ) { rgm = novoRgm;
6
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; }
7
Declaração de métodos Sintaxe: Exemplo:
[<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;
8
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() Aluno objetoAluno; objetoAluno = new Aluno();
9
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();
10
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
11
Encapsulamento Toda a manipulação de dados de Alunos se encontra na classe Aluno Dados (atributos) da classe Aluno Operações disponíveis para a classe Aluno
12
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.
13
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).
14
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
15
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
16
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().
17
Exercicio: Criar objetos Aluno
Criar a classe Aluno conforme o slide anterior (nao esqueça de salvá-la em um arquivo Aluno.java) 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 } Compile ambas as classes e execute AplicacaoMedia
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.