CRIANDO OBJETOS EM JAVA
LP II
Professora Lucélia
Instanciação de um objeto:
Construtor
• Objetos são criados através do operador new,
seguido de um método construtor.
– Exemplo: Automovel gol = new Automovel( );
• Um construtor recebe sempre o mesmo nome
da sua classe;
• Se o programador não definir um construtor, o
compilador fará isso automaticamente.
Instanciação de um objeto:
Construtor
• O método construtor gera uma instância do
objeto em memória e o seu código é
executado imediatamente após a criação do
objeto provendo-lhe um estado inicial;
• Uma classe pode ter construtores
especializados ou somente o construtor
default(gerado pelo compilador);
Instanciação de um objeto:
Construtor
• Valores de parâmetros podem ser passados no
momento da criação;
• Considerando o exemplo:
Automovel gol = new Automovel( );
?
String modelo;
?
String cor;
?
int ano;
Construtores sem argumentos
• Ao instanciar objetos utilizando construtores sem
argumentos, por exemplo:
Pessoa Victor = new Pessoa( );
inicializamos objetos com seus valores default.
• Variáveis numéricas recebem zero, valores lógicos
recebem false e objetos recebem null.
• Dependendo da necessidade, uma classe pode
conter vários construtores declarados, todos
devem ter o mesmo nome (o nome da .
classe)
• O construtor é responsável por alocar espaço
na memória para a manipulação do novo
objeto que está sendo criado.
• O construtor pode conter a chamada para
outros métodos, possibilitando a criação de
objetos mais complexos.
Exemplo:
public class Automovel{
String modelo, cor;
int ano;
public Automovel( ){
}
public Automovel (String modelo){
this.modelo = modelo;
}
public Automovel(int ano){
this.ano = ano;
}
public Automovel(String modelo, String cor){
this.modelo = modelo;
this.cor = cor;
this.ano = 2007;
}
}
• O primeiro construtor não recebe nenhum
argumento, inicializando as variáveis com
valores default:
public Automovel( ){
}
• Este construtor recebe o argumento modelo,
inicializando a variável modelo com o valor
fornecido e as demais variáveis com o valor
default:
public Automovel (String modelo){
this.codigo = modelo;
}
• Este construtor recebe o argumento ano,
inicializando a variável ano com o valor
fornecido e as demais variáveis com o valor
default:
public Automovel(int ano){
this.ano = ano;
}
• Este construtor recebe os argumentos modelo e cor,
inicializando os valores fornecidos e as variável ano com o
conteúdo 2007.
• O uso da palavra this em “this.ano = 2007;” é opcional,
uma vez que não existe nenhuma variável local ao método
com o nome cidade.
public Automovel(String modelo, String cor){
this.modelo = modelo;
this.cor = cor;
this.ano = 2007;
}
Exemplo
public class UsaAutomovel{
public static void main (String args[ ]){
Automovel fusca = new Automovel();
Automovel gol = new Automovel(“Gol”);
Automovel monza = new Automovel(1990);
Automovel siena = new Automovel(“siena”, “Prata”);
System.out.println(fusca.modelo+” - ”+fusca.ano+” - ”+fusca.cor);
System.out.println(gol.modelo+” - ”+ gol.ano+” - ”+gol.cor);
System.out.println(monza.modelo+” - ”+ monza.ano+” - ”+monza.cor);
System.out.println(siena.modelo+” - ”+ siena.ano+” - ”+siena.cor);
}
}
Continuação do exemplo anterior utilizando outro método:
import javax.swing.JOptionPane;
public class Automovel{
String modelo, cor;
int ano;
boolean estadoMotor = false;
public void ligaMotor( ) {
estadoMotor = true;
}
public void informaDados( ){
String motorString;
if (estadoMotor){
motorString = "ligado";
}
else{
motorString = "desligado";
}
JOptionPane.showMessageDialog(null, "Automóvel "+ modelo+ " "
+ano+ " "+cor+" "+motorString);
}
}
public class AgenciaAutomoveis{
public static void main (String args[]){
Automovel fusca = new Automovel();
Automovel gol = new Automovel();
Automovel monza = new Automovel();
fusca.modelo = "Fusca";
fusca.cor = "Preto";
fusca.ano = 69;
gol.modelo = "Gol";
gol.cor = "Vermelho";
gol.ano = 70;
monza.modelo = "Monza";
monza.cor = "Prata";
monza.ano=94;
//Ligando os motores
fusca.ligaMotor();
monza.ligaMotor();
//Mostrando as informações
fusca.informaDados();
gol.informaDados();
monza.informaDados();
}}
Exercício 1:
1. Construa uma classe chamada Pessoa com as
variáveis: cpf, nome e telefone.
2. Crie três tipos de métodos construtores
diferentes para esta classe.
3. Construa outra classe com o nome: UsaPessoa e
instancie três objetos da classe Pessoa.
4. Mostre as informações dos objetos instanciados.
5. Faça alterações nos atributos dos objetos e
mostre as informações alteradas.
Exercício 2:
1. Construa uma classe com o nome Operacoes, crie,
nesta classe quatro métodos estáticos: somar,
multiplicar, subtrair e dividir. Todos os métodos
deverão ter dois argumentos do tipo inteiro e deverá
mostrar o resultado dentro do próprio método. Neste
caso, os métodos não precisarão retornar nada (void).
2. Crie uma classe que contenha o método main para
executar a classe Operacoes.
3. Faça a leitura de dois números e mostre os resultados
das quatro operações para estes quatro números
lidos, chamando os métodos da classe Operacoes.
Exercício 3:
1.
2.
3.
Construa uma classe com o nome Operacoes2, crie, nesta classe
quatro métodos estáticos: somar, multiplicar, subtrair e dividir.
Todos os métodos deverão retornar o resultado da operação
efetuada. Neste caso, os métodos precisarão retornar um valor int
ou double.
Crie uma classe chamada MostraResultados que contenha o
método main para executar a classe Operacoes2 e mostrar os
valores retornados pelos métodos implementados na classe
Operacoes2.
Faça a leitura de dois números e mostre os resultados das quatro
operações para estes quatro números lidos.
OBS: o código para mostrar os valores deverá estar na classe
MostraResultados
public class ExemplosMetodos{
int ano;
//Construtor padrão
public ExemplosMetodos(){
}
//Outro exemplo de construtor
public ExemplosMetodos(int ano){
this.ano = ano;
}
//Método sem argumento e sem retorno
public void soma(){
}
//Método com argumento e sem retorno
public void soma(int n1, int n2){
}
//Método com argumento e com retorno
public int soma(int n1, int n2){
return n1 + n2;
}
//Método sem argumento e com retorno
public String le(){
return nome;
}
}
Exemplos de
Construtores
e Métodos
Download

Aula de 17/08/2007