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

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Introdução a Programação Orientada a Objetos
ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
Orientação a Objetos: Modificador Final para Métodos e Classes
Iniciação ao Java – Márcio F. Campos
Polimorfismo e Acoplamento Dinâmico
Polimorfismo e Classes Abstratas Profa
Diagrama de Classes.
Wagner Santos C. de Jesus
Orientação a Objetos Classes
Paradigmas da Programação – Semestre 1 – Aula 3
Aula 8 Polimorfismo.
Classes e objetos P. O. O. Prof. Grace.
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
CRIANDO OBJETOS EM JAVA
Se liga aí, que é hora da revisão!
Herança em C#.
Programação Orientada a Objetos com Java
JAVA Orientação a Objetos
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Atributos, Encapsulamento e Interface em Java
Programação I Aula 2 (Métodos)
Métodos de Construção de Software: Orientação a Objetos
Classes, Objetos, Atributos e Métodos JAVA
if669 - Introdução à Programação
Orientação a Objetos Parte I
Programação Orientada à Objetos
Laboratório I Mateus Raeder. Mateus Raeder – fevereiro de 2009 Associação entre classes  Um objeto é a representação de uma entidade do mundo real 
Programação Orientada à Objetos
Wagner Santos C. de Jesus
Aula prática 14 Orientação a Objetos – C++ Parte 2
Implementação Orientada a Objetos – Aula 03
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Programação Orientada à Objetos
Curso de Aprendizado Industrial Desenvolvedor WEB
Prof. Gilberto Irajá Müller
Orientação a Objetos usando Java
Java Kickstart, day 2 Semelhanças com linguagem C.
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Programação I Aula 1 Prof. Gilberto Irajá Müller Última atualização 2/3/2009.
Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes
Herança e Arquitetura em camadas
Classes Abstratas e Interfaces GX – Aula05 1.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Conteúdos Programáticos Criação de classes em VB Criar Criar Manipular Manipular Tipos de acesso Tipos de acesso Constructores Constructores.
Modificadores Programação II.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
OO com Java Luiz Carlos d´Oleron Roteiro de aula.
Polimorfismo - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour ▐ Polimorfismo ▐ Exemplo ▐ Classes Abstratas.
2 – Revisão de Programação Orientada a Objetos
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Operador Condicional (? :). Operador Condicional Operador ternário que pode ser utilizado no lugar de uma instrução if...else.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Implementação Orientada a Objetos – Aula 01 Introdução à Orientação a Objetos Prof. Danielle Martin Universidade de Mogi das Cruzes
Associação. 2 Desafio – Aula class Aluno { 2. private String nome; 3. private float nota; 4. public Aluno(String nome, float nota){ 5. this.nome.
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Curso Básico de Android
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Implementação Orientada a Objetos – Aula 09 Pacotes Prof. Danielle Martin Universidade de Mogi das Cruzes
Implementação Orientada a Objetos – Aula 08 Herança, sobrescrita de métodos e polimorfismo Prof. Danielle Martin Universidade de Mogi das Cruzes
Implementação Orientada a Objetos – Aula 07 Agregação e composição de objetos Prof. Danielle Martin Universidade de Mogi das Cruzes
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Padrões de Projeto 2 – Revisão de Programação Orientada a Objetos.
Java Básico Lab Ruddá Beltrão | Cristian Costa.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

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

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

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

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.

Declaração de Classes Sintaxe: class { [ ] } Exemplo: public class Aluno { public int rgm; public void setRgm( int novoRgm ) { rgm = novoRgm; }

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; }

Declaração de métodos Sintaxe: [ ] ([ ]){ [ ] } Exemplo: public class Calculadora { public double somar (double x, double y) { double resultado; resultado = x + y; return resultado; }

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();

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();

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

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

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.

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).

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

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

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().

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

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()); }

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

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()); }