Baixe o app para aproveitar ainda mais
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
Compartilhar