Programação Orientada a Objetos Prática de Implementação Encapsulamento e Modificadores de Acesso Ludi...
Exercício public class Data { public int dia; public int mes; Atributos declarados ...
Exercício public class Principal { public static void main (String[] args) { Data d = n...
Exercício public class Data { private int dia; private int mes; private int ano; ...
Exercício public class Principal { public static void main (String[] args) { Data d ...
Solução Alternativa public class Data { private int dia = 1; Definição de private int mes = 1; ...
Exercício  Implemente as classes Hora e Data (cada uma em um arquivo separado, porém no mesmo projeto). ...
Atenção  Ao fazer seu exercício, explore o uso das packages criando novas packages, movendo as c...
of 8

POO - 08 - Prática de Encapsulamento

Published on: Mar 4, 2016
Published in: Technology      
Source: www.slideshare.net


Transcripts - POO - 08 - Prática de Encapsulamento

  • 1. Programação Orientada a Objetos Prática de Implementação Encapsulamento e Modificadores de Acesso Ludimila Monjardim Casagrande 2012
  • 2. Exercício public class Data { public int dia; public int mes; Atributos declarados como public int ano; públicos public Data () { } public Data (int dia, int mes, int ano) { Falha nos construtores! this.dia = dia; Ambos permitem a criação de this.mes = mes; datas inválidas. this.ano = ano; } public String toString() { String data = dia + "/" + mes + "/" + ano; return data; } }Aula Prática ©2012 Ludimila Monjardim Casagrande 2
  • 3. Exercício public class Principal { public static void main (String[] args) { Data d = new Data(); d.dia = 40; Como os atributos são públicos, eles d.mes = 40; podem ser acessados e alterados d.ano = -40; diretamente em outra classe System.out.println(d); } } Resultado: 40/40/-40  Não é uma data válida!Aula Prática ©2012 Ludimila Monjardim Casagrande 3
  • 4. Exercício public class Data { private int dia; private int mes; private int ano; public void setDia (int dia) { if(dia >= 1 && dia <= 31) { this.dia = dia; public Data () { } this.dia = 1; } this.mes = 1; this.ano = 1800; public void setMes (int mes) { } if(mes >= 1 && mes <= 12) { public Data (int d, int m, int a) { this.mes = mes; this(); } if((d >= 1 && d <= 31) && } (m >= 1 && m <= 12) && public void setAno (int ano) { (a >= 1800 && a <= 2100)) { if(ano >= 1800 && ano <= 2100) { this.dia = d; this.ano = ano; this.mes = m; } this.ano = a; } } … } } …Aula Prática ©2012 Ludimila Monjardim Casagrande 4
  • 5. Exercício public class Principal { public static void main (String[] args) { Data d = new Data(); d.setDia(40); d.setMes(40); d.setAno(-40); System.out.println(d); } } Resultado: 1/1/1800  Tentativas de alterações inválidas não são aceitas.Aula Prática ©2012 Ludimila Monjardim Casagrande 5
  • 6. Solução Alternativa public class Data { private int dia = 1; Definição de private int mes = 1; valores default public void setDia (int dia) { private int ano = 1800; if(dia >= 1 && dia <= 31) { this.dia = dia; public Data () { } } } public Data (int d, int m, int a) { public void setMes (int mes) { if((d >= 1 && d <= 31) && if(mes >= 1 && mes <= 12) { (m >= 1 && m <= 12) && this.mes = mes; } (a >= 1800 && a <= 2100)) { } this.dia = d; this.mes = m; public void setAno (int ano) { this.ano = a; if(ano >= 1800 && ano <= 2100) { } this.ano = ano; } } … } … }Aula Prática ©2012 Ludimila Monjardim Casagrande 6
  • 7. Exercício  Implemente as classes Hora e Data (cada uma em um arquivo separado, porém no mesmo projeto).  Crie duas pastas, chamadas hora e data, ambas na raiz (src) e coloque as respectivas classes nas pastas.  Declare as packages das classes corretamente.  Implemente uma classe Principal com o método main e salve-a na raiz do projeto.  Na classe Principal crie e altere objetos das classes Hora e Data, explorando o uso dos vários construtores disponíveis.  A cada alteração do objeto, imprima-o na tela e observe os resultados.Aula Prática ©2012 Ludimila Monjardim Casagrande 7
  • 8. Atenção  Ao fazer seu exercício, explore o uso das packages criando novas packages, movendo as classes de lugar e observando os efeitos provocados.  Explore também o uso dos diferentes modificadores de acesso nas classes Hora e Data e observe os efeitos colaterais na classe Principal.  Não espere a professora pedir, aprimore você mesmo o seu estudo. Aula Prática ©2012 Ludimila Monjardim Casagrande 8

Related Documents