noções (super) básicas de oo

9
Noções (super) básicas de OO Criando e instanciando uma classe com um construtor vazio (utilizando JAVA) UFRPE – Monitoria de Programação 2012.2 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 (PARTE 01)

Upload: alec-dalton

Post on 30-Dec-2015

25 views

Category:

Documents


0 download

DESCRIPTION

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). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Noções (super) básicas de OO

Noções (super) básicas de OO

Criando e instanciando uma classe com um construtor vazio

(utilizando JAVA)

UFRPE – Monitoria de Programação 2012.2

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

(PARTE 01)

Page 2: Noções (super) básicas de OO

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

Page 3: Noções (super) básicas de OO

Revisando...

• Na nossa classe de exemplo (Veiculo¹), criaremos os seguintes atributos:

String marca; //ex: “Fiat”, “Ford”, nullString modelo; //ex: “Uno”, “Ka”, nullint qtdeRodas; //ex: 4, 2, 0String cor; //ex: “azul”, “verde”, null

Próximo¹ Evitaremos o uso de acentuação nos identificadores de classes e variáveis.

Page 4: Noções (super) básicas de OO

A nossa classe “Veiculo”:public class Veiculo {

//atributosString marca;String Modelo;int qtdeRodas;String cor;

//contrutorespublic Veiculo() {

}

}

Isto não é necessário,mas vamos deixá-loaqui por questões

Didáticas, ok?

Próximo

Page 5: Noções (super) básicas de OO

A nossa classe “Teste”:public class Teste {

//método main public static void main(String[] args) {

}

Veremos o queessas coisas significam

DEPOIS, ok?

}

Por hora, tenhaem mente quevocê precisa deapenas um método“main” em todo osistema para poder“dar a partida” no seu programa!

//ele poderia estar em qualquer classe,//mas optei por fazer uma exclusivamente//para ele (a classe “Teste”)...

//é aqui que iremos “chamar” as

//outras classes do sistema

Próximo

Page 6: Noções (super) básicas de OO

public class Teste {

//método main public static void main(String[] args) {

} }

public class Veiculo {

//atributosString marca;String Modelo;int qtdeRodas;String cor;

}

//contrutorespublic Veiculo() {

}

Ilustração do que acontece na “memória” ao criarmos variáveis de tipos primitivos (int, boolean, double, etc...)

int x; //declaramos uma variável do TIPO inteiro

x

x = 5; //atribuimos o valor 5 a “x”

5

//podemos fazer isso em um único “movimento”...

int a = 2;

2a

Próximo

Page 7: Noções (super) básicas de OO

public class Teste {//método main public static void main(String[] args) {

} }

public class Veiculo {

//atributosString marca;String Modelo;int qtdeRodas;String cor;

}

//contrutorespublic Veiculo() {

}

Ilustração do que acontece na “memória” ao criarmos variáveis de tipos NÃO primitivos (Veiculo, Animal, etc...)

//declaramos uma variável de referência

v1

v1 = new Veiculo(); //podemos fazer isso em um único “movimento”...

v2

Veiculo v1; //do TIPO Veiculo

//criamos um objeto do tipo Veiculo com “new”//e usamos “v1” como referência para esse objeto

Veiculo v2 = new Veiculo();

marca: nullmodelo: nullqtdeRodas: 0cor: null

marca: nullmodelo: nullqtdeRodas: 0cor: null

Próximo

Quando o “new”, foi utilizado, eu (o construtor

da classe “Veiculo”) fui chamado para realizar a

criação do objeto. Em outras palavras: a classe

“Veiculo” foi instanciada!

Page 8: Noções (super) básicas de OO

public class Teste {//método main public static void main(String[] args) {

} }

public class Veiculo {

//atributosString marca;String Modelo;int qtdeRodas;String cor;

}

//contrutorespublic Veiculo() {

}

Ilustração do que acontece na “memória” ao criarmos variáveis de tipos NÃO primitivos (Veiculo, Animal, etc...)

v1

v1 = new Veiculo();

v2

Veiculo v1;

Veiculo v2 = new Veiculo();

marca: nullmodelo: nullqtdeRodas: 0cor: null

marca: nullmodelo: nullqtdeRodas: 0cor: null

Próximo

//podemos declarar outra referência do tipo “Veiculo”

v3

Veiculo v3;//e usá-la também para referenciar o mesmo objeto // referenciado por “v2”v3 = v2;

Perceba que eu (o construtor) não fui acionado pela última linha da classe

“Teste” ( cláusula “new” inexistente), portanto nenhum objeto foi criado. O que ocorreu foi apenas a criação de

uma (outra) referência para um objeto já existente!

Page 9: Noções (super) básicas de OO

Praticando e explorando

}

public class Veiculo {

//atributosString marca;String Modelo;int qtdeRodas;String cor;

//contrutorespublic Veiculo() {

}

Experimente executar o mesmo

exemplo sem a minha presença!

Você percebeu alguma

diferença ao executar o

código?

O que você acha que

aconteceu?