Transcript Classes em Java
Slide 1
Classes
Objetos
Atributos
Construtores
Métodos
Slide 2
ESTADO
OBJETOS
E COMPORTAMENTO
DO MUNDO REAL
Quantos objetos?
1
Quantas classes?
Carro
Quais classes?
2
3
Pessoa
Estado (dados de cada objeto):
- nome
- marca
placa
-- peso
- ligado
ou desligado
4 - consumo médio
- alturaatual
- volume
nível sintonizada
atual do tanque
-- endereço
- estação
- renda mensal
Comportamentos:
++ muda
+ liga
anda endereço
++ altera
renda mensal
+ desliga
abastece
++ faz
exame
médico
+ aumenta
volume
verifica
do tanque
7nível
+ seleciona estação
Unisinos – Prog I
6
5
Rádio
8
9
2
Slide 3
Em Java
O estado dos objetos é
representado pelos seus
atributos
O comportamento dos objetos é
descrito pelos seus
métodos
Slide 4
O que são atributos?
São as propriedades dos objetos de
uma determinada classe.
Exemplo:
Consumo médio 15
Consumo médio
Nível do tanque 40
nível do tanque 45
todos os objetos da classe Carro têm os mesmos
atributos, com valores diferentes
Consumo médio 18
Nível do tanque 55
Consumo médio 12
Nível do tanque 45
Slide 5
O que é um método?
É um serviço oferecido pelos objetos
de uma determinada classe.
Exemplo:
selecionar uma estação
Slide 6
O que é um construtor?
É um serviço especial oferecido pela classe para
configurar (inicializar com valores) os atributos dos
objetos quando estes são instanciados.
Exemplo:
Instanciar um objeto da
classe Carro
Clique aqui
15
Consumo médio
Nível do tanque
40
Slide 7
Objetos de software
paradigma orientado a objetos,
tudo são objetos
O aluno José Silva é um objeto
• A aluna Maria Rodrigues é outro objeto
• A data de nascimento (24/05/1986) é um objeto
• A conta bancaria de número 1457-3 é um objeto
Objetos que compartilham certas características formam uma
classe
• Cada objeto é dito uma
instância da sua classe
Slide 8
Representação na linguagem UML (Unified Modeling Language)
Diagrama de Classe
Responsabilidades
de uma classe:
Pessoa
Atributos,
campos ou
variáveis de instância
Construtor
e Métodos
- nome :String
- idade :int
Conhecimento
+Pessoa (n:String,i: int )
+fazAniversario ( )
+exibeDados ( )
Comportamento
Diagramas de objetos
Pessoa
Pessoa
nome
José Silva
nome
idade
25
idade
Maria Reis
19
Slide 9
Representação na linguagem UML
Classe
Funcionario
-nome
-salario
-numeroDeDependentes
+mudaSalario
+exibeDados
+aumentaSalario
+insereDependente
Atributos,
campos ou
variáveis de instância
Métodos ou
funções
Responsabilidades
de uma classe:
Conhecimento
Atributos e métodos
são membros de
uma classe
Comportamento
Dois objetos da classe Funcionario:
Funcionario
nome
José Silva
salario
2500.00
numeroDe
2
Dependentes
Funcionario
nome
Anna Leme
salario
3235.50
numeroDe
0
Dependentes
Slide 10
Exercício 1.1. Usando a representação UML acima, modele a classe
ContaBancaria definindo alguns membros (atributos e métodos) e alguns exemplos
de instâncias.
Pense num banco que possui diversas contas. Cada objeto conta deve ter um
número e um saldo (valor em dinheiro que ela tem no momento).
As operações que uma conta pode sofrer são retirada, depósito e consulta
ao saldo.
Classe
Ex. de instâncias
ContaBancaria
-numero
-saldo
+deposita
+retira
+consultaSaldo
ContaBancaria
numero
saldo
123
500.00
ContaBancaria
numero
saldo
Unisinos - ProgI
065
1250.35
10
Slide 11
Exercício 1.2. Repita o exercício anterior para modelar uma classe que simula
(de forma bem simplificada) objetos do tipo Carro. Cada objeto carro tem um certo
consumo médio de combustível (medido em km/litro), uma certa quantidade de
combustível no tanque e, para identificá-lo, uma placa. O carro gasta combustível
quando anda uma certa distância. Eventualmente, ele abastece para aumentar o
nível do tanque e deve ter uma forma de verificar este nível.
Classe
Carro
-placa
-consumoMedio
-nivelDoTanque
+anda
+abastece
+verificaNivel
Ex. de instâncias
Carro
placa
consumoMedio
nivelDoTanque
Carro
placa
consumoMedio
nivelDoTanque
Unisinos - ProgI
ABC1111
15.5
47
IJU8122
15.5
35
11
Slide 12
Sintaxe:
visibilidade class
atributos
construtor(es)
métodos
}
nome da classe {
Exemplo:
public class Pessoa{
// atributos
private String nome;
private int idade;
// aqui colocaremos o(s) construtor(es)
// aqui colocaremos os métodos
}
Slide 13
Identificadores
• Servem para dar nomes a classes, atributos, métodos etc.
• Um identificador é composto por qualquer quantidade de letras, dígitos e
os sinais _ e $
• O primeiro caractére deve ser letra ou _ ou $
• Não pode haver brancos entre os caracteres
• Maiúsculas são diferenciadas de minúsculas
Exemplos:
cor
calculaImpostoDeRenda
_nomeAluno
$nota_1
1Autor
nome Do Cliente
coordenada-X
Estes são inválidos! Por quê?
Palavras-chave ou reservadas
Termos da linguagem Java: class, private, int, double e outras
Unisinos - ProgI
13
Slide 14
Comentários
São textos explicativos que não afetam o processamento da classe.
Três tipos:
/** texto do comentário */
/* texto do comentário */
// texto do comentário
Visibilidade dos membros de uma classe
- Classes não vivem em isolamento
- Grau de privacidade das classes e de seus membros é dado pelos
modificadores de controle de acesso:
public – indica que o membro é acessível de qualquer outra classe
private – membro só é reconhecido pela própria classe
Importante
• Todo membro de uma classe
é sempre acessível dentro da própria classe
• Atributos devem ser sempre PRIVADOS
Unisinos - ProgI
14
Slide 15
Exercício 1.3. Escreva a classe ContaBancaria em Java, dando tipos aos
atributos e comentários para indicar o que cada método faz.
public class ContaBancaria{
private int numero;
private double saldo;
/** Realiza um depósito na conta */
/** Faz um saque da conta */
/** Exibe na tela o valor atual do saldo*/
}
Exercício 1.4. Repita o exercício anterior para a classe Carro.
public class Carro{
private double consumoMedio;
private int nivelDoTanque;
/** Ao se deslocar, o carro consome combustível*/
/** Adiciona combustível no tanque*/
/** Exibe quant. atual de combustível no tanque*/
}
Unisinos - ProgI
15
Slide 16
Algumas observações importantes
• A classe é um modelo para criar objetos daquele tipo
• Cada objeto terá valores individuais para cada atributo (campo) definidos
pela classe.
• Atributos poderão ter seus valores alterados ao longo do tempo
• Atributos, também são chamados de variáveis de instância
• O conjunto de valores dos atributos de um objeto descrevem o
estado atual daquele objeto.
Circulo
raio
Unisinos - ProgI
5.0
3.5
16
Slide 17
Exercício 1.5. Dê exemplos de valores válidos para cada atributo que você
declarou nas classes ContaBancaria e Carro.
Exercício 1.6. Identifique cada termo da lista seguinte dizendo se é nome de
classe, de atributo, de método ou se é um valor de atributo (neste último,
informar o tipo):
“quadrado”
data
Data
numeroDeLados
movePolígono
3
“hexágono”
4.56
exibe
medidaDoLado
Unisinos - ProgI
17
Slide 18
Criando objetos (instanciação)
Criando obj
A criação de um novo objeto em Java é feita em três etapas:
1ª. – declarar uma variável cujo tipo é a classe da qual o objeto será
uma instância
2ª. – criar uma nova instância para o objeto, usando o operador new,
que aloca espaço de memória para os atributos do novo objeto
3ª. – atribuir o endereço do objeto à variável objeto
Ex:
Funcionario f1; //Etapa 1
f1 = new Funcionario(); // Etapas 2 e 3
Na memória:
f1
null
Variável objeto
ou referência
Funcionario
nome
salario
numeroDe
Dependentes
null
0.0
0
Atributos ou variáveis de instância
Unisinos - ProgI
18
Slide 19
Criando objetos (instanciação): operador new
Atribui o
endereço do
objeto para a
variável
Clique para
ver o
primeiro
passo
Clique para
ver o
terceiro
passo
Pessoa p1
=
na Memóriana Memória
new Pessoa(“Maria”, 24);
na Memória
Pessoa
p1
//
Variável objeto
ou referência
Clique para
ver o
segundo
passo
nome
idade
Maria
24
Slide 20
Chamada (invocação) de método
Após criado o novo objeto (referenciado por p1) podemos aplicar métodos
da classe Pessoa a essa pessoa:
Memória
Pessoa
p1
nome
idade
chama o método que mostra na tela
os valores dos atributos do objeto
referenciado por p1
p1.exibeDados ( );
Maria
24
Tela
Maria
24
Slide 21
Exercício 1.7. Declare mais duas variáveis objeto para armazenar instâncias
da classe Funcionario.
Funcionario f3, f4;
Exercício 1.8. Agora, complete a instanciação dos dois objetos declarados no
exercício anterior.
f3 = new Funcionario();
f4 = new Funcionario();
Exercício 1.9. Escreva as instruções para instanciar alguns objetos das
classes ContaBancaria e Carro.
ContaBancaria c1 = new ContaBancaria();
ContaBancaria c2 = new ContaBancaria();
Carro car1, car2;
car1 = new Carro();
car2 = new Carro();
Classes
Objetos
Atributos
Construtores
Métodos
Slide 2
ESTADO
OBJETOS
E COMPORTAMENTO
DO MUNDO REAL
Quantos objetos?
1
Quantas classes?
Carro
Quais classes?
2
3
Pessoa
Estado (dados de cada objeto):
- nome
- marca
placa
-- peso
- ligado
ou desligado
4 - consumo médio
- alturaatual
- volume
nível sintonizada
atual do tanque
-- endereço
- estação
- renda mensal
Comportamentos:
++ muda
+ liga
anda endereço
++ altera
renda mensal
+ desliga
abastece
++ faz
exame
médico
+ aumenta
volume
verifica
do tanque
7nível
+ seleciona estação
Unisinos – Prog I
6
5
Rádio
8
9
2
Slide 3
Em Java
O estado dos objetos é
representado pelos seus
atributos
O comportamento dos objetos é
descrito pelos seus
métodos
Slide 4
O que são atributos?
São as propriedades dos objetos de
uma determinada classe.
Exemplo:
Consumo médio 15
Consumo médio
Nível do tanque 40
nível do tanque 45
todos os objetos da classe Carro têm os mesmos
atributos, com valores diferentes
Consumo médio 18
Nível do tanque 55
Consumo médio 12
Nível do tanque 45
Slide 5
O que é um método?
É um serviço oferecido pelos objetos
de uma determinada classe.
Exemplo:
selecionar uma estação
Slide 6
O que é um construtor?
É um serviço especial oferecido pela classe para
configurar (inicializar com valores) os atributos dos
objetos quando estes são instanciados.
Exemplo:
Instanciar um objeto da
classe Carro
Clique aqui
15
Consumo médio
Nível do tanque
40
Slide 7
Objetos de software
paradigma orientado a objetos,
tudo são objetos
O aluno José Silva é um objeto
• A aluna Maria Rodrigues é outro objeto
• A data de nascimento (24/05/1986) é um objeto
• A conta bancaria de número 1457-3 é um objeto
Objetos que compartilham certas características formam uma
classe
• Cada objeto é dito uma
instância da sua classe
Slide 8
Representação na linguagem UML (Unified Modeling Language)
Diagrama de Classe
Responsabilidades
de uma classe:
Pessoa
Atributos,
campos ou
variáveis de instância
Construtor
e Métodos
- nome :String
- idade :int
Conhecimento
+Pessoa (n:String,i: int )
+fazAniversario ( )
+exibeDados ( )
Comportamento
Diagramas de objetos
Pessoa
Pessoa
nome
José Silva
nome
idade
25
idade
Maria Reis
19
Slide 9
Representação na linguagem UML
Classe
Funcionario
-nome
-salario
-numeroDeDependentes
+mudaSalario
+exibeDados
+aumentaSalario
+insereDependente
Atributos,
campos ou
variáveis de instância
Métodos ou
funções
Responsabilidades
de uma classe:
Conhecimento
Atributos e métodos
são membros de
uma classe
Comportamento
Dois objetos da classe Funcionario:
Funcionario
nome
José Silva
salario
2500.00
numeroDe
2
Dependentes
Funcionario
nome
Anna Leme
salario
3235.50
numeroDe
0
Dependentes
Slide 10
Exercício 1.1. Usando a representação UML acima, modele a classe
ContaBancaria definindo alguns membros (atributos e métodos) e alguns exemplos
de instâncias.
Pense num banco que possui diversas contas. Cada objeto conta deve ter um
número e um saldo (valor em dinheiro que ela tem no momento).
As operações que uma conta pode sofrer são retirada, depósito e consulta
ao saldo.
Classe
Ex. de instâncias
ContaBancaria
-numero
-saldo
+deposita
+retira
+consultaSaldo
ContaBancaria
numero
saldo
123
500.00
ContaBancaria
numero
saldo
Unisinos - ProgI
065
1250.35
10
Slide 11
Exercício 1.2. Repita o exercício anterior para modelar uma classe que simula
(de forma bem simplificada) objetos do tipo Carro. Cada objeto carro tem um certo
consumo médio de combustível (medido em km/litro), uma certa quantidade de
combustível no tanque e, para identificá-lo, uma placa. O carro gasta combustível
quando anda uma certa distância. Eventualmente, ele abastece para aumentar o
nível do tanque e deve ter uma forma de verificar este nível.
Classe
Carro
-placa
-consumoMedio
-nivelDoTanque
+anda
+abastece
+verificaNivel
Ex. de instâncias
Carro
placa
consumoMedio
nivelDoTanque
Carro
placa
consumoMedio
nivelDoTanque
Unisinos - ProgI
ABC1111
15.5
47
IJU8122
15.5
35
11
Slide 12
Sintaxe:
visibilidade class
atributos
construtor(es)
métodos
}
nome da classe {
Exemplo:
public class Pessoa{
// atributos
private String nome;
private int idade;
// aqui colocaremos o(s) construtor(es)
// aqui colocaremos os métodos
}
Slide 13
Identificadores
• Servem para dar nomes a classes, atributos, métodos etc.
• Um identificador é composto por qualquer quantidade de letras, dígitos e
os sinais _ e $
• O primeiro caractére deve ser letra ou _ ou $
• Não pode haver brancos entre os caracteres
• Maiúsculas são diferenciadas de minúsculas
Exemplos:
cor
calculaImpostoDeRenda
_nomeAluno
$nota_1
1Autor
nome Do Cliente
coordenada-X
Estes são inválidos! Por quê?
Palavras-chave ou reservadas
Termos da linguagem Java: class, private, int, double e outras
Unisinos - ProgI
13
Slide 14
Comentários
São textos explicativos que não afetam o processamento da classe.
Três tipos:
/** texto do comentário */
/* texto do comentário */
// texto do comentário
Visibilidade dos membros de uma classe
- Classes não vivem em isolamento
- Grau de privacidade das classes e de seus membros é dado pelos
modificadores de controle de acesso:
public – indica que o membro é acessível de qualquer outra classe
private – membro só é reconhecido pela própria classe
Importante
• Todo membro de uma classe
é sempre acessível dentro da própria classe
• Atributos devem ser sempre PRIVADOS
Unisinos - ProgI
14
Slide 15
Exercício 1.3. Escreva a classe ContaBancaria em Java, dando tipos aos
atributos e comentários para indicar o que cada método faz.
public class ContaBancaria{
private int numero;
private double saldo;
/** Realiza um depósito na conta */
/** Faz um saque da conta */
/** Exibe na tela o valor atual do saldo*/
}
Exercício 1.4. Repita o exercício anterior para a classe Carro.
public class Carro{
private double consumoMedio;
private int nivelDoTanque;
/** Ao se deslocar, o carro consome combustível*/
/** Adiciona combustível no tanque*/
/** Exibe quant. atual de combustível no tanque*/
}
Unisinos - ProgI
15
Slide 16
Algumas observações importantes
• A classe é um modelo para criar objetos daquele tipo
• Cada objeto terá valores individuais para cada atributo (campo) definidos
pela classe.
• Atributos poderão ter seus valores alterados ao longo do tempo
• Atributos, também são chamados de variáveis de instância
• O conjunto de valores dos atributos de um objeto descrevem o
estado atual daquele objeto.
Circulo
raio
Unisinos - ProgI
5.0
3.5
16
Slide 17
Exercício 1.5. Dê exemplos de valores válidos para cada atributo que você
declarou nas classes ContaBancaria e Carro.
Exercício 1.6. Identifique cada termo da lista seguinte dizendo se é nome de
classe, de atributo, de método ou se é um valor de atributo (neste último,
informar o tipo):
“quadrado”
data
Data
numeroDeLados
movePolígono
3
“hexágono”
4.56
exibe
medidaDoLado
Unisinos - ProgI
17
Slide 18
Criando objetos (instanciação)
Criando obj
A criação de um novo objeto em Java é feita em três etapas:
1ª. – declarar uma variável cujo tipo é a classe da qual o objeto será
uma instância
2ª. – criar uma nova instância para o objeto, usando o operador new,
que aloca espaço de memória para os atributos do novo objeto
3ª. – atribuir o endereço do objeto à variável objeto
Ex:
Funcionario f1; //Etapa 1
f1 = new Funcionario(); // Etapas 2 e 3
Na memória:
f1
null
Variável objeto
ou referência
Funcionario
nome
salario
numeroDe
Dependentes
null
0.0
0
Atributos ou variáveis de instância
Unisinos - ProgI
18
Slide 19
Criando objetos (instanciação): operador new
Atribui o
endereço do
objeto para a
variável
Clique para
ver o
primeiro
passo
Clique para
ver o
terceiro
passo
Pessoa p1
=
na Memóriana Memória
new Pessoa(“Maria”, 24);
na Memória
Pessoa
p1
//
Variável objeto
ou referência
Clique para
ver o
segundo
passo
nome
idade
Maria
24
Slide 20
Chamada (invocação) de método
Após criado o novo objeto (referenciado por p1) podemos aplicar métodos
da classe Pessoa a essa pessoa:
Memória
Pessoa
p1
nome
idade
chama o método que mostra na tela
os valores dos atributos do objeto
referenciado por p1
p1.exibeDados ( );
Maria
24
Tela
Maria
24
Slide 21
Exercício 1.7. Declare mais duas variáveis objeto para armazenar instâncias
da classe Funcionario.
Funcionario f3, f4;
Exercício 1.8. Agora, complete a instanciação dos dois objetos declarados no
exercício anterior.
f3 = new Funcionario();
f4 = new Funcionario();
Exercício 1.9. Escreva as instruções para instanciar alguns objetos das
classes ContaBancaria e Carro.
ContaBancaria c1 = new ContaBancaria();
ContaBancaria c2 = new ContaBancaria();
Carro car1, car2;
car1 = new Carro();
car2 = new Carro();