Enviar pesquisa
Carregar
POO e encapsulamento
•
1 gostou
•
1,869 visualizações
Título melhorado com IA
Ludimila Monjardim Casagrande
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 8
Baixar agora
Baixar para ler offline
Recomendados
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
Oziel Moreira Neto
Aula javascript
Aula javascript
Gabriel Moura
POO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em Java
Ludimila Monjardim Casagrande
Clean Code
Clean Code
Bruno Lui
Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)
Rodrigo Kono
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...
Thiago Faria de Andrade
Clean Code (Robert C. Martin)
Clean Code (Robert C. Martin)
Yasser Veleda
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
Daniel Brandão
Recomendados
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
Oziel Moreira Neto
Aula javascript
Aula javascript
Gabriel Moura
POO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em Java
Ludimila Monjardim Casagrande
Clean Code
Clean Code
Bruno Lui
Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)
Rodrigo Kono
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...
Thiago Faria de Andrade
Clean Code (Robert C. Martin)
Clean Code (Robert C. Martin)
Yasser Veleda
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
Daniel Brandão
Verificação e validação de software
Verificação e validação de software
Leonardo Melo Santos
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
Henrique Silvestre Souza
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
Rodrigo Branas
Programação Orientado a Objetos
Programação Orientado a Objetos
Jéssica Nathany Carvalho Freitas
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
Ludimila Monjardim Casagrande
Cours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxy
ENSET, Université Hassan II Casablanca
Linguagem C - Vetores
Linguagem C - Vetores
Elaine Cecília Gatto
Banco de dados orientados a objetos
Banco de dados orientados a objetos
Raquel Machado
Java modulo 01 - Introdução
Java modulo 01 - Introdução
Professor Samuel Ribeiro
TDD - Test Driven Development
TDD - Test Driven Development
Elias Nogueira
Introdução ao GitHub e Git
Introdução ao GitHub e Git
Igor Steinmacher
Complexidade Ciclomática
Complexidade Ciclomática
Douglas Siviotti
Linguagem C - Strings
Linguagem C - Strings
Elaine Cecília Gatto
Algoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e Matrizes
Professor Samuel Ribeiro
Apresentação Docker
Apresentação Docker
André Justi
19 algoritmos de enumeracao
19 algoritmos de enumeracao
Ricardo Bolanho
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
Adriano Teixeira de Souza
POO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em Java
Ludimila Monjardim Casagrande
Linguagem de Programação Python
Linguagem de Programação Python
Junior Sobrenome
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento Web
Sérgio Souza Costa
Pop encapsulação
Pop encapsulação
Juciê Vasconcelos
Farmacotécnica
Farmacotécnica
Julia Martins Ulhoa
Mais conteúdo relacionado
Mais procurados
Verificação e validação de software
Verificação e validação de software
Leonardo Melo Santos
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
Henrique Silvestre Souza
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
Rodrigo Branas
Programação Orientado a Objetos
Programação Orientado a Objetos
Jéssica Nathany Carvalho Freitas
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
Ludimila Monjardim Casagrande
Cours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxy
ENSET, Université Hassan II Casablanca
Linguagem C - Vetores
Linguagem C - Vetores
Elaine Cecília Gatto
Banco de dados orientados a objetos
Banco de dados orientados a objetos
Raquel Machado
Java modulo 01 - Introdução
Java modulo 01 - Introdução
Professor Samuel Ribeiro
TDD - Test Driven Development
TDD - Test Driven Development
Elias Nogueira
Introdução ao GitHub e Git
Introdução ao GitHub e Git
Igor Steinmacher
Complexidade Ciclomática
Complexidade Ciclomática
Douglas Siviotti
Linguagem C - Strings
Linguagem C - Strings
Elaine Cecília Gatto
Algoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e Matrizes
Professor Samuel Ribeiro
Apresentação Docker
Apresentação Docker
André Justi
19 algoritmos de enumeracao
19 algoritmos de enumeracao
Ricardo Bolanho
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
Adriano Teixeira de Souza
POO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em Java
Ludimila Monjardim Casagrande
Linguagem de Programação Python
Linguagem de Programação Python
Junior Sobrenome
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento Web
Sérgio Souza Costa
Mais procurados
(20)
Verificação e validação de software
Verificação e validação de software
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
Programação Orientado a Objetos
Programação Orientado a Objetos
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
Cours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxy
Linguagem C - Vetores
Linguagem C - Vetores
Banco de dados orientados a objetos
Banco de dados orientados a objetos
Java modulo 01 - Introdução
Java modulo 01 - Introdução
TDD - Test Driven Development
TDD - Test Driven Development
Introdução ao GitHub e Git
Introdução ao GitHub e Git
Complexidade Ciclomática
Complexidade Ciclomática
Linguagem C - Strings
Linguagem C - Strings
Algoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e Matrizes
Apresentação Docker
Apresentação Docker
19 algoritmos de enumeracao
19 algoritmos de enumeracao
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
POO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em Java
Linguagem de Programação Python
Linguagem de Programação Python
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento Web
Destaque
Pop encapsulação
Pop encapsulação
Juciê Vasconcelos
Farmacotécnica
Farmacotécnica
Julia Martins Ulhoa
POO - 06 - Encapsulamento
POO - 06 - Encapsulamento
Ludimila Monjardim Casagrande
Encapsulamento em oo
Encapsulamento em oo
Marconi Rodrigues
JAVA - Herança
JAVA - Herança
Elaine Cecília Gatto
POO Herança
POO Herança
Paulo Henrique Martins da Silva
Cálculos i e ii
Cálculos i e ii
Ana Laura Sanches
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
Ludimila Monjardim Casagrande
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de Classe
Felipe J. R. Vieira
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
Daniel Brandão
36854375 apostila-pratica-farmacotecnica
36854375 apostila-pratica-farmacotecnica
Marcia Cristina
98230944 farmacotecnica-apostila
98230944 farmacotecnica-apostila
KEYTIANE JVA
Apostila Farmacotécnica II - Prática 2016
Apostila Farmacotécnica II - Prática 2016
Herbert Cristian de Souza
Apostila-calculos-1-pdf
Apostila-calculos-1-pdf
Fernanda Camargo
Destaque
(14)
Pop encapsulação
Pop encapsulação
Farmacotécnica
Farmacotécnica
POO - 06 - Encapsulamento
POO - 06 - Encapsulamento
Encapsulamento em oo
Encapsulamento em oo
JAVA - Herança
JAVA - Herança
POO Herança
POO Herança
Cálculos i e ii
Cálculos i e ii
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de Classe
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
36854375 apostila-pratica-farmacotecnica
36854375 apostila-pratica-farmacotecnica
98230944 farmacotecnica-apostila
98230944 farmacotecnica-apostila
Apostila Farmacotécnica II - Prática 2016
Apostila Farmacotécnica II - Prática 2016
Apostila-calculos-1-pdf
Apostila-calculos-1-pdf
Mais de Ludimila Monjardim Casagrande
Gerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com Scrum
Ludimila Monjardim Casagrande
POO - 23 - Coleções da API do Java
POO - 23 - Coleções da API do Java
Ludimila Monjardim Casagrande
POO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de Dados
Ludimila Monjardim Casagrande
POO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
Ludimila Monjardim Casagrande
POO - 19 - Elementos Estáticos
POO - 19 - Elementos Estáticos
Ludimila Monjardim Casagrande
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
Ludimila Monjardim Casagrande
POO - 17 - Interfaces
POO - 17 - Interfaces
Ludimila Monjardim Casagrande
POO - 16 - Polimorfismo
POO - 16 - Polimorfismo
Ludimila Monjardim Casagrande
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
Ludimila Monjardim Casagrande
POO - 14 - Vetores
POO - 14 - Vetores
Ludimila Monjardim Casagrande
POO - 13 - Arrays em Java
POO - 13 - Arrays em Java
Ludimila Monjardim Casagrande
POO - 12 - A Classe Object
POO - 12 - A Classe Object
Ludimila Monjardim Casagrande
POO - 11 - Prática de Herança
POO - 11 - Prática de Herança
Ludimila Monjardim Casagrande
POO - 10 - Herança
POO - 10 - Herança
Ludimila Monjardim Casagrande
POO - 07 - Operadores do Java
POO - 07 - Operadores do Java
Ludimila Monjardim Casagrande
POO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de Desenvolvimento
Ludimila Monjardim Casagrande
POO - 04 - Variávies em Java
POO - 04 - Variávies em Java
Ludimila Monjardim Casagrande
POO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - Datas
Ludimila Monjardim Casagrande
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
Ludimila Monjardim Casagrande
Mais de Ludimila Monjardim Casagrande
(19)
Gerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com Scrum
POO - 23 - Coleções da API do Java
POO - 23 - Coleções da API do Java
POO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de Dados
POO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
POO - 19 - Elementos Estáticos
POO - 19 - Elementos Estáticos
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 17 - Interfaces
POO - 17 - Interfaces
POO - 16 - Polimorfismo
POO - 16 - Polimorfismo
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
POO - 14 - Vetores
POO - 14 - Vetores
POO - 13 - Arrays em Java
POO - 13 - Arrays em Java
POO - 12 - A Classe Object
POO - 12 - A Classe Object
POO - 11 - Prática de Herança
POO - 11 - Prática de Herança
POO - 10 - Herança
POO - 10 - Herança
POO - 07 - Operadores do Java
POO - 07 - Operadores do Java
POO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de Desenvolvimento
POO - 04 - Variávies em Java
POO - 04 - Variávies em Java
POO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - Datas
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO e 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
Baixar agora