Sei sulla pagina 1di 16

Programao JAVA

JCF
Professor: Ciro Meneses Santos

C C++ java JVM AWT JRE RTTI eclipse JTS IBM Servlet plug-in JAVA

J2SE

sobrecarga JSP

OLE oracle

SUN

herana NetBeans JTA polimorfismo Java Beans SQL method class EJB

Bibliografia: ---------------Santos, Ciro M. Desenvolvimento de Aplicaes Comerciais com Java e NetBeans Editora Cincia Moderna 2010. DEITEL, H. M., Deitel, P.J., Java Como Programar. 4 Ed. Bookman 2005 HORSTMANN, Cay S., CORNELL., Core Java 2 Volume I Fundamentos Makron Books 2003. HORSTMANN, Cay S., CORNELL., Core Java 2 Volume I Recursos Avanados Makron Books 2003.SUN MICROSYSTEMS, Servios Educacionais SUN 2002 Curos de Java - http://www.sdsi.uri.br/geoob/

J2EE J2ME javac API JAR


1

IDE swing bytecodes JIT GUI

construtor JDBC

MySQL

atributos
2

NetBeans
NetBeans IDE um conjunto de bibliotecas, mdulos e APIs. APIs. formando um ambiente integrado de desenvolvimento visual possibilitando ao desenvolvedor complilar, debugar, efetuar deploying de suas aplicaes . um produto open source, 100% 100% Java e possui vrios mdulos de expanso (modules), que podem ser baixados do prprio site

DESENVOLVIMENTO DE APLICAES COMERCIAIS COM JAVA E NETBEANS A TECNOLOGIA JAVA

http://www.netbeans.org

Introduo
O Paradoxo da Tecnologia de Informao Fatores Humanos no Desenvolvimento e Uso de Software Usabilidade Utilidade Produtividade Robustez Qual a interface mais utilizada pelo maior nmero de segmentos de mercado que usam computador no mundo ?

Tecnologia Java
Uma linguagem de programao Um ambiente de desenvolvimento Um ambiente de aplicaes Um ambiente de distribuio JVM, J2SDK, J2EE, J2ME Proporcione um ambiente interpretado para: Aumentar a velocidade do desenvolvimento Permitir a portabilidade do cdigo
5 6

Caractersticas da Linguagem
Compilada: Um programa em JAVA compilado para o chamado bytecode, que prximo as instrues de mquina. O bytecode um cdigo de mquina virtual idealizada pelos criadores da linguagem. Os bytecodes so instrues em cdigo de mquina para a JVM mchine. Portvel: O bytecodes gerado pelo compilador para a sua aplicao especifica pode ser transportado entre plataformas distintas que supertam JAVA. Orientada a Objetos: Java uma Linguagem puramente orientada objetos, tudo em Java so classes ou instncia de uma classe, abstrao, encapsulamento e hereditariedade. Java no suporta herana mltipla que pode ser compensada pelo uso de herana e interfaces. 7

Caractersticas da Linguagem
Segurana: A presena de coleta automtica de lixo, evita erros comuns que os programadores cometem quando so obrigados a gerenciar diretamente a memria. Coletor de Lixo. Strongly typed tambm uma vantagem em termos de segurana, que est aliada a eliminao de converses implcitas de tipos Tratamento de excees torna as aplicaes mais robustas, no permitindo que elas abortem, mesmo quando rodando sob condies anormais. Suporte concorrncia: A linguagem permite a criao de maneira fcil, de vrios threads Multithreading de execuo, teis e animaes e processamento paralelo real.
8

Fundamentos da POO
A POO se fundamenta em 5 mecanismos:
Abstrao capacidade de representao Identidade coexistncia de mltiplas entidades Encapsulamento ocultao de detalhes Herana criao de relaes hierrquicas Polimorfismo admisso de mltiplas formas

Classes e Objetos
Classes Modelos ou conceitos abstratos para definir famlias de objetos. Podem ser interligadas estabelecendo hierarquias ou relaes. So tipos de dados definidos pelo programador. Objetos Representantes de uma classe, so entidades concretas. Elementos que podem ser distinguidos dos demais objetos de sua classe ou de outras. Sempre pertencem a uma classe. 10

Estrutura das Classes


Classes determinam caractersticas e capacidades que descrevem certos objetos. Caractersticas so variveis da classe, que denominamos campos ou variveis-membro. Capacidades so funes da classe, que chamamos funes-membro ou mtodos.

Objetos
So entidades representantes de uma classe. Possuem uma estrutura de campos individual, tal como especificada pela classe, onde so armazenadas suas caractersticas prprias.
11

Campos

Mtodos

Compartilham o cdigo dos mtodos declarados pela classe, mas tais mtodos atuam sobre os dados individuais de cada objeto. Acionar mtodos como comandar um objeto atravs de mensagens.
12

Classe

Objetos
Objetos so criados dinamicamente (instanciao) atravs de um operador especial new. Criao aciona os construtores. Podemos atribuir um nome para os objetos criados (uma referncia).
Grande parte das tarefas de gerenciamento de memria so realizadas Java. pelo Java Objetos no referenciados so eliminados pelo Coletor de Lixo (Garbage Collector) que efetua a reciclagem de memria.
13

A Java Virtual Machine


Fornece especificaes da plataforma de hardware L bytecodos compilados, que so independentes de plataforma. A Java Virtual Machine Specification fornece as especificaes da plataforma de hardware para as voc compila os cdigos da tecnologia Java. Essa especificao permite que o software Java seja independente da plataforma porque a compilao feita para uma mquina genrica conhecida como JVM machine. Voc pode emular essa JMV por software, para que ela seja executada em diversos sistemas de computadores existentes, ou implementado no hardware.

14

A Java Virtual Machine


A maior parte da verificao de tipos feita quando o cdigo compilado O formato de cdigo da JVM machine consiste de bytecodes compactos e eficientes, devem manter uma disciplina de tipos. Qualquer interpretador compatvel com a tecnologia Java deve ser capaz de executar qualquer programa que tenha arquivos de classes compatveis.

A operao do JRE
Java Runtime Environment
RunTime Compilar java Carga a partir do disco rgido, da rede ou de outra fonte Carregador de classes Verificador de bytecodes

TestHelloWorld.java

javac TestHelloWorld.classe

Interpretador

Runtime

Hardware

15

16

Roteiro de Programao
Editor ASCII

Comentrios
O Java aceita trs tipos de comentrios: de uma linha, de mltiplas linhas e de documentao

Arquivo .java

Compilao JIT Execuo

// comentrio de uma linha /* comentrio de mltiplas linhas */ /** comentrio de documentao * tambm pode ter mltiplas linhas *****************************/

Interpretao

Carregamento Compilador Java (javac) Verificao

Arquivo .class JVM - Mquina Virtual Java (java) 17 18

Itens Fundamentais
Declarao de variveis: As variveis s podem armazenar valores de um mesmo tipo Tipos de variveis: nmericos, literais, ponto flutuante int, float, double, char, void, declare: nome-do-tipo lista-de-id ; onde: nome-do-tipo uma das palavras chave dos tipos de varireis lista-de-id so os nomes escolhidos para as variveis: int max, min, change, _sys_var1; char nome, endereco;
19

Palavras Reservadas
abstract boolean break extends false final finally float for do double else int interface long native new null implements import instanceof return short static super switch private protected public true try void volatile while throw byte transient case catch char class continue if
20

synchronized default

Operadores Aritmticos
Operador + * / % ++ -Ao Soma (inteiro e ponto flutuante IPF) Subtrao ou troca de sinal IPF Multiplicao IPF Diviso IPF Resto de diviso (inteiro) Sinal Negativo (-unrio) Incremento IPF Decremento IPF
21

Operadores Relacionais e Atribuio


Operador
> >= < <= == != += *= -= /= %=

Ao
Maior do que Maior ou igual a Menor do que Menor ou igual a Igual a Diferente de a+=10 a = a + 10 a*=10 a = a * 10 a-=10 a = a 10 a/=10 a = a / 10 a%=10 a = a % 10
22

Trabalhando com Java


Arquivo: Exemplo1.java public class Exemplo1 { public static void main (String args [] ){

Janelas ou caixa de dilogos


As caixas de dilogos so janelas que em geral so utilizadas para exibir mensagens importantes para o usurio de um aplicativo. A class JOptionPane permite que voc exiba facilmente uma caixa de dilogo contendo informaes chamada dilogo de mensagem. O mtodo showMessageDialog usado para apresentar um texto e esperar por uma confirmao do usurio. O mtodo showInputDialog usado para criar uma janela com uma pergunta, que deve ser respondida pelo usurio em um campo de texto.
23 24

System.out.println(Alo Pessoal!");

} }

JOptionPane
Objeto JOptionPane Import import javax.swing.JOptionPane Propriedade
JoptionPane.showInputDialog(Mensagem) JoptionPane.showMessageDialog(null,Msg1,Msg2,Icone) null (
componente pai, utilizado para especificar a posio de criao da janela)

Tipo de dilogo de mensagem


JOptionPane. ERRO_MESSAGE JOptionPane. INFORMATION_MESSAGE JOptionPane. WARNING_MESSAGE JOptionPane. QUESTION_MESSAGE JOptionPane. PLAIN_MESSAGE dilogo que indica um erro para o usurio do aplicativo dilogo informacional para o usurio do aplicativo dilogo que adverte o usurio do aplicativo dilogo que informa uma pergunta para o usurio dilogo simples com msg sem icone para o usurio do aplicativo
26

Msg1 (Mensagem interna) Msg2 (Mensagem da barra de titulo) Icone (Valor padro que representam icons de mensagems )
25

Botes de Janela

Line Number

DEFAULT_OPTION

Boto OK

YES_NO_OPTION

Botes de Yes e No

YES_NO_CANCEL_OPTION Botes Yes, No e Cancel

OK_CANCEL_OPTION

Botes Ok e Cancel

27

28

Ferramentas

rea de trabalho
rea de Desenvolvimento

Projeto

Navegador

Saida
29 30

Projeto

Projeto

31

32

Projeto
public static void main (
String[] args ) A palavra public significa permitir que o mtodo seja acessado por qualquer outra classe. classe. A palavra static utilizada, quando o mtodo s existe em uma classe, ao invs um para cada objeto. objeto. A palavra void utilizada quando o mtodo no retorna nenhum valor. valor. O mtodo main. main. Representa o mtodo principal, o primeiro a ser executado pela mquina virtual; virtual; a partir deste mtodo que uma aplicao executada. executada.
33

Aplicao Java
intro1.java 01 // Test intro1 Aplicao 02 public class intro1 { 03 public static void main(String[] args){ 04 System.out.println("Hello Java 2006!"); 05 int a = 10; 06 int b = 20; 07 a*=3; 08 int c = a+b; 09 System.out.println("A="+a+"B="+b+"C="+c); 10 } 11}

34

Aplicao Java
public static void main (String[] args ) A funo main o lugar onde o programa comea a execuo public O mtodo main() pode ser acessado por qualquer coisa, inclusive pelo interpretador da tecnologia Java. static Esta palavra chave diz ao compilador que o mtodo main() pode ser usado no contexto da classe. Nenhuma instncia da classe necessria para executar mtodos estticos. void Esta palavra chave indica que o mtodo main() no retorna nenhum valor. A palavra chave static declara que o atributo ou mtodo est associado a uma classe como um todo, e no como uma instncia
35

Operadores Lgicos
Operador && || ! Ao AND (E) OR (OU) NOT (NO)

A 0 0 1 1

B 0 1 0 1

A && B 0 0 0 1

A || B 0 1 1 1
36

CONTROLES DE FLUXO
if ( condio ) { sequencias de instrues ; }else{ sequncias de instrues; } res = (condicao)? s1 : s2 ; for(inicializao; condio; inc/dec) { sequencia de instrues ; }int vet1[] = {10,20,30,40,50}; int vet2[] = new int[5]; for (int i=0; i < 5; i++) { vet2[i] = vet1[i]; System.out.println(vet2[i]); } int a,x; switch (x) { case 1 : a=1; break; case 2 : a=2; break; case 3 : a=3; break; default : a=10; } inicializao; while (condio) { sequencia de instrues ; inc/dec; }
37

Estrutura Condicional
Estrutura condicional simples if if ( condio ) { a condio b falso fimse

sequencias de instrues ; } condio composto de: id operador-relacional id >, <, >=, <=, ==, != verdadeiro sequencias de instrues
38

Estrutura Condicional composto

Aplicao Java
intro2.java 01 // Test intro2 Aplicao 02 public class intro2 { 03 public static void main(String[] args){ 04 int a = 10; 05 int b = 20; 06 if (a > b ) 07 System.out.println("A maior que B"); 08 else 09 System.out.println("B maior que A"); 10 } 11}

sequencia de instrues

if a condio b

sequencia de instrues

fimse if ( condio ) { sequencias de instrues ; }else{ sequncias de instrues; }

Ternrio: res = (condicao)? s1 : s2 ;


39

40

Aplicao Java
intro3.java 01 // Test intro3 Aplicao 02 public class intro3 { 03 public static void main(String[] args){ 04 int a = 10; 05 int b = 20; 06 m = (a > b )? a : b; 07 System.out.println("Maior valor = "+m); 08 } 10 }

Estrutura Condicional
switch (exp_ordinal) { case ord : instruo; break; case ord : instruo; break; case ord : instruo; break; default : instruo; } int a,x; switch (x) { case 1 : a=1; break; case 2 : a=2; break; case 3 : a=3; break; default : a=10; }

41

42

Aplicao Java
public class intro4 { intro4.java public static void main(String[] args){ int a = 4; switch(a){ case 1: System.out.println("Domingo"); break; case 2: System.out.println("Segunda"); break; case 3: System.out.println("Terca"); break; case 4: System.out.println("Quarta"); break; case 5: System.out.println("Quinta"); break; case 6: System.out.println("Sexta"); break; case 7: System.out.println("Sabado"); break; default: System.out.println("NDA"); } System.out.println("Valor = "+a); } }
43

Estrutura de Repetio

inicializao inc/dec

if a condio b

sequencia de instrues

F fimse
44

Estrutura de Repetio
for(inicializao; condio; inc/dec) { sequencia de instrues ; }

Aplicao Java
public class intro5 { public static void main(String[] args){ for(int i=0; i < 10; i++) System.out.println(i); for(int j=10; j > 5; j--) System.out.println(j); for(int k=0; ; k++){ if(k > 5 ) break; System.out.println(k); } for(int a=0, b=5; b < 8; a++, b++) System.out.println("A = "+a+" B = "+b); }
45

intro5.java

inicializao; while (condio) { sequencia de instrues ; inc/dec; }

inicializao; do{ sequencia de instrues ; inc/dec; }while (condio);

46

Aplicao Java
public class intro6 { public static void main(String[] args){ int i = 0; while (i < 10){ System.out.println(i); i++; } int j = 10; while (j > 5) { System.out.println(j); j--; } int k=0; while (true ){ if(k > 5 ) break; System.out.println(k); k++; } } }

Aplicao Java
intro6.java
public class intro7 { public static void main(String[] args){ do{ System.out.println(i); i++; }while (i < 10); int j = 10; do { System.out.println(j); j--; }while (j > 5); int k=0; do{ if(k > 5 ) break; System.out.println(k); k++; }while (true ); } }

intro7.java

47

48

Aplicao Java
testLaco.java class Laco { Laco(){ int i = 1; do{ int m = i % 2; i++; if (m == 0) { continue; } if (i == 10){ break; } System.out.println(i-1); }while(i<20); } } public class testLaco { public static void main(String[] args){ Laco l = new Laco(); } } 49

Aplicao Java
public class intro8 { public static void main(String[] args){ String v1 = "10"; String v2 = "5"; intro8.java

System.out.println("Valor sem conversao de tipos"); System.out.println(v1+v2); int x = Integer.parseInt(v1); int y = Integer.parseInt(v2); System.out.println("Valor com conversao de tipos"); System.out.println(x+y);
} }
50

Aplicao Java
exSwitch.java public class exWhile { public static void main(String[] args){ int j = 10; while ( j > Integer.parseInt(args[0])){ System.out.println(""+j); j--; } } }

Aplicao Java
A palavra chave static utilizada como modificador de variveis, mtodos e classes. String[] args Esse mtodo declara um nico parmetro para o mtodo main, args, e tem o tipo de um array String. Quando esse mtodo chamado, o parmetro args contm os argumentos digitado aps o nome da classe. Greeting hello = new Greeting(); Esta linha de instruo mostra como criar um objeto, referenciado pela varivel hello. hello.greet(); Esta linha demonstra uma chamada de mtodo do objeto.
51 52

Janelas ou caixa de dilogos


As caixas de dilogos so janelas que em geral so utilizadas para exibir mensagens importantes para o usurio de um aplicativo. A class JOptionPane permite que voc exiba facilmente uma caixa de dilogo contendo informaes chamada dilogo de mensagem. O mtodo showMessageDialog usado para apresentar um texto e esperar por uma confirmao do usurio. O mtodo showInputDialog usado para criar uma janela com uma pergunta, que deve ser respondida pelo usurio em um campo de texto.
53

JOptionPane
Objeto JOptionPane Import import javax.swing.JOptionPane Propriedade
JoptionPane.showInputDialog(Mensagem) JoptionPane.showMessageDialog(null,Msg1,Msg2,Icone) null (
componente pai, utilizado para especificar a posio de criao da janela)

Msg1 (Mensagem interna) Msg2 (Mensagem da barra de titulo) Icone (Valor padro que representam icons de mensagems )
54

Tipo de dilogo de mensagem


JOptionPane. ERRO_MESSAGE JOptionPane. INFORMATION_MESSAGE JOptionPane. WARNING_MESSAGE JOptionPane. QUESTION_MESSAGE JOptionPane. PLAIN_MESSAGE dilogo que indica um erro para o usurio do aplicativo dilogo informacional para o usurio do aplicativo dilogo que adverte o usurio do aplicativo dilogo que informa uma pergunta para o usurio dilogo simples com msg sem icone para o usurio do aplicativo
55

Botes de Janela

DEFAULT_OPTION

Boto OK

YES_NO_OPTION

Botes de Yes e No

YES_NO_CANCEL_OPTION Botes Yes, No e Cancel

OK_CANCEL_OPTION

Botes Ok e Cancel

56

Aplicao Java
Eco.java 01 // Classe Eco 02 public class Eco { 03 public static void main (String[] args ) { 04 for (int i=0; i < args.length; i++) 05 System.out.print(args[i] + ); 06 System.out.println(); 07 } 08 }

Declarao de Array
Os arrays so usados para agrupas objetos do mesmo tipo. Os arrays permitem que voc se refira ao grupo de objetos usando um nome comum. Na linguagem de programao Java, um array um objeto, e tal como acontece com outros tipos de classe, a declarao no cria o objeto propriamente dito. Em vez disso, a declarao de um array cria uma referncia que vov pode usar para se referir a um array. A memria real usada pelos elementos do array alocada dinamicamente por uma declarao new ou pelo inicializador de um array. Ao declarar arrays com os colchetes esquerda, os mesmos se aplicam a todas as variveis que esto direita dos colchetes.
58

57

Declarao de Array
Agrupa objetos de dados de um mesmo tipo. Declara arrays de tipos primitivo ou de classe: char ch[]; Point p[] char[] ch; Point[] p; String.charAt(1); String".length(); vetor.length length X length() String names[]; names = new String[3]; names[0] = Ciro; names[1] = Matheus; names[2] = Bruno; String names[] = {Ciro,Matheus,Bruno};
59

Aplicao Java
// *** testArray.java class Array { private char[] ch1, ch2, ch3; public void loadArray() { ch1 = new char[10]; for(int i=0; i<10;i++){ ch1[i]= (char) ('A'+i); public char[] copyArray(){ ch2 = new char[10]; for(int i=0; i<10;i++){ ch2[i]= ch1[i]; } return ch2; }

60

10

Aplicao Java
public void showArray(){ ch3 = new char[10]; ch3 = this.copyArray(); for(int i=0; i<10;i++){
System.out.println("Valor i = "+ch3[i]);

Java Orientao Objetos


A programao OO separa estritamente a noo entre o que deve ser feito e como deve ser feito. O que, descrito como um conjunto de mtodos ( as vezes dados disponveis publicamente) e suas semnticas associadas. Essa combinao mtodos, dados e semntica Conhecido com um contrato entre o projetista da classe e o programador que a utiliza. O como, de um objeto definido por sua classes, a qual de define a implementao dos mtodos que o objeto admite. Cada objeto uma istncia de uma classe. Caractersticas da POO: Abstrao , Polimorfismo, Herana, Encapsulamento.
62

} } } // fim da class Array public class testArray { public static void main(String[] args){ Array arr = new Array(); arr.loadArray(); arr.showArray(); } }
61

Java Orientao Objetos


Abstrao, o mecanismo de programao que oculta os detalhes privados da implementao que esto por detrais das interfaces pblicas. Polimorfismo, se refere a capacidade de reconhecer num objeto particular um outro mais geral. Sobcarga, A forma mais simples de polimorfismo oferecido pela linguagem Java a sobrecarga de mtodos como o mesmo nome com assinatura diferente. Herana, um mecanismo de criarmos novos objetos a partir de outros que j existem, tomando como prontas e disponveis as caractersticas do objeto origem. Isto cria a possibilidade de criarmos vrias classes, hierarquicamente relacionadas. Encapsulamento, indica que podemos utilizar um objeto conhecendo apenas sua interface.
63

Classe
Uma classe um tipo de objeto que pode ser definido pelo programador para descrever uma entidade real ou abstrata. Podemos entender uma classe como um modelo ou especificao para certos objetos. Uma classe contm dois tipos de membros, chamados campos e mtodos. Campos (atributos) so dados que pertencem classe propriamente dita ou aos objetos da classe; eles compem o estado de um objeto ou classe. Mtodos so conjuntos de instrues que operam os campos para manipular o estado. Instanciao, A criao de um objeto. Instanciar significa criar uma instncia da classe. Classe o modelo abstrato de um objeto, uma instncia representa um objeto concreto desta classe.

64

Construtores
Os construtores so mtodos especiais chamado pelo sistema no momento da criao de um objeto, assim sendo o operador new apenas indica que o mtodo especial construtor de uma certa classe ser utilizado Um construtor um conjunto de instrues criadas para inicializar uma instncia. Podem ser passados parmetros para o construtor, da mesma maneira que se faz para um mtodo. Atravs dos construtores podemos criar objetos concretos, isto , estruturas de dados e operaes que representam um objeto do mundo real, a partir de uma classe (um modelo abstrato de objetos de um certo conjunto). Os construtores no so Herdados (Herana) Os construtores no tem tipo de retorno.
65

Projeto
POO - CLASSE

Modificadores private, public, protected. protected. Atributos Mtodos Construtores Herana


66

11

Dilogo

Dilogo
public class Math { public int fat(int n){ if (n ==1){ return 1; }else{ return (n * fat(n - 1)); } } } public class Analise extends Math { public float arranjo(int n, int r){ int vn, vnr; vn = fat(n); vnr = fat(n-r); return(vn/vnr); } }

public static void main(String[] args) { int x = Integer.parseInt(JOptionPane.showInputDialog("Enter")); int y = Integer.parseInt(JOptionPane.showInputDialog("Enter")); Analise ana = new Analise(); float ar = ana.arranjo(x, y); System.out.println(ar);

68

Projeto

Projeto

69

70

Projeto
// campos

Exemplo

Semaforo pt = new Semaforo(); pt.ligar(); pt.aumenta(); int x = pt.obtemStatus(); System.out.println(x);

public class Semaforo { // Semaforo.java

int sDESL=0, sSOB=1, sLIG=1, sDES=1; private int status; // construtor


public Semaforo ( ) { status = sDESL; } // mtodos public void ligar ( ) { status = sLIG; } public void desligar ( ) { status = sDESL; } public void aumenta ( ) { status += sSOB; } public void abaixa ( ) { status -= sDES; } public int obtemStatus ( ) { return status; }
72

}
71

12

Aplicao Java
Greeting.java 01 // Greeting class declaration 02 public class Greeting { 03 public void greet() { 04 System.out.println("Hi Greeting ..."); 05 } 06 } TestGreeting.java 01 // Test Greeting Aplication 02 public class TestGreeting { 03 public static void main (String[] args ) { 04 Greeting hello = new Greeting(); 05 hello.greet(); 06 } 07 }
73

Construtores
Quando usamos a palavra new, estamos construindo um objeto. Quando o comando new chamado, executa o construtor da classe. O construtor da classe um bloco declarado com o mesmo nome que a classe. Quando no e declarado nenhum construtor na sua classe, o Java cria um para voc. Esse construtor chamando de construtor default. Ele no recebe nunhum argumento, e o corpo vazio. A partir do momento que voc declara um construtor, o construtor default no mais fornecido.
74

Aplicao Java
// * Arquivo Classe1.java public class Classe1 { public Classe1() { } } // * Arquivo Classe2.java public class Classe2 { public Classe2() { System.out.println(Ola Mundo); } }
75

Aplicao Java
Dog.java
// * Arquivo Dog.java UML/Dog public class Dog { -weight :int private int weight; //------------------// +Dog() +getWeight():int public Dog() { +setWeight(int):void weight = 1; } public int getWeight(){ return weight; } public void setWeight(int newWeight){ weight = newWeight; } }

Ctrl Espao

76

UML/Livro

Aplicao Java
testDog.java
// Arquivo testDog.java public class testDog { public static void main(String[] args){ Dog d = new Dog(); System.out.println("Dog Weight ="+d.getWeight()); d.setWeight(52); System.out.println("Dog Weight ="+d.getWeight()); } }

Aplicao Java

-titulo : String -pag : int -preco : float +Livro()

// * Livro.java +mostrarDados():void public class Livro{ private String titulo = Desenvolvimento Java; private int pag = 208; private float preco = 49.50; public Livro (){ } public void mostrarDados(){ System.out.println(Titulo = +titulo+\nPagina = +pag+\nPreco = +preco); } } // * Main.java public class Main{ public static void main(String [] arg){ Livro li = Livro(); li.mostrarDados(); } }
78

77

13

Aplicao Java
// * Livro1.java public class Livro1{ UML/Livro1 private String titulo; -titulo : String private int pag; -pag : int private float preco; -preco : float public Livro1 (){ titulo = Desenvolvimento Java; +Livro1() +mostrarDados():void pag = 208; preco = 49.50; } public void mostrarDados(){ System.out.println(Titulo = +titulo+\nPagina = +pag+\nPreco = +preco); } } // * Main.java public class Main{ public static void main(String [] arg){ Livro1 li = Livro1(); li.mostrarDados(); } }

Aplicao Java

UML/Livro2

79

-titulo : String -pag : int // * Livro2.java -preco : float public class Livro2{ private String titulo; +Livro2(String, int, float) private int pag; +mostrarDados():void private float preco; public Livro2 (String ti, int pa, float pr){ titulo = ti; pag = pa; preco = pr; } public void mostrarDados(){ System.out.println(Titulo = +titulo+\nPagina = +pag+\nPreco = +preco); } } // * Main.java public class Main{ public static void main(String [] arg){ Livro2 li = Livro2(Desemvolvimento,208,49.50); li.mostrarDados(); } }

80

Polimorfismo
A palavra polimorfismo vem do grego poli morfos e significa muitas formas. Na orientao objetos representa uma caracterstica onde se admite tratamento idntico para formas diferentes baseado em relaes de semelhana. A forma mais simples de polimorfismo oferecido pela linguagem Java a sobrecarga de mtodos como o mesmo nome com assinatura diferente. A assinatura de um mtodo uma lista que indica os tipos de dados e seus argumentos, sendo assim mtodos com mesmo nome so considerados diferentes se recebem um diferente nmero ou tipo de argumentos (assinatura diferentes. Sobrecarga de Construtores, ou seja, uma classe possui mais de um construtor, onde cada um diferenciado por sua assinatura. Atravs dos mecanismos de encapsulamento, novos mtodos e atributos podem ser adicionados sem alterao das interfaces de programao e de usurio existentes de uma certa classe, constituindo um poderoso mecanismo de extenso de classes.

SOBRECARGA met met dos


UML/Sobrecarga

81

// * Sobrecarga.java public class Sobrecarga { +twice(int) : long public long twice(int x) { +twice(long) : long return 2 * (long) x; } twice(String) : long + public long twice(long x) { +somatorio(int): long return 2 * x; } +somatorio(int, int):long public long twice(String x) { return 2 *(long)Integer.parseInt(x); } public long somatorio (int max){ int t=0; for (int i=1; i<=max; i++) t+=i; return t; } public long somatorio (int max, int incr){ int t=0; for (int i=1; i<=x; i+= incr) t+=i; return t; } 82 }

SOBRECARGA - construtores
UML/Sobrecarga1

Herana
A herana o mais importante mecanismo do polimorfismo, uma tcnica onde uma classe passa a utilizar atributos e operaes definidas em uma outra classe especificada como seu ancestral. A herana o compartilhamento de atributos e operaes entre classes baseado num relacionamento hierrquico do tipo, um contm definies (bases) que podem ser utilizadas nas novas classes (derivadas) : pai filho. Todos atributos e operaes disponveis na classe base so aplicveis para as classes derivadas. Uma classe derivada pode modificar a implementao de alguma operao da classe base ou adicionar novas mtodos ou atributos.
84

// * Sobrecarga1.java -x : int public class Sobrecarga1 { private int x; +Sobrecarga1() public Sobrecarga1() { +Sobrecarga1(int) +Sobrecarga1(int, int) x = 0; } public Sobrecarga1(int a) { x = a; } public Sobrecarga1(int a, int b){ x = a + b; } }
83

14

Herana
A herana permite que novas classes sejam criadas e adicionadas a uma hierarquia sem a necessidade de qualquer modificao do cdigo existente das classes e das aplicaes que utilizam estas classes pois cada classes define estritamente seus prprios mtodos e atributos. As novas classes adicionadas a hierarquia podem estender, especializar ou mesmo restringir o comportamento das classes originais. Uma subclasse no herda o construtor da superclasse. A herana um mecanismo de especializao.
85

Herana
O acesso atributos e operaes declarados em uma classe base por parte das suas classes derivadas no irrestrito. Tal acessibilidade depende dos nvel de acesso permitido atravs dos especificadores private, protected package e public. Ao especificamos acesso privado indicamos que o atributo ou operao da classe de uso interno e exclusivo da implementao da prpria classe no podendo ser utilizado externamente as classes que os declaram. Acessos protected e public, servem para defenir membros destinados a interface de programao e de usurio.
86

Herana
Os membros public podem, sem restrio ser utilizados por instncias da classe, por subclasses e por instncias das subclasses. Membros protected podem ser utilizados apenas na implementao de subclasses, no sendo acessveis por instncias da classe ou por instncias das subclasses. Os membros que no recebem as especificaes private, protected ou public so considerados como do package, isto , so como membros pblicos para classes do mesmo pacote mas comportam-se como membros privados para classes de outros pacotes. Esta modalidade de acesso visa facilitar a construo de conjuntos de classes correlacionadas atravs de pacotes. O acesso package considerado default pelo Java.
87

Aplicao Java
UML/ A // * A.java -a : int public class A { private int a = 10; +show_A() : void public A() { } public void show_A(){ System.out.println("Mostra metodo A = "+a); } } UML/ B // * B.java -b : int public class B extends A{ private int b = 20; +show_B() : void public B() { } public void show_B(){ show_A(); //mtodo na Classe A (herana) System.out.println("Mostra metodo B = "+b); } }

88

Aplicao Java
UML/ C // * C.java -c : int public class C extends B{ private int c = 30; +show_C() : void public C() { } public void show_C(){ show_A(); // mtodo na Classe A (herana) show_B(); // mtodo na Classe B (herana) System.out.println("Mostrar metodo C = "+c); } }

Aplicao Java
UML/ Empregado -nome : String // * Empregado.java -salary : double public class Empregado { -idade : int private String name; + Empregado() private double salary; + setEmpregado(String, double, int) : void private int idade; + getInfo():String public Empregado() { } public void setEmpregado(String n, double s, int i){ this.name = n; this.salary = s; this.idade = i; } public String getInfo(){
return "Nome: "+name+"\nSalario: "+salary+"\nIdade: "+idade;

// * Main.java public class Main{ public static void main(String[] args) { C mc = new C(); mc.show_C(); } }
89

} }
90

15

Aplicao Java
UML/ Departamento -dpto : String +Departamento() +setDepartamento(String) : void +getInfo() : String

Aplicao Java
// * Main.java public class Main{ public static void main(String[] args) { Departamento de = new Departamento(); de.setDepartamento("Financeiro"); String ss = de.getInfo(); System.out.println(ss); } }

// * Departamento.java public class Departamento extends Empregado { private String dpto; public Departamento() { } public void setDepartamento(String d){ this.dpto = d; setEmpregado("Ronaldo",305.50,34); } public String getInfo(){ String s = this.dpto+"\n"+super.getInfo(); return (s); } }
91

92

16

Potrebbero piacerti anche