A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Implementação Orientada a Objetos – Aula 03

Apresentações semelhantes


Apresentação em tema: "Implementação Orientada a Objetos – Aula 03"— Transcrição da apresentação:

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


Carregar ppt "Implementação Orientada a Objetos – Aula 03"

Apresentações semelhantes


Anúncios Google