Sei sulla pagina 1di 6

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET

Aula 04 Estrutura de Classe em Java

Estrutura Geral de uma Classe class < nome da classe > extends < nome da super classe > implements interface1, ... ,interfaceN { < tipo1 > atributo1; < tipo2 > atributo 2, atributo 3; ... construtores ... void mtodo1(){...} void mtodo2(<parmetros>){...} < tipo > mtodo3(<parmetros>){...} 2 }

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Instanciao de Classes Instanciao uma operao que permite evidenciar elementos (objetos) de uma classe. Instanciao uma operao na classe, no uma operao da instncia da classe (objeto). Por conveno em Java, a operao new cria instncias de uma classe, responsvel pela alocao dos objetos, mas no pela inicializao dos atributos.
3

Construtores Como um mtodo de classe no pode acessar diretamente os atributos na nova instncia, um mtodo de instncia(construtor) precisa ser escrito para inicializar os atributos. Em Java, o nome do construtor o mesmo nome da classe. Numa mesma classe, podem existir construtores sobrecarregados. O nome do construtor(e possveis parmetros) aparece junto com a operao new.
4

Exemplo class Funcionario{ String nome,RG; float salario; Funcionario(String nomef,String ident,float sal){ nome=nomef; RG=ident; salario=sal; } ... }

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Exemplo cont. class admissao{ public static void main(String args[]){ Funcionario ze=new Funcionario("Z","15.000",150); ... } }
6

Construtores Implcitos class Funcionario{ String nome,RG; float salario; void admite(String nomef,String ident,float sal){ nome=nomef; RG=ident; salario=sal; }... } class admissao{ public static void main(String args[]){ Funcionario ze=new Funcionario(); ze.admite("Z","15.000",150); } }

Construtores Sobrecarregados class Funcionario{ String nome,RG; float salario; Funcionario(){ nome=" "; RG=" "; salario=0.0; } Funcionario(String nomef,String ident,float sal){ nome=nomef; RG=ident; salario=sal; } void admite(String nomef,String ident,float sal){...}... }

Construtores Sobrecarregados Usando a classe anterior, poderamos inicializar as instncias de dois modos: class admisso{ public static void main(String args[]){ Funcionario ze=new Funcionario(); Funcionario maria=new Funcionario("Maria","0",300); ze.admite("Z","15.000",150); .... } }

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Garbage Collection De tempos em tempos, o interpretador java dispara um processo de recuperao de reas de memria alocadas, porm no mais referenciadas ( processo de garbage collection (coleta de lixo)). Isto, eventualmente, pode afetar o desempenho da aplicao.

10

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Operador de Autoreferncia This this um "apontador" para o objeto em questo. Usando este apontador, um mtodo pode acessar todas os atributos das classe a que pertence. Ele criado automaticamente quando um objeto chama um mtodo e "aponta" para o prprio objeto que chamou o mtodo.

11

Exemplo class Funcionario{ String nome, RG; float salario; Funcionario(String nome,String RG,float salario){ this.nome=nome; this.RG=RG; Acesso aos this.salario=salario; atributos } Funcionario(){ this(" "," ",0.0); // Construtor que chama construtor } ... } 12

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Atributos Estticos Um atributo com o modificador static tem o seu valor compartilhado por todos os objetos da classe, ou seja, s haver uma cpia dele para todos os objetos da classe. Por exemplo: static float valor_dolar;

Mtodos Estticos Um mtodo esttico um mtodo que pode ser invocado, mesmo que no haja nenhuma instncia da classe, isto , pode ser referenciado independentemente de qualquer objeto. Por exemplo: static void cambio(float valor){...} Como independe da instncia, no tem autoreferncia ( operador this ). Mtodos estticos podem referenciar somente atributos estticos.
13 14

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Exemplo de Atributos e Mtodos Estticos class produtoexportacao{ String nome; float preco_venda,preco_compra; static float valor_dolar; produtoexportacao(String nome,float precov,float precoc){ this.nome=nome; this.preco_venda=precov; this.preco_compra=precoc; }

... static void cambio(float valor){ valor_dolar=valor; } }


Chamada de class comercio_exterior{ public static void main(String args[]){ mtodo esttico Sem instanciao float cotacao; cotacao=1.50; produtoexportacao.cambio(cotacao); } }
15 16

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Herana Herana um relacionamento do tipo generalizao/ especializao, onde uma classe pode ser derivada (subclasse) de outra mais geral (superclasse), absorvendo todas as caractersticas fundamentais e adicionando outras novas caractersticas, de tal modo a torn-la mais especializada.

Exemplo

Funcionario nome RG salario aumenta(valor) pagamento

Chefe contas gastos_extra adicional_chefia pagamento

17

18

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Exemplo Implementao da Subclasse Chefe class Chefe extends Funcionario{ float contas, gastos_extra,adicional_chefia; Chefe(String nomef,String RG, float sal, float contas, float gastos_extra, float adicional) { super(nomef,RG,sal); // Construtor da superclasse (Funcionario) this.contas=contas; this.gastos_extra=gastos_extra; this.adicional_chefia=adicional;
19

Exemplo Implementao da Superclasse Funcionario class Funcionario{ String nome,RG; float salario; Funcionario(String nomef,String ident,float sal){ nome=nomef; RG=ident; salario=sal; } void aumenta(float pouco){ salario=salario+pouco; } float pagamento(){ return (salario); } }

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Exemplo Implementao da Subclasse Chefe float pagamento(){ float recebe; recebe=this.salario; recebe=recebe+contas+gastos_extra+adicional_chefia ; return(recebe); } }
21

Exemplo Instanciao da Subclasse class ganhando{ public static void main(String args[]){ Chefe joao=new Chefe("Joo","320",11150,1250,680, 5000); joao.aumenta(300); System.out.println("Joo ganha" + joao.pagamento() ); } }

22

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET

Operador de Referncia Super super um operador para acessar atributos e mtodos das superclasses, a partir das subclasses.

Este operador deve ser usado com bastante cuidado, principalmente na presena de modificadores de acesso.
23

Exemplo - Implementao da Subclasse Aula 04 Estrutura de Classe em Java Chefe com Super class Chefe extends Funcionario{ float contas, gastos_extra,adicional_chefia; Chefe(String nomef,String RG, float sal, float contas, float gastos_extra, float adicional){ super(nomef,RG,sal); // Construtor da superclasse (Funcionario) this.contas=contas; this.gastos_extra=gastos_extra; this.adicional_chefia=adicional; }

24

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Exemplo - Implementao da Subclasse Aula 04 Estrutura de Classe em Java Chefe com Super float pagamento() { float recebe; recebe=super.pagamento(); // Chamada de pagamento() da superclasse recebe=recebe+contas+gastos_extra+adicional_che fia; return(recebe); } }
25

Polimorfismo Habilidade de uma ou mais classes responder a uma mesma mensagem de forma diferente.

26

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET

Exemplo para Polimorfismo Universal de Incluso


Funcionario nome RG salario aumenta(valor) pagamento Chefe contas gastos_extra adicional_chefia pagamento

27

Exemplo Implementao da Superclasse Aula 04 Estrutura de Classe em Java Funcionario class Funcionario{ String nome,RG; float salario; Funcionario(String nomef,String ident,float sal){ nome=nomef; RG=ident; salario=sal; } void aumenta(float pouco){ salario=salario+pouco; } float pagamento(){ return (salario); } }

28

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Exemplo Implementao da Subclasse Chefe class Chefe extends Funcionario{ float contas, gastos_extra,adicional_chefia; Chefe(String nomef,String RG, float sal, float contas, float gastos_extra, float adicional) { super(nomef,RG,sal); // Construtor da superclasse (Funcionario) this.contas=contas; this.gastos_extra=gastos_extra; this.adicional_chefia=adicional; }

Exemplo Implementao da Subclasse Chefe float pagamento() { float recebe; recebe=super.pagamento(); // Chamada no contexto da superclasse recebe=recebe+contas+gastos_extra+adicional_che fia; return(recebe); }
29

30

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Exemplo - Chamadas na Superclasse e Subclasse class ganhando{ public static void main(String args[ ]){ Chefe joao=new Chefe("Joo","320",11150,1250,680, 5000); Funcionario maria=new Funcionario("Maria","16.000",2000); System.out.println("Joo ganha"+joao.pagamento() ); Chamada no contexto da subclasse 31

System.out.println("Maria ganha"+maria.pagamento() ); } } Chamada no contexto da superclasse

32

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Modificador final O modificador final tem comportamentos diferentes, dependendo do local onde aplicado: Atributo: uma vez que inicializado, no pode mais sofrer alterao (constante). Mtodo: nas classes descendentes no pode mais haver polimorfismo com o mtodo. Classes: no podem mais ser estendidas.
33

Exemplo de Uso de Final class classe1{ // Inicializao de pi ( funciona como constante ) final double pi=3.1415926535; final void calcula(){ pi=2.718; // ERRO DE COMPILAO! pi j foi inicializado! ... } }

34

LINGUAGEM DE PROGRAMAO II / LINGUAGEM DE PROGRAMAO PARA INTERNET


Aula 04 Estrutura de Classe em Java

Exemplo de Uso de Final final class classe2 extends classe1{ ... void calcula(){...}; //ERRO! calcula() final na superclasse. }

class classe3 extends classe2{ // ERRO! classe2 final. ... 35 }

Potrebbero piacerti anche