Conceitos de OO em Java Parte I Curso de Linguagem Java.

28
Conceitos de OO em Conceitos de OO em Java Java Parte I Parte I Curso de Linguagem Java Curso de Linguagem Java

Transcript of Conceitos de OO em Java Parte I Curso de Linguagem Java.

Page 1: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Conceitos de OO em JavaConceitos de OO em JavaParte IParte I

Curso de Linguagem JavaCurso de Linguagem Java

Page 2: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 2

class Pessoa {

}

int qualIdade () { return idade; }

void casar (Pessoa p) {

conjuge = p; }

int idade;Pessoa conjuge;

Estrutura de uma classeEstrutura de uma classe

Classe

Propriedades

Métodos

Page 3: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 3

ClassesClasses

Declaração:class Ponto {...

} Propriedades: dados que as instâncias da classe

conterão:class Ponto {float x, y;

}

X = 1 Y = 1

Qualquer objeto do tipo

Ponto possuirá dois atributos denominados

x e y

X = 2 Y = 2 X = 3

Y = 3

Page 4: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 4

class Editor {public static void main (String arg[]) { Ponto p; int a = 2; }

}

Instanciação de ObjetosInstanciação de Objetos

Toda classe criada pode ser usada na declaração de varíaveis (objetos).

Exemplo:

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

Page 5: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 5

Instanciação de ObjetosInstanciaçã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(); }}

Page 6: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 6

class Editor { public static void main (String arg[]) {

Ponto p = new Ponto(); }}

Instanciação de ObjetosInstanciação de Objetos

X = 0 Y = 0

p

Page 7: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 7

Atribuição de valoresAtribuiçã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)

X = 1 Y = 2

p1

X = 3 Y = 4

p2

Page 8: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 8

Atribuição de valores (cont.)Atribuição de valores (cont.)

Atenção !!!

Ponto p1 = new Ponto();p1.x = 1;

Declaração

Instanciação

Atribuição

Page 9: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 9

Acessando membros de uma classeAcessando membros de uma classe

Membros de uma classe são suas propriedades e métodos.

p1.x = 1;

p1 x. 1Nome do objeto

Separador Nome doAtributo

Valor atribuído ao atributo do objeto

=

Page 10: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 10

MétodosMétodos

Define o comportamento da classe. Declaração:

class Ponto {int x, y;

void mover ( int dx, int dy) {x += dx;y += dy;

}}

Page 11: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 11

Tipos de MétodosTipos de Métodosclass Pessoa { int a; MinhaClasse b;

Pessoa(){ …} float Exemplo (int a){ …}

}

MétodosConstrutores

MétodosOperacionais

Page 12: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 12

Métodos ConstrutoresMétodos 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; }}

Ponto (int x, int y)

Page 13: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 13

Assinatura de um método ConstrutorAssinatura de um método Construtor

Ponto (int x, int y)

Não possui tipo deretorno

Nome do método deve ser igual ao nome da classe

Parâmetros

Page 14: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 14

Uso de ConstrutoresUso de Construtores

Deve ser usado no momento da criação do objeto:

Ponto p1 = new Ponto(1,2);

Ponto p2 = new Ponto(3,4);

p1X = 1 Y = 2

p2

X = 3 Y = 4

Page 15: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 15

Método Construtor ExemploMétodo Construtor Exemploclass EditorGrafico {

public static void main (String arg []){ Ponto p1, p2; p1 = new Ponto (1,2); p2 = new Ponto (3,4);}

}

Page 16: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 16

Construtor PadrãoConstrutor 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

Page 17: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 17

Métodos ConstrutoresMétodos Construtores

Usados na criação de um objeto através do comando new

Possuem o mesmo nome da classePodem receber parâmetros que servirão

para incialização dos atributos da classeUma classe pode ter vários métodos

construtores

Page 18: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 18

class Funcionario{ String nomefunc;

float salario;Funcionario (String nome,float sal){

salario = sal;nomefunc = nome;

}...…

}

Métodos ConstrutoresMétodos Construtores

Método Construtor

OutrosMétodos

Page 19: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 19

ExemploExemplo

class ProgramaPrincipal{

public static void main (String arg[]){

Funcionario func;func = new Funcionario(“Juca”,102f);

}

}

Método Construtor

Page 20: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 20

Métodos OperacionaisMétodos Operacionais

Implementam as funções de uma classePossuem 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

Page 21: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 21

Retorno

Corpo

Assinatura

Métodos OperacionaisMétodos Operacionais

class Funcionario{ String nomeFunc;

float salario;...float calcularSalario (int horas){ float salMes = 0;if (horas < 220) { salMes =(salario/220)*horas;}return salMes;}...

}

Page 22: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 22

Assinatura de um método OperacionalAssinatura de um método Operacional

float calcularSalario (int horas)

Tipo deRetorno

Nome Parâmetro

Page 23: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 23

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);

ExemploExemplo

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);

Page 24: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 24

Dinâmica de um Sistema Orientado a Dinâmica de um Sistema Orientado a ObjetosObjetos

Estímulo Externo

Resposta

Page 25: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 25

Interação entre ObjetosInteração entre ObjetosExemplo: Pintando um ponto na tela Exemplo: Pintando um ponto na tela

AreaDesenho

Editor

Ponto

e1.criarPonto( cx, cy);

Ponto p1 = new Ponto();

p1.desenhar();

CLICK (GUI)

e1

p1

a1

Page 26: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 26

Chamadas de MétodoChamadas de Método

A troca de mensagens entre os objetos é realizada através da chamada de métodos com passagem de parâmetros

Exemploclass Editor {void criarPonto (int x1, int y1) {

Ponto p1 = new Ponto (); p1.x = x1; p1.y = y1; p1.desenhar(); }}

Page 27: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 27

class Editor {void criarPonto (int x1, int y1) {

Ponto p1 = new Ponto (); p1.x = x1; p1.y = y1; p1.desenhar(); }}

Mensagem entre ObjetosMensagem entre Objetos

Troca de mensagem de um objeto da classe

Editor com o objeto da classe Ponto

denominado aqui como p1

Page 28: Conceitos de OO em Java Parte I Curso de Linguagem Java.

Linguagem Java 28

Mensagem entre ObjetosMensagem entre Objetos

Objeto a Objeto ff.ehChefe ( );

...float calcularBonus (Funcionario f) { float bonus = 0; if ( f.ehChefe ( ) ) { bonus = f.salario * 0.5; } else bonus = f.salario * 0.2; return bonus; }...

true

a.calcularBonus (joao);

Premissas:Método da Classe Folha.Instância denominada a.

true