Buscar

Conceitos de OO em Java

Prévia do material em texto

AULA 02 CONCEITOS DE OO EM JAVA 
 
1 
L
in
g
u
a
g
e
m
 J
a
v
a
 
CONCEITOS DE OO EM JAVA 
PARTE I 
Curso de Linguagem Java 
 
 
ESTRUTURA DE UMA CLASSE 
3 
L
in
g
u
a
g
e
m
 J
a
v
a
 
class Pessoa 
{ 
 
 
 
 
 
 
 
 
 
 
 
 
} 
 
int qualIdade () { 
 return idade; 
 } 
 
 void casar (Pessoa p) 
 { 
 conjuge = p; 
 } 
int idade; 
Pessoa conjuge; 
 
Classe 
Propriedades 
Métodos 
CLASSES 
Declaração: 
class Ponto { 
 ... 
} 
 Propriedades: dados que as instâncias da classe 
conterão: 
class Ponto { 
float x, y; 
} 
4 
L
in
g
u
a
g
e
m
 J
a
v
a
 
X = 1 
Y = 1 
Qualquer 
objeto do tipo 
Ponto possuirá 
dois atributos 
denominados 
x e y 
X = 2 
Y = 2 X = 3 
Y = 3 
INSTANCIAÇÃO DE OBJETOS 
 Toda classe criada pode ser usada na declaração 
de varíaveis (objetos). 
 Exemplo: 
 
5 
L
in
g
u
a
g
e
m
 J
a
v
a
 
class Editor { 
 public static void main (String arg[]) { 
 Ponto p; 
 int a = 2; 
 } 
} 
 
Declaração de uma 
variável p do tipo da 
classe Ponto. 
Declaração de uma 
variável a do tipo 
inteiro. 
X = ? 
Y = ? 
2 
INSTANCIAÇÃO DE OBJETOS 
 Dada uma classe, pode ser criada uma nova 
instância desta classe usando o comando new. 
 Exemplo: 
 
class Editor { 
 public static void main (String arg[]) { 
 Ponto p = new Ponto(); 
 } 
} 
6 
L
in
g
u
a
g
e
m
 J
a
v
a
 
INSTANCIAÇÃO DE OBJETOS 
7 
L
in
g
u
a
g
e
m
 J
a
v
a
 
class Editor { 
 public static void main (String arg[]) { 
 Ponto p = new Ponto(); 
 } 
} 
X = 0 
Y = 0 
p 
ATRIBUIÇÃO DE VALORES 
 As propriedades dos objetos podem ser 
manipuladas diretamente: 
Ponto p1 = new Ponto(); 
p1.x = 1; 
p1.y = 2; 
// p1 representa o ponto (1,2) 
Ponto p2 = new Ponto(); 
p2.x = 3; 
p2.y = 4; 
// p2 representa o ponto (3,4) 
 
8 
L
in
g
u
a
g
e
m
 J
a
v
a
 
X = 1 
Y = 2 
p1 
 
X = 3 
Y = 4 
p2 
 
ATRIBUIÇÃO DE VALORES (CONT.) 
Atenção !!! 
 
 
Ponto p1 = new Ponto(); 
p1.x = 1; 
 
9 
L
in
g
u
a
g
e
m
 J
a
v
a
 
Declaração 
Instanciação 
Atribuição 
ACESSANDO MEMBROS DE UMA 
CLASSE 
 Membros de uma classe são suas propriedades e 
métodos. 
 p1.x = 1; 
 
10 
L
in
g
u
a
g
e
m
 J
a
v
a
 
p1 x . 1 
Nome do 
objeto 
Separador 
 
Nome do 
Atributo 
Valor atribuído 
ao atributo do 
objeto 
= 
MÉTODOS 
 Define o comportamento da classe. 
 Declaração: 
 
class Ponto { 
int x, y; 
 
void mover ( int dx, int dy) { 
 x += dx; 
 y += dy; 
} 
} 
11 
L
in
g
u
a
g
e
m
 J
a
v
a
 
TIPOS DE MÉTODOS 
12 
L
in
g
u
a
g
e
m
 J
a
v
a
 
class Pessoa 
{ 
 int a; 
 MinhaClasse b; 
 
Pessoa() 
{ 
 … 
} 
 
float Exemplo (int a) 
{ 
 … 
} 
} 
 
Construtores 
Métodos 
Operacionais 
CONSTRUTORES 
 Devemos usar os métodos construtores quando 
queremos atribuir valores aos atributos de um objeto no 
momento de sua criação 
class Ponto { 
 int x=0; 
 int y=0; 
 
 { 
 this.x = x; 
 this.y = y; 
 } 
} 
13 
L
in
g
u
a
g
e
m
 J
a
v
a
 
Ponto (int x, int y) 
ASSINATURA DE CONSTRUTOR 
14 
L
in
g
u
a
g
e
m
 J
a
v
a
 
 Ponto (int x, int y) 
Não possui 
tipo de 
retorno 
Nome do 
método 
deve ser 
igual ao 
nome da 
classe 
Parâmetros 
USO DE CONSTRUTORES 
 Deve ser usado no momento da criação do objeto: 
Ponto p1 = new Ponto(1,2); 
 
 
Ponto p2 = new Ponto(3,4); 
 
15 
L
in
g
u
a
g
e
m
 J
a
v
a
 
p1 
X = 1 
Y = 2 
p2 
X = 3 
Y = 4 
CONSTRUTOR EXEMPLO 
16 
L
in
g
u
a
g
e
m
 J
a
v
a
 
class EditorGrafico 
{ 
 
public static void main (String arg []) 
{ 
 Ponto p1, p2; 
 p1 = new Ponto (1,2); 
 p2 = new Ponto (3,4); 
} 
} 
CONSTRUTOR PADRÃO 
 A linguagem Java declara um construtor padrão, 
vazio, que não recebe nenhum parâmetro 
 
 Quando declaramos um novo construtor, esse 
construtor padrão deixa de existir e é substituído 
pelo novo construtor 
17 
L
in
g
u
a
g
e
m
 J
a
v
a
 
CONSTRUTORES 
 Usados na criação de um objeto através do 
comando new 
 Possuem o mesmo nome da classe 
 Podem receber parâmetros que servirão para 
incialização dos atributos da classe 
 Uma classe pode ter vários métodos construtores 
18 
L
in
g
u
a
g
e
m
 J
a
v
a
 
CONSTRUTORES 
class Funcionario 
{ String nomefunc; 
 float salario; 
 Funcionario (String nome,float sal) 
 { 
 salario = sal; 
 nomefunc = nome; 
} 
... 
… 
} 
19 
L
in
g
u
a
g
e
m
 J
a
v
a
 
Método 
Construtor 
Outros 
Métodos 
EXEMPLO 
class ProgramaPrincipal 
{ 
 public static void main (String arg[]) 
 { 
 Funcionario func; 
 func = new Funcionario(“Juca”,102f); 
 } 
} 
20 
L
in
g
u
a
g
e
m
 J
a
v
a
 
Método 
Construtor 
MÉTODOS OPERACIONAIS 
 Implementam as funções de uma classe 
 Possuem sintaxe semelhante à sintaxe de 
definição das funções de um programa procedural 
 Determinam o comportamento da classe e a troca 
de mensagens com outras classes 
 
21 
L
in
g
u
a
g
e
m
 J
a
v
a
 
MÉTODOS OPERACIONAIS 
class Funcionario 
{ String nomeFunc; 
 float salario; 
 ... 
 float calcularSalario (int horas) 
 { float salMes = 0; 
 if (horas < 220) 
 { 
 salMes =(salario/220)*horas; 
 } 
 return salMes; 
 } 
... 
} 
22 
L
in
g
u
a
g
e
m
 J
a
v
a
 
Retorno 
Corpo 
Assinatura 
ASSINATURA DE UM MÉTODO 
OPERACIONAL 
23 
L
in
g
u
a
g
e
m
 J
a
v
a
 
float calcularSalario (int horas) 
Tipo de 
Retorno 
Nome Parâmetro 
EXEMPLO 
24 
L
in
g
u
a
g
e
m
 J
a
v
a
 
class ProgramaPrincipal 
{ 
 public static void main (String arg[]) 
 { float sal; 
 Funcionario func; 
 func = new Funcionario(“Juca”,2200); 
 
 
 System.out.println (sal); 
 } 
} 
sal = func.calcularSalario(80); Executando 
o Método 
calcularSalario da 
classe Funcionario 
func 
nomeFunc = “Juca” 
salario = 2200 
----------------- 
calcularSalario(horas) 
sal = (salario/220)*horas; 
sal = (2200/220)*80 
sal = 800 
sal = func.calcularSalario(80); 
DINÂMICA DE UM SISTEMA 
ORIENTADO A OBJETOS 
25 
L
in
g
u
a
g
e
m
 J
a
v
a
 
Estímulo 
Externo 
Resposta 
INTERAÇÃO ENTRE OBJETOS 
EXEMPLO: PINTANDO UM PONTO NA TELA 
26 
L
in
g
u
a
g
e
m
 J
a
v
a
 
Area 
Desenho 
Editor 
Ponto 
e1.criarPonto( cx, cy); 
CLICK (GUI) 
e1 
p1 
a1 
CHAMADAS DE MÉTODO 
A troca de mensagens entre os objetos é 
realizada através da chamada de 
métodos com passagem de parâmetros 
 Exemplo 
class Editor { 
 void criarPonto (int x1, int y1) { 
 Ponto p1 = new Ponto(); 
 p1.x = x1; 
 p1.y = y1; 
 p1.desenhar(); 
 } 
} 
27 
L
in
g
u
a
g
e
m
 J
a
v
a
 
MENSAGEM ENTRE OBJETOS 
class Editor { 
 void criarPonto (int x1, int y1) { 
 Ponto p1 = new Ponto (); 
 p1.x = x1; 
 p1.y = y1; 
 p1.desenhar(); 
 } 
} 
28 
L
in
g
u
a
g
e
m
 J
a
v
a
 
Troca de mensagem de 
um objeto da classe 
Editor com o objeto da 
classe Ponto 
denominado aqui como 
p1 
MENSAGEM ENTRE OBJETOS 
29 
L
in
g
u
a
g
e
m
 J
a
v
a
 
Objeto a Objeto f 
... 
float calcularBonus (Funcionario f) { 
 float bonus = 0; 
 if ( f.ehChefe ( ) ) { 
 bonus = f.salario * 0.5; 
 } 
 else bonus = f.salario * 0.2; 
 return bonus; 
 } 
... 
true 
Premissas: 
Método da Classe Folha. 
Instância denominada a. 
true

Continue navegando