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

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

Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin/ Marcia Bissaco Universidade de Mogi das Cruzes 2015-02.

Apresentações semelhantes


Apresentação em tema: "Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin/ Marcia Bissaco Universidade de Mogi das Cruzes 2015-02."— Transcrição da apresentação:

1 Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin/ Marcia Bissaco Universidade de Mogi das Cruzes 2015-02

2 Pilares 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 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: class { [ ] } Exemplo: public class Aluno { public int rgm; public void setRgm( int novoRgm ) { rgm = novoRgm; }

6 Declaração de Atributos Sintaxe: [ ] [= ]; 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: 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: [ ] = new [ ]([ ]); Ou: [ ] ; = new [ ]([ ]); Exemplo: Aluno objetoAluno = new Aluno() Ou: 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:. ; Exemplo: objetoAluno.nota1 = 10; //permitido somente se nota1 for publico objetoAluno.calcularMedia();

10 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 Operações disponíveis para a classe Aluno Dados (atributos) da 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 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

18 Classe de aplicação, exemplo 1 public class AplicacaoMedia { public static void main(String[] args) { Aluno objetoAluno; objetoAluno = new Aluno(); objetoAluno.setNome(“João”); objetoAluno.setNota1(2); objetoAluno.setNota2(6); objetoAluno.calcularMedia(); System.out.println(“Media final ” + objetoAluno.getNotaFinal()); }

19 Classe de aplicação, exemplo 2 public class AplicacaoMedia { public static void main(String[] args) { Aluno objetoAluno; objetoAluno = new Aluno(); objetoAluno.setNome(args[0]); objetoAluno.setNota1(2); objetoAluno.setNota2(6); objetoAluno.calcularMedia(); System.out.println(“Media final ” + objetoAluno.getNotaFinal()); } obs.: Em tempo de execução é passado um valor para args. Por exemplo: java AplacacaoMedia Jose

20 Classe de aplicação, exemplo 3 import java.util.Scanner; public class AplicacaoMedia2 { public static void main(String[] args) { Scanner Teclado = new Scanner (System.in); Aluno objetoAluno; objetoAluno = new Aluno(); System.out.println("Digite um nome"); objetoAluno.setNome(Teclado.next()); System.out.println("Digite a primeira nota"); objetoAluno.setNota1(Teclado.nextFloat()); System.out.println("Digite a segunda nota"); objetoAluno.setNota2(Teclado.nextFloat()); objetoAluno.calcularMedia(); System.out.println("Media final " + objetoAluno.getNotaFinal()); }


Carregar ppt "Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin/ Marcia Bissaco Universidade de Mogi das Cruzes 2015-02."

Apresentações semelhantes


Anúncios Google