Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Objetivos
Ao final desta lio, o estudante ser capaz de:
Descrever e utilizar as palavras-chaves: this, super, final e static Diferenciar entre polimorfismo por overloading e override
Introduo Programao II
Focada em classes e objetos baseados em cenrios do mundo real Enfatiza estado, comportamento e interao dos Objetos Vantagens:
Desenvolvimento rpido Aumento da qualidade Facilita manuteno e as mudanas Aumenta a reutilizao de software
Introduo Programao II
Classe
Objeto
Entidade que tem um estado, um comportamento e uma identidade Construdo a partir de uma classe
Atributo
Mtodo
Construtor
Introduo Programao II
Pacote
Encapsulamento
Abstrao
Introduo Programao II
Herana
Relacionamento entre classes onde uma classe a superclasse ou uma classe pai de outra Refere-se s propriedades e aos comportamentos recebidos de um ancestral Conhecido como um relacionamento -um
SuperHero
FlyingSuperHero
UnderwaterSuperHero
Introduo Programao II
Polimorfismo
Interface
Forma de contrato contendo uma coleo de mtodos e atributos no modificveis Classes que implementam as interfaces, devem seguir as regras de contratao
Introduo Programao II
Introduo Programao II
Introduo Programao II
10
<tipo> ::= byte | short | int | long | char | float | double | boolean | <classeQualquer>
Introduo Programao II
11
Introduo Programao II
12
Introduo Programao II
13
Introduo Programao II
14
Construtor padro
Introduo Programao II
15
Introduo Programao II
16
Exemplo: class ConstructObj { int data; ConstructObj() { } public static void main(String args[]) { ConstructObj obj = new ConstructObj(); } }
Introduo Programao II
17
Introduo Programao II
18
Introduo Programao II
19
Introduo Programao II
20
Introduo Programao II
21
class Encapsulation { private int secret; public boolean setSecret(int secret) { if (secret < 1 || secret > 100) return false; this.secret = secret; return true; } public getSecret() { return secret; } }
Introduo Programao II 22
Introduo Programao II
23
Introduo Programao II
24
A subclasse define um mtodo cuja assinatura idntica ao do mtodo definido na superclasse Assinatura de um mtodo
Introduo Programao II
25
Introduo Programao II
26
Introduo Programao II
27
Sintaxe: abstract <modificador> <tipoRetorno> <nome>(<argumento>*); Classe que contm um mtodo abstract deve ser declarada abstract
Introduo Programao II
29
Classes abstract no podem ser instanciadas Classe que estende uma classe abstract:
Deve implementar todos os mtodos abstract Caso algum mtodo no seja implementado, a classe deve ser declarada abstract
Introduo Programao II
30
Introduo Programao II
31
Introduo Programao II
32
Atributos da interface:
Mtodos:
public
Palavra-chave implements Implementar todos os mtodos da interface A classe pode implementar vrias interfaces
Introduo Programao II
33
Introduo Programao II
34
Introduo Programao II
35
class ThisDemo2 { int data; void method() { System.out.println(this.data); } void method2() { this.method(); } }
Introduo Programao II
36
Overloading de construtores:
Mtodos diferentes de uma classe que compartilham o mesmo nome Lista de Parmetros deve ser diferente
Introduo Programao II
37
class ThisDemo3 { int data; ThisDemo3() { this(100); } ThisDemo3(int data) { this.data = data; } }
Relacionado a hierarquia
Invoca o construtor da super-classe Pode ser usado como a palavra reservada this referindo-se a elementos da super-classe
Introduo Programao II
39
Introduo Programao II
40
class Superclass{ int a; void display_a(){ System.out.println("a = " + a); } } class Subclass extends Superclass { int a; void display_a(){ System.out.println("a = " + a); } void set_super_a(int n){ super.a = n; } void display_super_a(){ super.display_a(); } }
Introduo Programao II 41
Permite acessar elementos da classe, ou static, sem ter sido instanciada Atributos da classe
Comportamento igual ao atributo global Podem ser acessados por todas as instncias da classe
Introduo Programao II 42
Mtodos da classe
Podem ser invocados sem criar um objeto dessa classe Podem acessar somente elementos estticos da classe No podem referir-se a this ou super
Blocos estticos
Chamados apenas uma nica vez, quando a classe carregada Para inicializar atributos de classe
Introduo Programao II
43
Introduo Programao II
44
Aplicada para atributos, mtodos e classes Restringir modificao Palavra reservada final pode ser colocada antes ou depois de outros modificadores Atributo final final int data = 10; data++;
Introduo Programao II 45
Mtodo final public class MyClass { final void myMethod() { } } class ChildClass extends MyClass { void myMethod() { } }
Introduo Programao II 46
Classe final final public class MyClass {} class WrongClass extends MyClass {}
Introduo Programao II
47
Classe declarada dentro de outra classe Para acessar elementos da classe interna e necessrio de uma instncia da classe interna
innerObj.innerMember = 5;
Introduo Programao II
48
Introduo Programao II
49
Sumrio
Introduo Programao II
51
Sumrio
Declarando uma classe Java Declarando Atributos Declarando mtodos Declarando um construtor Instanciando uma classe Acessando elementos de um objeto Pacotes Modificadores de Acesso Encapsulamento
Herana Override de mtodos Mtodos e classes abstratas Interface Palavra-chave this Palavra-chave super Palavra-chave static Palavra-chave final Classes internas
Introduo Programao II
52
Parceiros
TM
possvel em
Introduo Programao II
53