Top Banner
Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes
17

Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes.

Apr 22, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin Universidade de Mogi das Cruzes.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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