Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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/
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
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
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
14
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
// comentrio de uma linha /* comentrio de mltiplas linhas */ /** comentrio de documentao * tambm pode ter mltiplas linhas *****************************/
Interpretao
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
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
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)
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
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
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
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
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
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
Botes de Janela
DEFAULT_OPTION
Boto OK
YES_NO_OPTION
Botes de Yes e No
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]);
} } } // fim da class Array public class testArray { public static void main(String[] args){ Array arr = new Array(); arr.loadArray(); arr.showArray(); } }
61
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
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
}
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
// * 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.
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