Professional Documents
Culture Documents
Professores: Rejane Costa Figueiredo Georges Amvame-Nze Andr Barros de Sales Luiz Carlos M. Ribeiro
Sumrio
Java ao mesmo tempo uma linguagem e um ambiente de programao (Java Enterprise Edition - JEE); Criada pela Sun Microsystems, foi inicialmente destinada a pequenos dispositivos eletrnicos e quase fracassou; O mais importante voc saber que inicialmente a linguagem Java no inclua a internet em suas pretenses; Hoje tem se mostrado a linguagem ideal para desenvolvimento para internet e computao distribuda.
Java uma linguagem de programao totalmente orientada a objetos (OO); Seu funcionamento, no que diz respeito ao desenvolvimento, semelhante a outras linguagens: DIGITAR, COMPILAR, EXECUTAR e DEPURAR; Mas como j vimos, uma das poucas, seno a nica linguagem de programao que permite ao programador criar um nico cdigo que roda sem alterao em qualquer computador que possua uma Java Virtual Machine instalada; justamente a JVM ou Mquina Virtual Java o segredo por trs da caracterstica de multiplataforma, apresentada pelo ambiente de desenvolvimento Java.
Compilador Java
O cdigo fonte um arquivo digitado em qualquer editor de texto puro e salvo com extenso .java
Compilador Javac
O compilador Java gera um arquivo binrio com o mesmo nome do arquivo gravado com a extenso.java. Esse arquivo o programa em Java e pode ser executado em qualquer mquina que possua a Java Virtual Machine instalada. como se tivssemos um computador dentro do outro (emulador).
javadoc
Instalar o JDK apropriado para o seu ambiente. A ltima verso homologada encontra-se em: www.javasoft.com www.java.sun.com Inicializar apropriadamente as variveis de ambiente. P.exemplo: PATH=%PATH%;C:\Program Files\Java\jdk1.5.0\bin;
10
11
12
#3
#1
#2
13
14
15
16
17
18
19
20
21
22
23
24
// Comentario de uma linha public class HelloInternet { public static void main (String args[]) { System.out.println("Hello Internet!"); } }
25
Certifique-se de ter adicionado a sua lista de paths: o path do compilador e interpretador Java, Javac e Java respectivamente; Crie o arquivo ao lado em um diretrio qualquer e salve com o nome: HelloInternet.Java; Chame o compilador HelloInternet.Java; Java para este arquivo: Javac
Seu diretrio deve ter recebido um novo arquivo aps essa compilao: HelloInternet.class; Chame o interpretador Java para este arquivo (omita a extenso .class de arquivo): Java HelloInternet; Observe o resultado na tela: Hello Internet!
26
// Comentario de uma linha // Comentario de uma linha public class HelloInternet public class HelloInternet { { public static void main (String args[]) public static void main (String args[]) { { System.out.println("Hello Internet!"); System.out.println("Hello Internet!"); } } } }
27
public um especificador, por enquanto guarde public class como o incio da declarao de uma classe. Toda classes sero declaradas assim por enquanto.
// Comentario de uma linha // Comentario de uma linha public class HelloInternet public class HelloInternet { { public static void main (String args[]) public static void main (String args[]) { { System.out.println("Hello Internet!"); System.out.println("Hello Internet!"); } } } }
28
HelloInternet
o nome dado a esta classe. O "abre chaves" marca o incio das declaraes da classe que so os atributos e mtodos. Esta classe s possui uma declarao, a do mtodo main, note que um mtodo, ao contrrio de C++, s pode ser declarado {internamente} a classe a qual pertence, evitando as confuses sobre "escopo". Desta forma, todo pedao de cdigo em Java deve pertencer ao abre chaves, fecha chaves da definio de uma classe. // Comentario de uma linha // Comentario de uma linha public class HelloInternet public class HelloInternet { { public static void main (String args[]) public static void main (String args[]) { { System.out.println("Hello Internet!"); System.out.println("Hello Internet!"); } } } }
29
public
um qualificador do mtodo que indica que este acessvel externamente a esta classe (para outras classes que eventualmente seriam criadas), no se preocupe com ele agora, apenas declare todos os mtodos como public.
// Comentario de uma linha // Comentario de uma linha public class HelloInternet public class HelloInternet { { public static void main (String args[]) public static void main (String args[]) { { System.out.println("Hello Internet!"); System.out.println("Hello Internet!"); } } } }
30
static
um outro qualificador ou "specifier", que indica que o mtodo deve ser compartilhado por todos os objetos que so criados a partir desta classe; Os mtodos static podem ser invocados, mesmo quando no foi criado nenhum objeto para a classe, para tal deve-se seguir a sintaxe: <NomeClasse>.<NomemetodoStatic>(argumentos);. Retornaremos a esta explicao mais tarde, por hora voc precisa saber que particularmente o mtodo main precisa ter essa qualificao porque ele chamado sem que se crie nenhum objeto de sua classe (a classe HelloInternet). // Comentario de uma linha // Comentario de uma linha public class HelloInternet public class HelloInternet { { public static void main (String args[]) public static void main (String args[]) { { System.out.println("Hello Internet!"); System.out.println("Hello Internet!"); } } } }
31
void
Semelhante ao void C++ ou C, o valor de retorno da funo, quando a funo no retorna nenhum valor ela retorna void, uma espcie de valor vazio que tem que ser especificado.
// Comentario de uma linha // Comentario de uma linha public class HelloInternet public class HelloInternet { { public static void main (String args[]) public static void main (String args[]) { { System.out.println("Hello Internet!"); System.out.println("Hello Internet!"); } } } }
32
// Comentario de uma linha // Comentario de uma linha public class HelloInternet public class HelloInternet { { public static void main (String args[]) public static void main (String args[]) { { System.out.println("Hello Internet!"); System.out.println("Hello Internet!"); } } } }
33
(String args[])
o argumento do mtodo main e por consequncia do programa todo, ele um vetor de Strings que formado quando so passados ou no argumentos atravs da invocao do nome do programa na linha de comando do sistema operacional, exemplo: Java HelloInternet argumentotexto1 argumentotexto2 // Comentario de uma linha // Comentario de uma linha public class HelloInternet public class HelloInternet { { public static void main (String args[]) public static void main (String args[]) { { System.out.println("Hello Internet!"); System.out.println("Hello Internet!"); } } } }
34
...
"Abre chaves" e "fecha chaves". Para quem no conhece C ou C++, eles podem ser entendidos como algo semelhante ao BEGIN END de Pascal, ou seja: delimitam um bloco de cdigo.
// Comentario de uma linha // Comentario de uma linha public class HelloInternet public class HelloInternet { { public static void main (String args[]) public static void main (String args[]) { { System.out.println("Hello Internet!"); System.out.println("Hello Internet!"); } } } }
35
System.out.println("Hello Internet!");
Chamada do mtodo println para o atributo out da classe System, o argumento uma constante do tipo String para imprimir a cadeia "Hello Internet!" e posicionar o cursor na linha abaixo; Por hora guardar esta linha de cdigo como o comando para imprimir mensagens na tela, onde o argumento que vem entre aspas a String a ser impressa. // Comentario de uma linha // Comentario de uma linha public class HelloInternet public class HelloInternet { { public static void main (String args[]) public static void main (String args[]) { { System.out.println("Hello Internet!"); System.out.println("Hello Internet!"); } } } }
36
Variveis e mtodos iniciam com letras minsculas; Classes iniciam com letras maisculas; Nome composto: utilizar letras maisculas para as iniciais das palavras que seguem a primeira; Letras maisculas para as constantes.
37
Comentrios
H trs formas de inserir comentrios: // comentrios em uma linha /* comentrios em uma ou mais linhas */ /** documentando comentrios */ quando colocado Imediatamente antes da declarao (de uma funo ou varivel), indica que o comentrio poder ser includo automaticamente em uma pgina html (gerado pelo comando javadoc).
38
Descritores do javadoc
@param @return @exception @see @since <nome> <Descrio do parmetro> Obs.: (incluir uma descrio para cada parmetro) <Descrio do retorno> <nome> <Descrio da exceo lanada pelo mtodo> <nome do hipertexto a ser relacionado> <indicar a verso da incluso deste membro>
39
Exemplo de javadoc
/** * Programa para exemplificar o javadoc. */ public class HelloInternet { /** * Mtodo <code>main</code>. Determina o incio da execuo. * @param args Recebe um array de elementos do tipo String que * ser passado na linha de comando. */ public static void main (String args[]) { System.out.println("Hello Internet!"); } }
40
Modificadores de Acesso
public private protected static
Outros Modificadores
abstract final
41
static final int NUM = 10; public abstract class Profissional { ... } private int idade; public int getIdade(); protected int calculaIdade();
42
Os comandos so terminados com ponto-e-vrgula. Um bloco delimitado por chaves - { e } e constitui um comando composto. O espao em branco permitido entre elementos do cdigo fonte, em qualquer lugar e em qualquer quantidade. So considerados espao em branco o espao, o tab (\t) e mudana de linha (\n). { int x; x = 23 * 54; }
43
Identificadores
O identificador comea com uma letra, hfen-caixa-baixa ( _ ), ou smbolo dlar ($). Os subsequentes caracteres podem conter dgitos. Caracteres maisculo e minsculo so diferentes e no tem tamanho mximo. Identificadores vlidos: identifier userName User_name userName _sys_var1 $change Utilizar somente caracteres ascii (porque o unicode pode suportar caracteres diferentes com a mesma representao), no utilizar palavra reservada e evitar nome iniciados com $ (por causa das variveis de ambiente do Sistema Operacional).
44
Palavras reservadas
abstract boolean break byte case catch char class continue default
implements import instanceof int interface long native new null package
private protected public return short static super switch synchronized this
Nota: atualmente as seguintes palavras reservadas no so utilizadas: cast, const, future, generic, goto, inner, operator, outer, rest, var.
45
Tipos
Tipo boolean char byte short int long float double void
Wrapper Boolean Character Byte Short Integer Long Float Double Void
46
// atribuindo valores a varivel // ponto flutuante // declarando e atribuindo double // booleano // declarando varivel caracter // atribuindo um valor char // Constantes // somente admite uma atribuio
47
Operadores Aritmticos
Operador + * / %
Uso op1 + op2 op1 - op2 op1 * op2 op1 / op2 op1 % op2
Descrio Retorna a soma de op1 e op2. Retorna a subtrao de op1 por op2. Retorna a multiplicao de op1 por op2. Retorna a diviso de op1 por op2. Retorna o resto da diviso de op1 por op2.
48
Operadores Aritmticos
Operador + ++ ++ ---
Descrio Promove op para int, se for byte, short ou char. Retorna op aritmeticamente negado. Retorna o valor de op, depois o incrementa de 1. Incrementa op de 1,depois retorna o valor. Retorna o valor de op, depois o decrementa de 1. Decrementa op de 1,depois retorna o valor.
49
Operadores Aritmticos
Operador + ++ ++ ---
Descrio Promove op para int, se for byte, short ou char. Retorna op aritmeticamente negado. Retorna o valor de op, depois o incrementa de 1. Incrementa op de 1,depois retorna o valor. Retorna o valor de op, depois o decrementa de 1. Decrementa op de 1,depois retorna o valor.
50
Operadores Relacionais
Uso op1 > op2 op1 >= op2 op1 < op2 op1 <= op2 op1 == op2 op1 != op2
Retorna verdadeiro se op1 for maior que op2. op1 for maior que ou igual ao op2. op1 for menor que op2. op1 for menor que ou igual ao op2. op1 igual ao op2. op1 diferente do op2.
51
Operadores Lgicos
Operador && ||
Retorna verdadeiro se op1 e op2 forem true. S avalia op2, se op1 for true. op1 ou op2 for true (ou ambos).S avalia op2, se op1 for false. op for false. op1 e op2 forem true. Sempre avalia op1 e op2. op1 ou op2 for true (ou ambos). Sempre avalia op1 e op2. op1 diferente do op2.
! & | !=
52
Controle de Fluxo
Comando if-else, switch-case for, while, do-while break, continue, label: , return
53
Controle de Fluxo - if
if
54
Exemplo de uso - if
public class UsoIF { public static void main (String args[]) { int a = 10; int b = 20; int c; if (a > b) c = a; else c = b; System.out.println("O maior valor = " + c); } }
55
ou
do comando ou bloco while(expresso booleana);
56
57
58
for(expresso inicial; expresso booleana; expresso de iterao) comando ou bloco de expresso inicial; while(expresso booleana) { comando ou bloco de expresso de iterao; }
59
60
switch(expresso1) { case expresso2: comando ou bloco break; . . . case expresson: comando ou bloco break; default: comando ou bloco break; }
61
62
Sumrio
63
Prover mecanismos para visualizar a complexidade do desenvolvimento de software da mesma forma que visualizamos a complexidade do mundo ao nosso redor; Acelerar o desenvolvimento de softwares com base na modularidade e acoplamento; Melhorar a qualidade do software desenvolvido.
64
definem a estrutura e o comportamento de um tipo de objeto; atuam como templates; permitem a instanciao de um ou mais objetos de um mesmo tipo.
Classe Automvel
66
Classe
Empregado
Objetos
Joaquim
Jos
Maria
67
Classe
Empregado
Objetos
Joaquim
Jos
Maria
68
Um objeto uma representao abstrata de uma entidade do mundo real, que tem um identificador nico, propriedades embutidas e a habilidade de interagir com outros objetos e consigo mesmo. O estado do objeto um conjunto de valores que os atributos do objeto podem ter em um determinado instante do tempo.
69
70
Mtodos
Mtodos
Atributos
Mtodos
Mtodos
71
72
73
O primeiro comando, a declarao, aloca apenas o espao suficiente para a referncia. O segundo, aloca o espao para os atributos do objeto gol; Somente aps a criao do objeto que seus membros (atributos e mtodos) podem ser referenciados.
74
75
76
77
Alocao e layout Finalmente, atribuindo a varivel referncia o endereo do objeto alocado. gol = new Automovel(); gol 0x01abdfe String modelo String cor int ano ? ? 0
78
79
80
instncia
atributos do objeto
Nmero de patas
81
82
Mtodos
83
Sumrio
84
3. GUI
2.1. Objetivos.
Prover mecanismos para visualizar a complexidade do desenvolvimento de software da mesma forma que visualizamos a complexidade do mundo ao nosso redor; Acelerar o desenvolvimento de softwares com base na modularidade e acoplamento; Melhorar a qualidade do software desenvolvido.
85