Buscar

Programação Orientada a Objetos-Java-2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

O Paradigma de Objetos 
em Java – Parte I 
Objetos 
� Um objeto é um conceito, abstração, ou 
entidade com limites bem definidos e um 
significado para a aplicação; 
�  Informalmente um objeto representa uma 
entidade, tanto física quanto conceitual ou de 
software; 
Exemplos: 
�  Entidade Física: caminhão, carro, bicicleta, etc. 
�  Entidade Conceitual: processo químico, matrícula, etc 
�  Entidade de Software: lista encadeada, arquivo, etc. 
Objetos (2) 
Atributos 
Operação 1 
O
peração 2 O
pe
ra
çã
o 
5 Objeto geométrico 
cor: 
posição: 
selecionar(p: Ponto): boolean 
girar(Ângulo: real) 
mover(delta: coord) 
Exemplo 
Objetos (3) 
Características dos Objetos 
�  Os dados de um objeto são totalmente escondidos 
e protegidos de outros objetos. A única maneira de 
acessá-los é através da invocação de uma operação 
declarada na interface pública do objeto. 
�  A interface pública de um objeto consiste no 
conjunto de operações que um cliente do objeto pode 
acessar, o conjunto de métodos de um objeto. 
�  Variáveis representando o estado interno do objeto 
são chamadas variáveis de instância ou atributos. 
As operações são chamadas de métodos. 
Atributos 
Operação 
1 Operação 
2 
O
pe
ra
çã
o 
5 
Atributos 
Operação 
1 Operação 
2 
O
pe
ra
çã
o 
5 
Comunicação entre Objetos 
Um objeto comunica-se com outro através de 
mensagens que identificam operações a serem 
realizadas no segundo objeto. 
 Obj1 { ... Obj2.operação5(); ...} 
Objeto 1 
Objeto 2 
Características dos Objetos (2) 
Objetos (4) 
�  Todo objeto possui: 
�  um estado, que é normalmente implementado através de 
seu conjunto de atributos, os valores destes atributos, 
mais as ligações que o objeto pode ter com outros 
objetos; 
�  uma identidade única. Identidade é a propriedade de um 
objeto que distingue-o de outros objetos. Identidade não é 
o nome do objeto, nem o endereço de memória onde ele 
está armazenado, é um conceito de linguagens de 
programação que não é visível para os “usuários”; e 
�  um comportamento. O comportamento define como um 
objeto reage às requisições de outros objetos, em termos 
de mudanças de estados e passagem de mensagens. 
�  Todo objeto possui um estado, exibe um 
comportamento bem-definido e possui uma 
identidade única. 
Objetos em Java 
�  O operador new é usado em Java para se criar 
objetos. 
 Date dataatual; 
 dataatual = new Date(); 
�  Neste momento, a máquina virtual aloca a memória 
necessária para armazenar os dados existentes no 
objeto dataatual; 
�  Você pode criar tantos objetos quantos forem 
necessários ao seu programa; 
�  Obs: Você não pode solicitar serviços (enviar 
mensagens ou acessar os dados) de um objeto antes 
que ele seja instanciado com new. 
Objetos em Java (2) 
import java.util.Date; 
public class DateTest { 
 public static void main(String[] args) { 
 Date d; 
 d = new Date(); 
 System.out.println(" Hoje e "+d.toString()); 
 System.out.println("O ano e "+d.getYear() ); 
 System.out.println("O mes e "+d.getMonth()); 
 
 System.out.println("O dia e "+d.getDay() ); 
 System.out.println("\n Mudanca de Dia "); 
 d = new Date(1973,11,25); 
 System.out.println(" Hoje e"+d.toString()); 
 System.out.println("O ano e "+d.getYear() ); 
 } 
} 
Classes 
�  Uma classe é a descrição de um grupo de objetos com 
propriedades similares (atributos), comportamento 
comum (métodos) , relacionamentos com outros 
objetos e semânticas idênticas. 
�  Todo objeto é instância de uma classe. 
 int a; 
 Date dataatual; 
 Pessoa p; 
�  Enquanto um objeto é uma entidade concreta que 
executa algum papel no sistema, uma classe captura 
a estrutura e comportamento comuns a todos os 
objetos relacionados. 
(Pessoa) 
Zezinho 
(Pessoa) 
Luizinho 
(Pessoa) 
Huguinho 
Pessoa 
Atributos 
Métodos 
nome:string 
idade:inteiro 
calcularIdade() 
Classes (2) 
�  Uma classe define a estrutura e o comportamento de 
qualquer objeto da classe, atuando como um padrão 
para a construção de objetos. 
�  Objetos podem ser agrupados em classes. 
Classes (3) 
�  A definição da classe consiste na definição de 
atributos e métodos: 
�  Um atributo é uma característica de uma classe. 
Atributos não apresentam comportamento, eles 
definem a estrutura da classe. 
�  Um método, ou operação, caracteriza o 
comportamento de um objeto, e são o único meio de 
acessar, manipular e modificar os atributos de um 
objeto. 
Classes em Java 
�  Em Java, utiliza-se a palavra reservada class para se 
definir classes. 
�  Exemplo: 
 class Conta { 
 long saldo; // Saldo da Conta Corrente 
 String titular; // Nome do titular 
 long cpf; // CPF do titular 
public long getSaldo() {return saldo;} 
public long getCpf() {return cpf;} 
public String getTitular(){return titular;} 
} 
 
�  O código acima define uma classe Conta que modela a 
conta-corrente de um usuário de um Banco. 
Classes em Java (2) 
�  A classe DateTest definida anteriormente tinha a única 
função de conter o método main... 
import java.util.Date; 
public class DateTest { 
 public static void main(String[] args) { 
 Date d = new Date(); 
 System.out.println("O ano e "+d.getYear() ); 
 System.out.println("O mes e "+d.getMonth()); 
 } 
} 
Classes em Java (3) 
�  ... entretanto, temos interesse em criar nossas 
próprias classes para a criação de aplicações mais 
sofisticadas. 
 public class NomedaClasse { 
 // definicao dos metodos 
 // definicao dos atributos 
 } 
�  Simplificadamente, em Java deve existir uma classe por 
arquivo. 
Classes em Java (4) 
import java.util.Date; 
public class Conta {// Inicio da Classe 
 // definicao de atributos 
 private int saldo; 
 private String titular; 
 private int cpf; 
 private Date criacao; 
 
// definicao de metodos 
 public Conta(int cp) { 
 cpf = cp; 
 saldo = 0; 
 titular = " "; 
 criacao = new Date(); 
 } 
 
Classes em Java (5) 
 public int getSaldo( ) { return saldo;} 
 public void setSaldo(int s ) { saldo=s;} 
 public String getTitular( ) { return titular;} 
 public void setTitular(String n) { titular=n;} 
 public int getCpf( ) { return cpf;} 
 public void setCpf( int cp ) {cpf = cp; } 
 
public void depositar(int dep) { 
 saldo += dep; 
} 
 
public void zerar() { 
 saldo = 0; 
} 
 
Classes em Java (6) 
 
public void saque(int saq) { 
 if (autoriza(saq)) saldo -= saq; 
 else System.out.println("Não pode sacar"); 
} 
 
private boolean autoriza(int saq) { 
 if (saldo>=saq) return true; 
 else return false; 
} 
} // FIM da definicao da Classe 
 
Classes em Java (7) 
// ********* Programa Principal ********* 
public class TestaConta { 
public static void main(String[] args) { 
 Conta n; 
 n = new Conta(424819); 
 n.setSaldo(100); 
 n.setTitular("Cleidson R. B. Souza"); 
 n.saque(200); 
 n.saque(75); 
 System.out.println(n); // OBS !!!! 
} 
Atributos em Java 
 private int saldo; 
 private String titular; 
 private int cpf; 
 private Date criacao; 
�  Os atributos podem ser tipos primitivos da 
linguagem, mas observe que também pode-se 
criar atributos que são instâncias de outras 
classes. 
�  A palavra-chave private garante que nenhum 
objeto externo poderá acessar os atributos 
diretamente, a não ser através de métodos. 
Métodos em Java 
public int getSaldo( ) {return saldo;} 
public void setSaldo(int s ) { saldo=s;} 
public int getCpf( ) {return cpf;} 
public String getTitular( ) {return titular;} 
public void setTitular(String n) { titular=n;} 
�  Antes do nome do método, utiliza-se a palavra-chave 
public que permite que qualquer parte do programa 
acesse estes métodos; 
Métodos em Java (2) 
�  Chamando métodos (1) 
�  Notação: 
� nome-do-objeto.nome-do-método (argumentos);n.setSaldo(100); 
 n.saque(200); 
 n.saque(75); 
�  Chamadas “aninhadas”: 
� Exemplos: 
�  myObject.getClasse().getName(); 
�  myObject.var.methodTwo(arg1, arg2) 
�  System.out.println(arg1); 
Métodos Construtores 
� Um método construtor é um método usado 
para inicializar objetos de uma classe dando 
aos atributos o estado inicial desejado. 
�  Java inicializa os atributos da classe com valores 
default que nem sempre são os desejados. 
 
public Conta(int cp) { 
 cpf = cp; 
 saldo = 0; 
 titular = " "; 
 criacao = new Date(); 
 } 
Métodos Construtores (2) 
�  Observações: 
�  Um construtor tem sempre o mesmo nome da classe; 
�  Um construtor pode assumir nenhum, um ou mais 
parâmetros; 
�  Podem existir vários construtores; e 
�  Um construtor é invocado com a palavra-chave new. 
Métodos Construtores (3) 
�  Um construtor default é um construtor sem 
parâmetros. Se você define uma nova classe e não 
define um construtor, Java automaticamente cria 
um construtor default para a classe. Ele define 
todas as variáveis de instância para valores default 
originais (false para boolean, null para ponteiros, 0 
para inteiros, etc.) Este construtor permite que 
você possa criar instâncias da classe chamando: 
 NomedaClasse a = new NomedaClasse(); 
�  Neste caso, você não pode passar nenhum 
parâmetro para o objeto que está sendo criado. 
Voltando aos Métodos ... 
�  Todos os métodos de uma classe podem acessar seus 
atributos privados diretamente. Eles também podem 
fazer chamadas a outros métodos. 
�  Um método pode acessar dados privados de todos os 
objetos dessa classe. 
public boolean equals(Conta out) { 
 return ((saldo==out.saldo) && 
 (cpf==out.cpf) && 
 (titular.equals(out.titular)) && 
 (criacao.equals(out.criacao)) 
 ); 
} 
Métodos ... (2) 
�  O método acessa os dados privados da classe 
Conta, o que era esperado, mas também acessa 
os dados privados do objeto out. 
�  Isto é possível porque out também é uma 
instância da classe Conta, logo o método pode 
acessar todos os atributos privados de qualquer 
objeto desta classe. 
Métodos ... (3) 
�  Os métodos também podem ser private ao invés de 
public. Métodos private são chamados a partir de outros 
métodos da mesma classe. Isto ocorre, porque, 
freqüentemente, você desejará quebrar o código de uma 
função em muitas funções separadas e estas funções 
não são úteis aos clientes, ou seja, não devem ser 
visíveis externamente. 
 private boolean autoriza(int saq) 
�  A “regra” é que cada método possa ser descrito através 
de um único verbo;

Outros materiais