Buscar

03 clases e objetos

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 42 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 42 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 9, do total de 42 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

Prévia do material em texto

Linguagem	de	Programação	II
CCE0234
Prof. Carlos Henrique Odenique Jardim
Roteiro
• Classes
• Objetos
• Construtores
• Métodos
• Objetos e Referências
2
Motivação
• Programa de um banco
– A conta é um entidade importante
O	que	toda	conta	
deve	ter?
3
Motivação
• Um conta deve ter valores e operações sobre 
esse valores
Valores
• número da conta
• nome do cliente
• saldo
• limite
Operações
• saca uma quantidade x
• deposita uma quantidade x
• imprime o nome do dono da conta
• devolve	o	saldo	atual
• transfere	uma	quantidade	x	para	uma	outra	conta	y
• devolve	o	tipo	de	conta
4
Motivação
• A especificação é utilizada para criar instâncias 
de contas
– Nas instâncias é que são realizadas as operações
Especificação	da	
Conta
Número
Cliente
Saldo
Limite
Número
Cliente
Saldo
Limite
Número
Cliente
Saldo
Limite
5
Definição
• Classe
– Nome dado ao projeto da classe, ou seja, a sua 
definição
• Objeto
– Utilizando a definição construímos as contas
propriamente
6
Definição
• Classe tem origem na taxonomia da biologia
• Seres vivos de uma mesma classe tem atributos e 
comportamentos em comum
– No entanto, são indivíduos diferentes
– Podem variar nos valores dos atributos e em seus 
comportamentos
7
Exemplo
• Classe Homo Sapiens
– Define um grupo de seres que possuem 
características comuns
– Especificação
– Para executar ações precisamos de uma instância 
de Homo Sapiens
• Os objetos que anda, correm, comem, etc...
8
Classes
• Classe
– Um tipo cujos valores se chamam objetos
– Objetos possuem
• Membro de dados
• Métodos membros
– Métodos membro tem acesso especial aos dados de 
seu objeto
– É o recurso mais importante para uma linguagem de 
programação orientada a objetos
9
Classes
• Classe
– É um tipo completo
• Exatamente como os tipos int e double, por exemplo
– Pode-se ter variáveis de um tipo classe
– Pode-se ter parâmetros de um tipo classe
– Um método pode retornar um valor de um tipo 
classe
– Pode-se usar um tipo classe como qualquer outro 
tipo
10
Classes
• Sintaxe
11
class Nome_Classe {
Variáveis_Membro
Métodos_Membro
}
Classes	em	Java
• Atributo
– Variável declarada dentro do escopo de classe
public class Conta {
int numero;
String nome;
double saldo;
double limite;
// ..
}
12
Objetos
• Objeto
– O valor de uma variável de um tipo classe
• Programa orientado a objetos
– Coleção de objetos interagindo
– Objetos podem interagir porque são capazes de 
ações
• Invocações de métodos-membro
13
Objetos
• A classe especifica o que todo objeto deve ter
• Para instanciar (criar, construir) uma Conta é 
preciso utilizar o operador new
14
public class NossoBanco {
public static void main(String[] args) {
new Conta();
}
}
Objetos
• Por meio da variável “c” pode-se utilizar o objeto 
criado
– Pode-se modificar seus atributos como nome e 
saldo
15
public class NossoBanco {
public static void main(String[] args) {
Conta c;
c = new Conta();
}
}
Objetos
public class NossoBanco {
public static void main(String[] args) {
Conta c;
c = new Conta();
c.nome = "Duke";
c.saldo = 1000.0;
System.out.println("Saldo atual: "
+ c.saldo);
}
}
16
Métodos
• O que cada conta faz? Como é feito?
• Métodos definem o comportamento que cada 
classe tem
– O que a classe faz
• Exemplo: de que forma uma conta saca dinheiro?
– As operações que cada classe faz
• Comportamento é especificado dentro da própria 
classe Conta
• Por quê?
17
Métodos
• Método “sacar”
– Retira uma determinada quantidade e não retorna 
informação alguma
void sacar(double quantidade) {
double novoSaldo = this.saldo - quantidade;
this.saldo = novoSaldo;
}
18
Métodos
• void
– Indica que o método não retorna nenhuma 
informação
void depositar(double quantidade) {
this.saldo += quantidade;
}
19
Métodos
• É preciso dizer quanto sacar, certo?
– Como o fazer?
• Argumento do método
– Variável temporária (local)
• Ao final da execução ela deixa de existir
• Porquê o uso da palavra reservada this? 
– Usada para acessar atributos
– O uso é opcional
void sacar(double quantidade) {
double novoSaldo = this.saldo - quantidade;
this.saldo = novoSaldo;
}
20
21
public class NossoBanco {
public static void main(String[] args) {
Conta c;
c = new Conta();
c.nome = "Duke";
c.saldo = 1000.0;
System.out.println("Saldo atual: "
+ c.saldo);
// sacar 200 reais
c.sacar(200);
// depositar 500 reais
c.depositar(500);
System.out.println(c.saldo);
}
}
Métodos
• Métodos com retorno
• Método sacar devolve um boolean para indicar 
sucesso ou falha na operação
• A palavra chave return indica que o método vai 
“retornar”
– Vai terminar e retornar a informação indicada
22
23
boolean sacar(double valor) {
if (this.saldo < valor) {
return false;
} else {
this.saldo = this.saldo - valor;
return true;
}
}
boolean sucesso = c.sacar(2000);
if (sucesso) {
System.out.println("Consegui sacar");
} else {
System.out.println("Não consegui sacar");
}
Objetos	e	Referências
• Declaramos uma variável para associar a um 
objetos
– A variável não guarda o objeto
– É apenas uma forma de acessar o objeto
• Referência para o objeto
• Utilizamos o new após a declaração da variável
24
Objetos	e	Referências
public static void main(String args[]) {
Conta c1;
c1 = new Conta();
Conta c2;
c2 = new Conta();
}
25
Objetos	e	Referências
• Correto
– c1 se refere a um objeto
• Incorreto
– c1 é um objeto
• c1 é uma variável referência
0xBC11 c1 (0xBA76)
0xBD21 c2 (0xBB12)
Conta c1;
c1 = new Conta();
Conta c2;
c2 = new Conta(); 26
Objetos	e	Referências
• O operador ”=” copia o valor de uma variável
– O valor guardado é a referência para onde o objeto
• Endereço na memória principal
Conta c1 = new Conta();
c1.depositar(100);
Conta c2 = c1;
c2.depositar(200);
System.out.println(c1.saldo);
System.out.println(c2.saldo);
0xBC11 c1 (0xBA76)
0xBC11 c2 (0xBB12)
27
Objetos	e	Referências
• new
– Aloca memória para o objeto
– Devolve uma referência para o objeto
• Ao atribuir a referência a variável, esta passa a 
se referir a esse objeto
28
Objetos	e	Referências
public static void main(String args[]) {
Conta c1 = new Conta();
c1.nome = "Duke";
c1.saldo = 227;
Conta c2 = new Conta();
c2.nome = "Duke";
c2.saldo = 227;
if (c1 == c2) {
System.out.println("Contas iguais");
}
}
29
Construtores
• new
– Utilizado para construir um objeto
– O new executa o construtor da classe
• O construtor da classe é um bloco declarado com 
o mesmo nome da classe
30
Construtores
public class Conta {
int numero;
String nomeCliente;
double saldo;
double limite;
// Construtor.
public Conta() {
System.out.printl("Construindo uma conta.");
}
}
Operação	de	inicialização.
Chamada	sempre	que	um	
novo	objeto	é	criado.
31
Construtores
• Se nenhum construtor é declarado, o compilador 
cria um construtor default
– Ele não recebe argumento e o corpo é vazio
• Se um construtor é declarado, o construtor 
default não é mais fornecido
32
Construtores
• Podem receber argumentos
– Por exemplo: inicializar algum tipo de informação
• Exemplo
– Construtor recebe o nome do cliente
– Quando uma conta for criada, ela terá o nome do 
cliente
33
34
public class Conta {
int numero;
String nomeCliente;
double saldo;
double limite;
// Construtor.
public Conta(String nomeCliente) {
this.nomeCliente = nomeCliente;
}
}
Conta c = new Conta("Duke");
System.out.println(c.nomeCliente);Construtores
• O construtor possibilita passar argumentos para o 
objeto durante a inicialização do mesmo
• Exemplo
– Não poderíamos abrir um arquivo sem dizer qual é o 
nome do arquivo
– Logo, é esperado que seja passado uma String que 
representa o nome do arquivo
• O argumento torna-se obrigatório
35
Construtores
• Pode-se ter mais de um construtor em uma classe, 
inclusive com o construtor default
– Ao utilizar o new, o construtor pertinente deve ser 
escolhido
• Só podem ser executados durante a construção 
do objeto
36
37
public class Conta {
int numero;
String nomeCliente;
double saldo;
double limite;
// Construtor.
public Conta(String nomeCliente) {
this.nomeCliente = nomeCliente;
}
// Construtor.
public Conta(int numero, String nomeCliente) {
this.nomeCliente = nomeCliente; 
this.numero = numero;
}
}
38
public class Conta {
int numero;
String nomeCliente;
double saldo;
double limite;
// Construtor.
public Conta(String nomeCliente) {
this.nomeCliente = nomeCliente;
}
// Construtor.
public Conta(int numero, String nomeCliente) {
// chama o construtor que foi declarado acima
this(nomeCliente); 
this.numero = numero;
}
}
Pode	invocar	
outros	métodos
Exercício
• Abstrair o tipo Ponto
– Conjunto de valores que o tipo assume
• Um par ordenado representando as coordenadas em um 
plano 
– Conjunto de operações sobre o tipo
• Obter as coordenadas
• Modificar as coordenadas
• Calcular a distância entre dois pontos
39
Exercício
• Abstrair o tipo Círculo
– Conjunto de valores que o tipo assume
• Um ponto representando as coordenadas do centro
• Um valor escalar representando o raio
– Conjunto de operações sobre o tipo
• Obter o centro ou o raio
• Modificar o centro ou o raio
• Calcular a área do círculo
• ...
40
JavaBean
• Modelo de componentes
– Todos os atributos são privados
– Atributos são acessados por métodos getters e 
setters
– Possui um construtor vazio (padrão)
• Estude o modelo de componentes em
– http://www.oracle.com/technetwork/java/javase/t
ech/index-jsp-138795.html
41
Material	Sugerido
• DEITEL, H. M.; DEITEL, P. J.; LISBOA, C. A. L. 
Java: como programar. 8 ed. São Paulo: Pearson 
Prentice Hall, 2010. 1144p.
42

Continue navegando