aula-02-poo-atributos-e-metodos-construtores

Propaganda
3.1 Classes e Objetos
• Em um programa orientado a objetos normalmente
existem vários objetos de um mesmo tipo.
• Por exemplo, um programa de controle de estoque de
uma livraria pode conter vários clientes e vários livros.
• As classes descrevem as informações armazenadas
e os serviços providos por um objeto.
• Em outras palavras, são padrões a partir dos quais os
objetos são criados (código).
Alan Santos
1
3.1 Classes e Objetos
• Um objeto é uma instância de uma classe.
• Os objetos que são instâncias de uma mesma
classe armazenam os mesmos tipos de
informações e apresentam o mesmo
comportamento.
Alan Santos
2
3.1 Classes e Objetos
• Um objeto representa uma entidade
• concreta (ex. produto em estoque) ou
• abstrata (transação bancária, histórico, taxa de juros) do
mundo real.
• Também pode ser algo necessário ao
funcionamento do sistema sem uma ligação forte
com uma entidade do mundo real.
Alan Santos
3
3.1 Classes e Objetos
• Um objeto num sistema possui três propriedades:
• Estado: definido pelo conjunto de propriedades do
objeto (os atributos) e de suas relações com os outros
objetos, muda com o tempo.
• Ex. objeto turma pode estar aberta ou fechada – passa ao
estado fechada quando 10 alunos fizerem a inscrição.
• Comportamento: como um objeto responde às
solicitações dos outros e tudo mais o que um objeto é
capaz de fazer. É implementado por um conjunto de
operações.
• Ex. objeto turma pode ter operações acrescentar aluno ou
suprimir aluno.
• Identidade: significa que cada objeto é único no sistema
Alan Santos
4
3.1 Classes e Objetos
• Em Java, uma classe é definida pela palavra-chave
class seguida do nome da classe.
• A conta corrente é uma classe que é definida da
seguinte maneira:
class ContaCorrente {
// Definição dos métodos e atributos
}
Alan Santos
5
3.1.1 Variáveis
• Definem o comportamento estático do objeto.
• Para cada variável são especificados:
•
•
•
•
um modificador (opcional),
o nome,
o tipo
e o valor inicial (opcional) do atributo.
Alan Santos
6
3.1.1 Variáveis
• Na classe ContaCorrente, defina os atributos:
• nome (nome do titular da conta) e
• saldo (valor do saldo)
Alan Santos
7
3.1.2 Métodos
• Definem os serviços que podem ser solicitados a
uma instância (objeto),
• ou seja, o comportamento dinâmico de um objeto.
• A definição de um método em Java inclui
•
•
•
•
•
um modificador (opcional),
o tipo do dado retornado após a execução do método,
o nome do método,
o nome e tipo dos parâmetros
e o código delimitado por chaves ( { } ).
Alan Santos
8
3.1.2 Métodos
• Na classe ContaCorrente, defina os métodos:
• verificaSaldo: retorna o saldo da conta corrente;
• depositaValor: deposita um valor especificado x na
conta;
• retiraValor: retira um valor especificado x da conta;
• A lógica dos métodos é escrita a seguir:
Alan Santos
9
3.1.2 Métodos
class ContaCorrente {
float saldo;
String nome;
float verificaSaldo ( ) {
return saldo;
}
void depositaValor (float valor) {
saldo = saldo + valor;
}
void retiraValor (float valor) {
if (saldo>=valor) {
saldo = saldo – valor;
}
}
}
Alan Santos
10
3.1.3 Métodos Construtores
• Quando uma classe é criada, pode ser necessário
atribuir um valor inicial a algumas variáveis ou
chamar um método.
• Isto pode ser feito através de um método
construtor, o qual é automaticamente executado
toda vez que a classe é instanciada.
• Em Java, os construtores têm o mesmo nome da
classe a qual são membros.
Alan Santos
11
3.1.3 Métodos Construtores
• O método construtor não tem tipo de retorno
• O tipo implícito de retorno de um objeto construtor é a
instância da própria classe.
• Não é obrigatório criar um construtor
• Caso não exista a declaração de um construtor, o compilador
gera automaticamente um construtor default (padrão).
• Uma mesma classe pode ter vários construtores, desde
que eles tenham
• Quantidade diferente de parâmetros ou
• Parâmetros de tipos diferentes.
Alan Santos
12
3.1.4 Instanciando uma classe
• Em Java, os objetos são criados (as classes são instanciadas)
através do operador new.
• A execução desse comando cria um objeto de um
determinado tipo (classe) e retorna uma referência a este
objeto.
Alan Santos
13
3.1.4 Instanciando uma classe
• Implemente e execute o código abaixo e observe o
resultado:
ContaCorrente minhaConta;
minhaConta = new ContaCorrente
(“Maria”);
Alan Santos
14
3.1.4 Instanciando uma classe
• Analise o que aconteceu
• Na primeira linha tem-se o nome da variável (minhaConta) na qual
o identificador do objeto será armazenado.
• Na segunda linha é criado o objeto do tipo ContaCorrente com o
comando new que retorna o identificador do objeto que é
armazenado na variável minhaConta.
• O código anterior poderia ser escrito também da seguinte
maneira:
ContaCorrente minhaConta = new
ContaCorrente (“Maria”);
Alan Santos
15
3.1.5 Operador this
• Java inclui um valor de referência especial, chamado this,
que é usado dentro de qualquer método para referir-se ao
objeto corrente.
• O valor de this refere-se ao objeto do qual o método
corrente foi chamado.
• Em Java é permitido que variáveis locais (dentro de um
método) tenham o mesmo nome de variáveis de instância.
• Para definir que se está acessando a variável de instância,
usa-se o this.
Alan Santos
16
3.1.5 Operador this
• Declare os métodos construtores da classe
ContaCorrente da seguinte maneira:
class ContaCorrente {
float saldo;
String nome;
public ContaCorrente (String nome) {
this.nome = nome;
saldo = 0;
}
... // restante do código }
Alan Santos
17
3.1.6 Acessando métodos e
variáveis de um objeto
• Após criar um objeto, queremos manipular os seus
dados acessando as variáveis e métodos deste
objeto.
• Os métodos e variáveis são chamados de uma
instância de outra classe através de operador ponto
( . ).
Alan Santos
18
3.1.6 Acessando métodos e
variáveis de um objeto
• Implemente uma classe chamada
AcessaContaCorrente que cria um objeto do
tipo ContaCorrente e modifica os seus valores,
definindo o nome do dono da conta e modificando
e visualizando o saldo.
Alan Santos
19
3.1.6 Acessando métodos e
variáveis de um objeto
class AcessaContaCorrente {
public static void main (String args [
]) {
ContaCorrente minhaConta = new
ContaCorrente (“Maria”);
float saldo;
saldo = minhaConta.verificaSaldo ( );
System.out.println (saldo);
minhaConta.depositaValor (200);
saldo = minhaConta.verificaSaldo ( );
System.out.println (saldo);
}
}
Alan Santos
20
3.1.6 Acessando métodos e
variáveis de um objeto
• Crie um objeto do tipo ContaCorrente com valores
iniciais de “João” para nome e 1000 para valor.
• Depois,
• verifique o saldo da conta,
• deposite 300 e
• verifique novamente o saldo.
Alan Santos
21
Download