UFRPE – Monitoria de Programação 2012.2
Noções (super) básicas de OO
(PARTE 01)
Criando e instanciando uma classe
com um construtor vazio
(utilizando JAVA)
Professor: Leandro Marques
(material produzido pelo monitor Marcelo Coelho)
http://www.marcelocoelho.com.br/monitoria/poo/2012_2/criando-e-instanciando-uma-classe-com-construtor-vazio.ppt
ATENÇÃO!
Este material NÃO se propõe a ser
um curso de programação
orientada a objetos ou de JAVA!
A minha intenção é de apenas
TENTAR sanar algumas dúvidas
trazidas pelos colegas nos nossos
encontros de monitoria.
Próximo
Revisando...
• Na nossa classe de exemplo (Veiculo¹),
criaremos os seguintes atributos:
String marca;
String modelo;
int qtdeRodas;
String cor;
//ex: “Fiat”, “Ford”, null
//ex: “Uno”, “Ka”, null
//ex: 4, 2, 0
//ex: “azul”, “verde”, null
¹ Evitaremos o uso de acentuação nos identificadores de classes e variáveis.
Próximo
A nossa classe “Veiculo”:
public class Veiculo {
//atributos
String marca;
String Modelo;
int qtdeRodas;
String cor;
Isto não é necessário,
mas vamos deixá-lo
aqui por questões
Didáticas, ok?
//contrutores
public Veiculo() {
}
}
Próximo
A nossa classe “Teste”:
public class Teste {
Veremos o que
essas coisas significam
DEPOIS, ok?
//método main
public static void main(String[] args) {
//eleaqui
poderia
estar em
qualquer
//é
que iremos
“chamar”
asclasse,
//mas optei
por do
fazer
uma exclusivamente
//outras
classes
sistema
//para ele (a classe “Teste”)...
}
Por hora, tenha
em mente que
você precisa de
apenas um método
“main” em todo o
sistema para poder
“dar a partida” no
seu programa!
}
Próximo
Ilustração do que acontece na “memória” ao criarmos variáveis de tipos primitivos (int, boolean, double, etc...)
x
5
a
2
public class Veiculo {
public class Teste {
//método main
public static void main(String[] args) {
//atributos
String marca;
String Modelo;
int qtdeRodas;
String cor;
int x; //declaramos uma variável do TIPO inteiro
x = 5; //atribuimos o valor 5 a “x”
//podemos fazer isso em um único “movimento”...
//contrutores
public Veiculo() {
int a = 2;
}
}
}
}
Próximo
Ilustração do que acontece na “memória” ao criarmos variáveis de tipos NÃO primitivos (Veiculo, Animal, etc...)
v2
marca: null
modelo: null
qtdeRodas: 0
cor: null
v1
public class Veiculo {
//atributos
String marca;
String Modelo;
int qtdeRodas;
String cor;
marca: null
Quando o “new”, foi
modelo: null
qtdeRodas: 0
utilizado, eu (o construtor
cor: null
da classe “Veiculo”) fui
chamado para realizar a
public class Teste {
criação do objeto.//método
Em
main
outras palavras: a classe
public static void main(String[] args) {
//declaramos uma variável de referência
“Veiculo” foi instanciada!
//do TIPO Veiculo
Veiculo v1;
//criamos um objeto do tipo Veiculo com “new”
//e usamos “v1” como referência para esse objeto
//contrutores
public Veiculo() {
v1 = new Veiculo();
//podemos fazer isso em um único “movimento”...
Veiculo v2 = new Veiculo();
}
}
}
}
Próximo
Ilustração do que acontece na “memória” ao criarmos variáveis de tipos NÃO primitivos (Veiculo, Animal, etc...)
v2
marca: null
modelo: null
qtdeRodas: 0
cor: null
v1
public class Veiculo {
//atributos
String marca;
String Modelo;
int qtdeRodas;
String cor;
marca: null
modelo: null
qtdeRodas: 0
cor: null
v3
Perceba que eu (o construtor) não fui
acionado pela última linha da classe
public
class Teste {
“Teste” ( cláusula “new”
inexistente),
//método
main
portanto nenhum objeto
foi criado.
O
static
que ocorreu foi apenaspublic
a criação
devoid main(String[] args) {
Veiculo v1;
uma (outra) referência para
um Veiculo();
v1 = new
objeto já existente!
Veiculo v2 = new Veiculo();
//podemos declarar outra referência do tipo “Veiculo”
Veiculo v3;
//contrutores
public Veiculo() {
//e usá-la também para referenciar o mesmo objeto
// referenciado por “v2”
v3 = v2;
}
}
}
}
Próximo
Praticando e explorando
public class Veiculo {
//atributos
String marca;
String Modelo;
int qtdeRodas;
String cor;
//contrutores
public Veiculo() {
}
}
Experimente
executar o O
mesmo
que você
exemplo sem
achaa que
minha presença!
aconteceu?
Você
percebeu
alguma
diferença ao
executar o
código?
Download

Veiculo