Вы находитесь на странице: 1из 74

JAVA BSICO

rico Domingues de Oliveira erico.domingues@gmail.com

Cronograma proposto
DIA
01 02 03 04 05 1. 2. 4. 4. Introduo Java Introduo a programao orientada a objetos Fundamentos da linguagem Java (1.4) Lgica de Programao X Java

ASSUNTO

10. Arrays 11. Collections 12. Map 12. Excees 13. Novos recursos da linguagem Java (1.5) 12. Threads 18. 19. 20. 21. AWT Componentes grficos Layout Eventos

06 07 08

09 10

20. Applet 21. Manipulao de arquivos 20. Contedo Livre

Introduo a Java
O que Java? Origem; 1991 Grupo de funcionrios da Sun (James Gosling, Patrick Naughton e Mike Sheridan) criam o Projeto Green Criao de uma plataforma de software para aparelhos eletrnicos; Desenvolvimento do Sistema Operacional GreenOS; Criao da linguagem de programao Oak para operar sob o GreenOS; O projeto no obteve sucesso! O mercado para aparelhos eletrnicos no cresceu tanto quanto a Sun esperava;

Introduo a Java
1993 Direcionamento de aplicaes Oak para a Internet, com a inteno de substituir as aplicaes em CGI (Common Gateway Interface); A CGI permite que um navegador execute programas residentes no servidor web, que podem processar dados recebidos de formulrios de pginas HTML 1994 Oak rebatizado como Java (cidade de origem de um tipo de caf); 1995 A Sun anuncia o lanamento da tecnologia. Cenrio atual; Viso futura.

Introduo a Java
A quem se destina Java? Empresas; Desenvolvedores; Clientes(consumidores).

Introduo a Java
Tecnologias Java J2SE; J2EE; JME; FX.

Introduo a Java
Quais as vantagens na utilizao de Java em minha corporao? Fcil aprendizado; Orientada a objetos; Robusta; Abrangente; Performtica; Segura; Coleta de lixo; Multiplataforma Escreva uma vez rode em qualquer lugar; Abrangente comunidade.

Introduo a Java
Conceitos JRE; SDK; APIS;

Introduo a Java

Introduo a Java
Ferramentas de desenvolvimento J2SDK; Notepad; Eclipse, Netbeans, etc..

Introduo a Java

FIM

Introduo a programao orientada a objetos


Conceitos: Classe Estrutura que encapsula e abstrai um conjunto de objetos com caractersticas semelhantes; Composio: Construtores; Destrutuores (no presente em Java); Propriedades; Eventos.

Introduo a programao orientada a objetos


Atributo: Varireis de instncia contidas na classe: Compe o estado; Guiam o comportamento Mtodo: So funes utilizadas para acesso a um determinado comportamento de uma classe; Construtor: mtodo especial invocado na instanciao de uma classe;

Introduo a programao orientada a objetos


Herana (generalizao) : Possibilita uma classe aproveitar o comportamento de outra classe (ancestral). Permite a reutilizao e extenso do cdigo . Uma hierarquia de herana ilimitada. As vezes necessrio redefinir o comportamento de mtodos herdados. Isto feito sobrescrevendo o mtodo herdado (overriding).

Introduo a programao orientada a objetos


Pacotes: Forma de organizao das classes de um determinado projeto; Auxiliam na determinao de uma estrutura hierrquica. Permitindo a organizao por camadas, nveis de importncia, etc.; Objeto: Representa a instncia de uma classe pronta para utilizao; Por meio dos objetos mtodos e atributos podem ser acessados.

Introduo a programao orientada a objetos


Mensagem: Representa a chamada a um determinado objeto por meio da invocao de um dos seus mtodos; Um caso especial o acesso a mtodos estticos que podem ser acionados diretamente via classe.

Introduo a programao orientada a objetos


Associao: Relacionamento entre classes constituindo um mecanismo que possibilita a utilizao de recursos de um objeto em outro objeto. Agregao: Tipo de relacionamento em que as partes, objetos de relacionamento, possuem vida quando separados (independncia); Composio: Tipo de relacionamento em que as partes possuem um alto grau de dependncia entre as mesmas (dependncia);

Introduo a programao orientada a objetos


Abstrao: Capacidade que uma determinada de centralizar operaes; As especializaes sero delegadas as suas subclasses.

Introduo a programao orientada a objetos


Polimorfismo: O sentido da palavra polimorfismo o uso de um nico nome para definir vrias formas distintas de atuao; O objeto emissor no precisa saber como o objeto receptor implementa a mensagem.; Um tipo particular de polimorfismo a sobrecarga de operadores;

Introduo a programao orientada a objetos


Polimorfismo (continuao...) Sobrecarregar(overloading) Permite a existncia de vrios mtodos de mesmo nome, porm com assinaturas diferentes; resolvido pelo compilador em tempo de compilao. Sobrepor(overriding) Permite a derivao de classes por meio da (reescrita) de mtodos existentes; resolvido em tempo de execuo.

Introduo a programao orientada a objetos


Interface: Pode ser encarada como um contrato assinados entre as classe que implementam uma determinada interface; Podem ser implementadas por qualquer classe independentemente da hierarquia ou pacote; Pode ser encarada como uma classe 100% abstrata; NO uma classe.

Introduo a programao orientada a objetos


Encapsulamento: Separao de aspectos internos e externos de um objeto; Limitadores de visibilidade: Pblicos; Privados; Protegidos.

Introduo a programao orientada a objetos


Pacotes: Forma de organizao das classes de um determinado projeto; Auxiliam na determinao de uma estrutura hierrquica. Permitindo a organizao por camadas, nveis de importncia, etc.;

Introduo a programao orientada a objetos


Objeto: Representa a instncia de uma classe pronta para utilizao; Por meio dos objetos mtodos e atributos podem ser acessados.

Introduo a programao orientada a objetos

FIM

Fundamentos da linguagem Java


Instalao da SDK Realizado via instaladores, os mais comuns so os arquivos .exe no Windows e .tar no Unix; Estrutura ps-instalao

Fundamentos da linguagem Java


Instalao da SDK (continuao...) bin: arquivos de execuo (compilao, depurao, monitoramento, etc.); demo: exemplos (.class) distribudos com a SDK; include:arquivos escritos em C necessrios a integrao Java X C ; jre: Ambiente de execuo; lib: APIs (bibliotecas) nativas da distribuio da SDK; sample: exemplos (.java) distribudos com a SDK

Fundamentos da linguagem Java


Instalao da SDK (continuao...) Configuraes adicionais ps instalao: PATH: Define o diretrio raiz para a SDK de utilizao padro; CLASSPATH: Informa ao classloader a localizao das classes a serem carregadas para cada uma das instncias de JVM; JAVA_HOME: Define a SDK padro para utilizao.

Fundamentos da linguagem Java


Instalao Eclipse Realizada via descompactao do arquivo de distribuio; Configuraes ps-instalao: JRE; Etc..

Fundamentos da linguagem Java


Entendendo o ciclo bsico: 1 - Gerao dos cdigos fonte (criao do arquivo .java); 2 - Compilao dos cdigos fonte para gerao do arquivo de bytecodes (arquivos .class); Os bytecodes sero executados pela Java Virtual Machine (JVM) camada que simula um computador, ocultando o SO e hardware; A JVM responsvel pelas caractersticas de portabilidade do cdigo Java

Fundamentos da linguagem Java


Entendendo o ciclo bsico (continuao...) 3 - Carregamento do programa .class em memria load class 4 - Verificao dos bytecodes 5 - Execuo dos bytecodes, realizando as aes determinadas pelo programa: Compilao JIT (just-in-time) misto de interpretao e compilao, traduzindo os bytecodes para linguagem de mquina

Fundamentos da linguagem Java

Fundamentos da linguagem Java

Fundamentos da linguagem Java


Estrutura de um programa public class Aula1 { //Mtodo public static void main(String[] args) { System.out.print("3 + 5 = " + (3+5)); } }

Fundamentos da linguagem Java


Estrutura da linguagem Comentrios: // Comentrio de linha; /*Comentrio de uma ou mais linhas*/; /**Comentrio de documentao */ (utilizado pela SDK para gerao de javadocs);

Fundamentos da linguagem Java


Ponto e vrgula, blocos e espao em branco: ; utilizado a cada trmino de comando/ operao; Blocos salvo raras excees so iniciados por { e finalizados por }; Espaos em branco podem ser utilizados para uma melhor visualizao do cdigo.

Fundamentos da linguagem Java


Identificadores: Nomes dado as classes; Deve ser iniciado letra maiscula, por _ ou $; Java case sensitive portanto: Classe != CLASSE; Classe != classe.

Fundamentos da linguagem Java


Palavras reservadas: Palavras que no podem ser utilizadas como identificadores:

Fundamentos da linguagem Java


Tipos de dados: Tipos primitivos
int (tipo numrico), boolean (tipo lgico), char (tipo textual);

Objetos
Integer (tipo numrico), Boolean (tipo lgico), String (tipo textual);

Tabela de tipos numricos

Fundamentos da linguagem Java


Exemplos: int inteiro = 1; //Tipo primitivo int Integer inteiroObjeto = new Integer(1); //Objeto Integer String curso = Java; /* Objeto String*/; String curso2 = new String(Java 2); /* Objeto String via construtor explcito*/ boolean boleano = true; //boleano primitivo Boolean boleano2 = new Boolean (true); //Objeto boleano

Fundamentos da linguagem Java


Operadores: Lgicos

Exemplos: a == b; x >= y; z != h;

Fundamentos da linguagem Java


Operadores Matemticos

Exemplos int inteiro = 1; int soma = inteiro + 5; int divisao = soma / 2;

Fundamentos da linguagem Java


Operadores Binrios utilizados para manipulao de bits;

Fundamentos da linguagem Java


Operadores Binrios Exemplos Right shift
128 >> 1 = 128/21 = 64; 256 >> 4 = 256/24 = 64.

Left shift
128 << 1 = 128*21 = 256; 256 << 4 = 256*24 = 4096.

Outros
numero=34&435; //Resultado = 34 numero=34^46; //Resultado = 12 numero=436|547; //Resultado = 951

Fundamentos da linguagem Java


Operadores Pr-incremento incrementa o valor de uma varivel antes da realizao de uma operao
Sintaxe: ++variavel ; Exemplo: int a=3, b=5, c= a + ++b; //Resultado = 9

Ps-incremento - incrementa o valor de uma varivel aps da realizao de uma operao


Sintaxe: variavel++ Exemplo int a=3, b=5, c= a + b++; //Resultado = 8

Fundamentos da linguagem Java


Operadores Pr-decremento decrementa o valor de uma varivel antes da realizao de uma operao
Sintaxe: --variavel ; Exemplo: int a=3, b=5, c= a + --b; //Resultado = 7

Ps-decremento - decrementa o valor de uma varivel aps da realizao de uma operao


Sintaxe: variavel- Exemplo int a=3, b=5, c= a + b--; //Resultado = 8

Fundamentos da linguagem Java


Operadores Da linguagem Java

Exemplos Integer inteiro = new Integer(5); Integer inteiro2 = new Integer(6); inteiro instanceof inteiro2;

Fundamentos da linguagem Java


Voltando a estrutura do um programa anterior public class Aula1 { public static void main(String[] args) { System.out.print("3 + 5 = " + (3+5)); } }

Fundamentos da linguagem Java


Onde: public class Aula1 Define a declarao de uma classe public: Indica que a classe acessvel externamente (por outras classes que eventualmente seriam criadas); class: Indicao que o artefato uma classe; Aula1: Nome da classe.

Fundamentos da linguagem Java


public static void main(String[] args) Define a declarao de um mtodo para a classe public: Indica que o mtodo acessvel externamente a outras classes que necessitem utliz-lo; static: Indica que o mtodo deve ser compartilhado por todos os objetos que so criados a partir dessa classe. Nota: mtodos static podem ser invocados ainda que no sejam instanciados objetos a partir da classe a que ele pertence, devendo ser obedecida a sintaxe: <Classe>.<Mtodo> (argumentos);

Fundamentos da linguagem Java


void: Indica que o mtodo em questo no retorna nenhum valor (objeto ou tipo primitivo) ; main(): Representa o nome do mtodo que indicar ao compilador o incio do programa, dentro deste mtodo e atravs de interaes entre os atributos e argumentos visveis que o programa se desenvolve; String[] args Representa os argumentos esperados pelo mtodo para sua execuo.

Fundamentos da linguagem Java

Fundamentos da linguagem Java


Algumas convenes: Uma classe sempre comear letra maiscula; Quanto o nome de uma classe for composta por mais de uma palavra estas no devem estar separadas e por padro a primeira letra de cada palavra deve ser maiscula; Os atributos de uma classe devem ser iniciados com letra minscula;

Fundamentos da linguagem Java


Algumas convenes (continuao...) Quando o nome de um atributo for composto por mais de uma palavra a primeira letra do conjunto de caracteres que representa o atributo deve ser maiscula e, as primeiras letras de cada uma das demais palavras que compe o nome do atributo devem ser maisculas; Os pacotes devem ser declarados em letras minsculas e separados pro pontos (.); A listagem completa recomendada pela Oracle (Sun) pode ser encontrada em: http://www.oracle.com/technetwork/java/ codeconvtoc-136057.html

Fundamentos da linguagem Java

FIM

Lgica de programao X Java


Algoritmo
Seqncia definida de passos com o objetivo de execuo de uma tarefa

Formas de representao de algortimos Atravs de uma lngua (portugus, ingls, etc.); Atravs de uma linguagem de programao; Atravs de representaes grficas.

Lgica de programao X Java


Comandos de condio Forma geral SE (condio) ENTO { ... } SENO { ... }

Lgica de programao X Java


if if(a > b && a > c){ System.out.println("\"a\" maior que \"b\" e \"c\""); }else if (a > b && a < c ){ System.out.println("\"a\" maior que \"b\" e menor c\""); }else{ System.out.println("\"a\" no maior que \"b\" e \"c\""); }

Lgica de programao X Java

Operador ternrio
String txt = ((a > b) ? " \"a\" maior que \"b\"" : (a < b) ? "\"b\" maior que \"a\"" : "\"a\" igual a \"b\"");

Lgica de programao X Java


switch
char operacao = '+'; switch(operacao ){
case '+': System.out.println("Adio"); break; case '-': System.out.println("Subtrao"); break; case '*': System.out.println("Multiplicacao"); break; default: System.out.println("Diviso"); break;

Lgica de programao X Java


Comandos de loop Formas gerais Processar ..., Enquanto; Enquanto x, processar; Para ... At ... Seguinte;

Lgica de programao X Java


do... while int i = 0; do{ System.out.println("i = " + i++); }while(i != 5);

Lgica de programao X Java


while... do int j = 5; while(j != -1){ System.out.println("j = " + j--); }

Lgica de programao X Java


for for(int h = 0 ; h <= 5 ; h++){ System.out.println("h = " + h); }

Lgica de programao X Java


break & continue for(int contatdor = 0 ; contatdor <= 5 ; contatdor++){ if(contatdor == 1){ System.out.println("Interrompendo o lao atual" + " (\"continue\")"); continue; }else if(contatdor == 3){ System.out.println("Interrompendo o loop" + " (\"break\")"); break; } System.out.println("contador = " + contatdor); }

Arrays
Vetor ou Matriz cujo objetivo o armazenamento de dados em uma estrutura encadeada;; Criado para um tipo ou Classe especfico; Possuem tamanho pr-definido; A procura de um dado armazenado deve ser feita via ndice; A quantidade de posies utilizadas deve ser descoberta por meio de varredura; A descoberta de seu tamanho realizada via propriedade length.

Arrays
Exemplo (array unidimencional) String arrayString[] = new String[5]; for (int k = 0; k < arrayString.length; k++) { arrayString[k] = "Posio " + k; } for (int k = 0; k < arrayString.length; k++) { System.out.println(arrayString[k]); }

Arrays
Exemplo (array multidimencional) String arrayMatriz[][] = new String[5][2]; for (int k = 0; k < arrayMatriz.length; k++) { arrayMatriz[k][0] = "Linha " + (k+1) + " coluna 1"; arrayMatriz[k][1] = "\tLinha " + (k+1)+ " coluna 2"; } for (int k = 0; k < arrayMatriz.length; k++) { System.out.print(arrayMatriz[k][0]); System.out.println(arrayMatriz[k][1]); }

Collections
Motivaes / Limitaes de Arrays Arrays no so redimensionveis; Dados armazenados em Arrays no so encontrados de maneira direta, necessrio que o array seja percorrido; No h como saber de maneira direta quantas posies esto sendo usadas no array; Soluo: Collections Framework.

Collections
Caractersticas Dimensionamento dinmico; Objetos encontrados diretamente, sem a necessidade de varredura; O tamanho do objeto reflete exatamente a quantidade de posies utilizada; Mtodos especializados; Bom desempenho; Cdigos otimizados.

Collections

Collections
Mais utilizados List (interface) Permite a incluso de vrios tipos de objeto (quando no utilizando generics); Permite a incluso de objetos duplicados; Ordenado pela ordem de incluso. Set (interface)
No permite a incluso de objetos duplicados; Realiza a comparao Object.equals() de maneira a no possibilitar incluses duplicadas;

Map
Caractersticas Dimensionamento dinmico; Utilizao de chaves para mapeamento; Objetos includos/retornados mediante chave; O tamanho do objeto reflete exatamente a quantidade de posies utilizada; Mtodos especializados; Bom desempenho; Cdigos otimizados.

Map
Mais utilizados HashMap; Permite a incluso de objetos nulos; Objetos retornados mediante chave; TreeMap A incluso de objetos chave nulos ocasionam erros; capaz de ordenar os objetos sob sua responsabilidade;

Вам также может понравиться