java aprendendo linguagem.ppt

58
JAVA APRENDENDO A LINGUAGEM Instituição: SENAC Módulo : Aplicações para WEB – Java Carga Horária: 60 horas Instrutor: Ricardo José Menezes Maia

Upload: emerson-cardoso

Post on 06-Jun-2015

224 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Java aprendendo linguagem.ppt

JAVA

APRENDENDO A LINGUAGEM

Instituição: SENAC

Módulo : Aplicações para WEB – Java

Carga Horária: 60 horas

Instrutor: Ricardo José Menezes Maia

Page 2: Java aprendendo linguagem.ppt

CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Para programarmos em uma linguagem orientada a objetos é necessário conhecer os seguintes conceitos:

• Objeto • Mensagem• Classe• Herança

Logo após será necessário traduzir os conceitos acima em código java

Page 3: Java aprendendo linguagem.ppt

OBJETO

Possui comportamento e características/estadoscachorro – característica/estado(cor, nome, raça, fome) – comportamento(latir, balançar rabo)

Estados e características �� atributos.Comportamento �� métodos.

Um objeto que contenha características e comportamento específico é chamado de instância. Ex: vira-lata é uma instância de cachorro.

// Ponto.javaclass Ponto { Ponto(int x, int y) { System.out.println("Novo objeto ponto criado ("+x+", "+y+")"); }

public static void main(String s[]) { Ponto p = new Ponto(2, 3); Ponto p1 = new Ponto(3, 4); }}

Page 4: Java aprendendo linguagem.ppt

ATRIBUTO

// Ponto.javaclass Ponto { int x; int y;

Ponto(int x, int y) { this.x = x; this.x = x; System.out.println("Novo objeto ponto criado ("+this.x+", "+this.y+")"); }

public static void main(String s[]) { Ponto p = new Ponto(2, 3); Ponto p1 = new Ponto(3, 4); }}

Page 5: Java aprendendo linguagem.ppt

MÉTODO

class metodo { int x, y;

metodo(int x, int y) { this.x = x; this.y = y; System.out.println("Novo objeto metodo criado ("+this.x+", "+this.y+")"); }

void Move(int deslocamento) { this.x = this.x + deslocamento; // this.x += deslocamento }

void ExibeCoordenada() { System.out.println("Coordenada ("+this.x+", "+this.y+")"); }

public static void main(String s[]) { metodo p = new metodo(2, 3); p.Move(20); p.ExibeCoordenada(); }}

Page 6: Java aprendendo linguagem.ppt

MÉTODO CONSTRUTOR

class metodo { int x, y;

metodo(int x, int y) { this.x = x; this.x = x; System.out.println("Novo objeto metodo criado ("+this.x+", "+this.y+")"); }

void Move(int deslocamento) { this.x = this.x + deslocamento; // this.x += deslocamento }

void ExibeCoordenada() { System.out.println("Coordenada ("+this.x+", "+this.y+")"); }

public static void main(String s[]) { metodo p = new metodo(2, 3); p.Move(20); p.ExibeCoordenada(); }}

Page 7: Java aprendendo linguagem.ppt

MENSAGEM

Objetos comunicam-se através de mensagens.

// Ponto.javaclass Ponto { int x; int y;

Ponto(int x, int y) { this.x = x; this.y = y; }

void desloca_x(int x) { this.x = this.x+x; } }

// Desenha.javapublic class Desenha { public static void main(String s[]) { Ponto p = new Ponto(2, 3); p.desloca_x(2); }}

Page 8: Java aprendendo linguagem.ppt

SOBRECARGA

É permitido incluir numa classe métodos que possuem o mesmo nome e o mesmo tipo de retorno, mas que diferem pelo número e/ou pelos tipos dos argumentos.

// Ponto.java – sobrecarga de construtorclass Ponto { int x, y; double a, b;

Ponto(int x, int y) { this.x = x; this.y = y; System.out.println(“Construtor int”); }

Ponto(double x, double y) { this.a = x; this.b = y; System.out.println(“Construtor double”); }

public static void main(String s[]) { Ponto p = new Ponto(2,3); Ponto p1 = new Ponto(2.4,5.9); }}

Page 9: Java aprendendo linguagem.ppt

CLASSE

Define atributos e métodos comuns a todos objetos de um certo tipo.

// Ponto.javaclass Ponto { Ponto(int x, int y) { System.out.println("Novo objeto ponto criado ("+x+", "+y+")"); }

public static void main(String s[]) { Ponto p = new Ponto(2, 3); Ponto p1 = new Ponto(3, 4); }}

Page 10: Java aprendendo linguagem.ppt

HERANÇA

superclasse

subclasse subclasse

Conjunto das propriedades e especificações assim transmitidas de uma classe para outra(s)

// filho.javapublic class pai {}

class filho extends pai { }

Page 11: Java aprendendo linguagem.ppt

PACOTE

Coleção de tipos relacionados.

|___grafico |____ponto |____linha

Criar pasta grafico

// ponto.javapackage grafico;public class ponto { }

// linha.javapackage grafico;public class linha { }

// Desenhar.javaimport grafico.*; // import grafico.ponto;

public class Desenhar { ponto p;

public static void main(String s[]) { }}

Page 12: Java aprendendo linguagem.ppt

Exercício:

Colocar ponto dentro do pacote game, o qual deverá ser criado

Page 13: Java aprendendo linguagem.ppt

NÍVEIS DE ACESSO

SIMSIMSIMSIMpublicNÃOSIMSIMSIMprotectedNÃONÃOSIMSIMNão definidoNÃONÃONÃOSIMprivateTodosSubclassePacoteClasse

CONTROLANDO ACESSO A MEMBROS DE UMA CLASSE

Page 14: Java aprendendo linguagem.ppt

Somente a classe tem acesso.

PRIVATE

// Ponto.javaclass Ponto { private int x, y;

Ponto (int x, int y) { this.x=x; this.y=y; }

private void desloca_x(int desloc) { x = x + desloc; } }

// Desenho.javaclass Desenho { public static void main(String args[]) { Ponto p = new Ponto(2,3); p.x=3; p.desloca_x(4); }}

Page 15: Java aprendendo linguagem.ppt

Desenho.java:5: x has private access in Ponto p.x=3; ^Desenho.java:6: desloca_x(int) has private access in Ponto p.desloca_x(4); ^2 errors

ERRO

javac Desenho.java

Page 16: Java aprendendo linguagem.ppt

PRIVATE

// Ponto.javaclass Ponto { private int x, y;

Ponto (int x, int y) { this.x=x; this.y=y; }

private void desloca_x(int desloc) { x = x + desloc; } }

// Desenho.javaclass Desenho extends Ponto { Desenho(int x, int y) { super(x,y); } public static void main(String args[]) { Desenho des = new Desenho(2,3); System.out.println(des.x); }}

Page 17: Java aprendendo linguagem.ppt

Desenho.java:19: x has private access in Ponto System.out.println(des.x); ^1 error

javac Desenho.java

ERRO

Page 18: Java aprendendo linguagem.ppt

Exercício:

Nos dois programas anteriores mudar de private para protected e verificar o que ocorre.

Page 19: Java aprendendo linguagem.ppt

PROTECTED

package grafico;

// Ponto.javaclass Ponto { protected int x, y;

Ponto (int x, int y) { this.x=x; this.y=y; }

protected void desloca_x(int desloc) { x = x + desloc; } }

import grafico.*;

// Desenho.javaclass Desenho { public static void main(String args[]) { Ponto p = new Ponto(2,3); System.out.println(p.x); }}

Somente a classe e quem herda tem acesso.

Criar a pasta grafico Copiar Ponto.java para a pasta grafico

Page 20: Java aprendendo linguagem.ppt

Desenho.java:31: grafico.Ponto is not public in grafico; cannot be accessed from outside package Ponto p = new Ponto(2,3); ^Desenho.java:31: grafico.Ponto is not public in grafico; cannot be accessed from outside package Ponto p = new Ponto(2,3); ^2 errors

javac Desenho.java

ERRO

Page 21: Java aprendendo linguagem.ppt

Exercício:

Fazer com que Desenho herde Ponto e verificar o que será necessário ou não ajustar para que Desenho seja compilado corretamente.

Page 22: Java aprendendo linguagem.ppt

INTERFACE

Assim como a classe uma interface define métodos, sendo que os métodos nunca são implementados na interface.

Classes que implementam interface devem implementar os métodos definidos pela interface.

Uma classe pode implementar múltiplas interface.

interface cachorro { public void latir();}

public class vira_lata implements cachorro { public void latir() { }

public static void main(String s[]) { vira_lata dog = new vira_lata(); }}

Page 23: Java aprendendo linguagem.ppt

ABSTRACT

A classe representa um modelo que será instanciado.

abstract class cachorro { public void latir(){ } abstract void comer();}

public class vira_lata extends cachorro { public void latir() { }

void comer() { }

public static void main(String s[]) { vira_lata dog = new vira_lata(); }}

Page 24: Java aprendendo linguagem.ppt

// nome do arquivo: polimorf.java

interface Gritador { void grita();}

class Humano implements Gritador { public void grita() { System.out.println("AAAAAAHHHHH"); }}

class Macaco implements Gritador { public void grita() { System.out.println("IIIIIIIIHHHHHHHI"); }}

public class polimorf {

void facaAlgo(String especie) { Gritador b;

if(especie.compareTo("humano")==0) { b = new Humano(); } else { b = new Macaco(); }

b.grita(); // chamada polimórfica }

public static void main(String argumento[]) { polimorf p = new polimorf(); p.facaAlgo(argumento[0]); }}

POLIMORFISMO

Page 25: Java aprendendo linguagem.ppt

// nome do arquivo: polimorf.java

interface Gritador { void grita();}

class Humano implements Gritador { public void grita() { System.out.println("AAAAAAHHHHH"); }}

class Macaco implements Gritador { public void grita() { System.out.println("IIIIIIIIHHHHHHHI"); }}

public class polimorf {

void facaAlgo(String especie) { Gritador b;

if(especie.compareTo("humano")==0) { b = new Humano(); } else { b = new Macaco(); }

b.grita(); // chamada polimórfica }

public static void main(String argumento[]) { polimorf p = new polimorf(); p.facaAlgo(argumento[0]); }}

POLIMORFISMO - INTERFACE

Page 26: Java aprendendo linguagem.ppt

// nome do arquivo: polimorf1.java

class Gritador { void grita() { System.out.println("generico"); }}

class Humano extends Gritador { public void grita() { System.out.println("AAAAAAHH"); }}

class Macaco extends Gritador { public void grita() { System.out.println("IIIIIIIIHHHHH"); }}

public class polimorf1 {

void facaAlgo(String especie) { Gritador b;

if(especie.compareTo("humano")==0) { b = new Humano(); } else { b = new Macaco(); }

b.grita(); // chamada polimórfica }

public static void main(String argumento[]) { polimorf1 p = new polimorf1(); p.facaAlgo(argumento[0]); }}

POLIMORFISMO - HERANÇA

Page 27: Java aprendendo linguagem.ppt

VARIÁVEIS

Nome Começa com letras Pode ter número ou _

Scopo (tempo de vida) // Scopo.java class Scopo.java { public static void main(String s[]) { int a=34;

if (a!=0) { int b = 17; }

System.out.println(“Valor b “+ b); } }

Page 28: Java aprendendo linguagem.ppt

true ou falseA valor boleano (true or false)boolean16-bit caracter UnicodeUm simples characterchar

Outros Tipos

64-bit IEEE 754Dupla precisão de ponto flutuantedouble

32-bit IEEE 754Simples precisão de ponto flutuantefloat

Números Reais

64-bit complemento de 2Inteiro longolong32-bit complemento de 2Inteiroint16-bit complemento de 2Inteiro curtoshort8-bit complemento de 2Bytebyte

Inteiros

Tamanho/FormatoDescriçãoPalavra Reservada

Tipos de Dados Primitivos

Page 29: Java aprendendo linguagem.ppt

Sinal (1) | Expoente (8) | Mantissa (23)

Bits

IEEE 754

Para número negativo usar complemento de 2

NÚMERO EM PONTO FLUTUANTE

Page 30: Java aprendendo linguagem.ppt

//inteiros

byte largestByte = Byte.MAX_VALUE;

short largestShort = Short.MAX_VALUE;

int largestInteger = Integer.MAX_VALUE;

long largestLong = Long.MAX_VALUE;

//números reais

float largestFloat = Float.MAX_VALUE;

double largestDouble = Double.MAX_VALUE;

//outros tipos primitivos

char aChar = 'S';

boolean aBoolean = true;

INICIALIZAÇÃO

Page 31: Java aprendendo linguagem.ppt

// Constante.java class Constante { final int aFinalVar = 0;

public static void main(String s[]) { Constante c = new Constante();

c.aFinalVar=23;

System.out.println(c.aFinalVar); } }

CONSTANTE

Page 32: Java aprendendo linguagem.ppt

OPERADORES

op-- --op --

op++ ++op++

op1 % op2 %

op1 / op2 /

op1 * op2 *

op1 - op2 -

op1 + op2 +

UsoOperador Aritmético

Page 33: Java aprendendo linguagem.ppt

public class AritimeticaDemo { public static void main(String[] args) {

//poucos numeros int i = 37; int j = 42; double x = 27.475; double y = 7.22;

//adição System.out.println("Adição..."); System.out.println(" i + j = " + (i + j));

//subtração System.out.println("Subtração..."); System.out.println(" i - j = " + (i - j));

//Multiplicação System.out.println(" i * j = " + (i * j));

//Divisão System.out.println(" i / j = " + (i / j));

//Resto de divisão System.out.println(" i % j = " + (i % j));

//misturando tipos System.out.println(" i * x = " + (i * x)); }}

Page 34: Java aprendendo linguagem.ppt

// Operador.java class Operador {

public static void main(String s[]) { int i=5; System.out.println(“(i++/2)” + (i++/2)); System.out.println(i); } }

Mudar para ++i, --i, i-- e verificar os resultados

Page 35: Java aprendendo linguagem.ppt

OPERADOR

op1 != op2 !=

op1 == op2 ==

op1 <= op2 <=

op1 < op2 <

op1 >= op2 >=

op1 > op2 >

UsoOperador Condicional

Page 36: Java aprendendo linguagem.ppt

public class RelacionalDemo { public static void main(String[] args) {

int i = 37; int j = 42; int k = 42;

//maior System.out.println(" i > j = " + (i > j)); //false //maior igual System.out.println(" i >= j = " + (i >= j)); //false //menor System.out.println(" i < j = " + (i < j)); //true //menor igual System.out.println(" i <= j = " + (i <= j)); //true //igual System.out.println(" i == j = " + (i == j)); //false //diferente System.out.println(" i != j = " + (i != j)); //true }}

Page 37: Java aprendendo linguagem.ppt

op1 ^ op2 Bit^ op1 | op2 Bit| op1 & op2 Bit& !op negação! op1 || op2 Ou|| op1 && op2 E&& UsoFunçãoOperador

Page 38: Java aprendendo linguagem.ppt

op1 >>> op2 >>>

op1 >> op2 >>

op1 << op2 <<

UsoOperador

Page 39: Java aprendendo linguagem.ppt

op1 = op1 >>> op2 op1 >>>= op2 >>>= op1 = op1 >> op2 op1 >>= op2 >>= op1 = op1 << op2 op1 <<= op2 <<= op1 = op1 ^ op2 op1 ^= op2 ^= op1 = op1 | op2 op1 |= op2 |= op1 = op1 & op2 op1 &= op2 &= op1 = op1 % op2 op1 %= op2 %= op1 = op1 / op2 op1 /= op2 /= op1 = op1 * op2 op1 *= op2 *= op1 = op1 - op2 op1 -= op2 -= op1 = op1 + op2 op1 += op2 += DescriçãoUsoOperador

Page 40: Java aprendendo linguagem.ppt

op1 instanceof op2 instanceof Criar objetos new (type) op // cast(type) parâmetros (parâmetros) objetos . array[ ] op1 ? op2 : op3 ?: Use Operador

Page 41: Java aprendendo linguagem.ppt

break, continue, label:, return

Paradas, retornos e mudanças no fluxo do loop

try-catch-finally, throw Exception

if-else, switch-case Decisão

while, do-while, for Loop

Palavra chave

Page 42: Java aprendendo linguagem.ppt

while (expression) { statement }

do {

statement(s)

} while (expression);

for (initialization; termination; increment) { statement(s) }

Page 43: Java aprendendo linguagem.ppt

public class SwitchDemo { public static void main(String[] args) {

int mes = 8; switch (mes) { case 1: System.out.println("Janeiro"); break; case 2: System.out.println("Fevereiro"); break; case 3: System.out.println("Março"); break; case 4: System.out.println("Abril"); break; case 5: System.out.println("Maio"); break; case 6: System.out.println("Junho"); break; } }}

Page 44: Java aprendendo linguagem.ppt

EXERCÍCIOS

1) Escreva um programa em java que possua um método para exibir na tela os números de 1 a 10. (Usando for)

2) Escreva um programa em java que possua um método para exibir na tela os números de 1 a 10. (Usando while)

3) Escreva um programa em java que possua um método para exibir na tela os números de 1 a 10. (Usando do while)

Page 45: Java aprendendo linguagem.ppt

// 1 – usando forpublic class loop1 { public static void main(String s[]) { int i=0; for(i=1; i<=10; i++) System.out.print(i + " ");

i=1;}

// 2 – usando do ...whilepublic class loop3 { public static void main(String s[]) { int i=1; do { System.out.print(i + " "); i++; } while(i<=10); }}

// 2 – usando whilepublic class loop2 { public static void main(String s[]) { int i=1; while(i<=10) { System.out.print(i + " "); i++; } }}

Page 46: Java aprendendo linguagem.ppt

TRATAMENTO DE EXCEÇÃO

É um evento que ocorre durante a execução de um programa que sai do fluxo normal.

try { comandos } catch (TipoExceção nome) { // executado quando ocorrer exceção comandos } finally { // executado mesmo que não haja exceção comandos }

Page 47: Java aprendendo linguagem.ppt

// excecao.javapublic class excecao { void divide(int numerador, int denominador) { System.out.println(numerador/denominador); }

public static void main(String s[]) { excecao e = new excecao();

try { e.divide(2,0); } catch (Exception exc) { System.out.println(“Erro de excecao"); } finally { System.out.println(“Denominador deve ser diferente de zero"); } }}

Page 48: Java aprendendo linguagem.ppt

// excecao1.javapublic class excecao1 { void divide(int numerador, int denominador) throws Exception { if(denominador == 0) throw new Exception(); System.out.println(numerador/denominador); }

public static void main(String s[]) { excecao e = new excecao();

try { e.divide(2,0); } catch (Exception exc) { System.out.println("Erro"); } finally { System.out.println("Denominador deve ser diferente de zero"); } }}

Page 49: Java aprendendo linguagem.ppt

ARRAY

Page 50: Java aprendendo linguagem.ppt

Criando ARRAY

// ArrayDemo.javapublic class ArrayDemo { public static void main(String[] args) { int[] anArray; // declarando um array de inteiros

anArray = new int[10]; // cria um array de inteiros

for (int i = 0; i < anArray.length; i++) { anArray[i] = i; System.out.print(anArray[i] + " "); } System.out.println(); }}

Page 51: Java aprendendo linguagem.ppt

// ArrayDemo.javapublic class ArrayDemo { public static void main(String[] args) { int[] anArray = {1,2,3,4,5,6,7,8,9,10}; // inicializando array

for (int i = 0; i < anArray.length; i++) { System.out.print(anArray[i] + " "); } System.out.println(); }}

INICIALIZANDO ARRAY

Page 52: Java aprendendo linguagem.ppt

ARRAY DE OBJETOS

public class ArrayStringsDemo { public static void main(String[] args) {

String[] anArray = { "String UM", "String DOIS", "String TRES" };

for (String s: anArray) { System.out.println(s.toLowerCase()); }

}}

Page 53: Java aprendendo linguagem.ppt

ARRAY DE ARRAYS

public class ArrayArrayDemo { public static void main(String[] args) { int[][] aMatrix = new int[4][];

//populate matrix for (int i = 0; i < aMatrix.length; i++) {

aMatrix[i] = new int[5]; //create sub-array for (int j = 0; j < aMatrix[i].length; j++) { aMatrix[i][j] = i + j; }

}

//IMPRIME matriz for (int i = 0; i < aMatrix.length; i++) {

for (int j = 0; j < aMatrix[i].length; j++) { System.out.print(aMatrix[i][j] + " "); } System.out.println();

} }}

Page 54: Java aprendendo linguagem.ppt

APPLET

//AloMundo.javaimport javax.swing.JApplet;import java.awt.Graphics;

public class AloMundo extends JApplet { String mensagem=“”; public void init() { mensagem += “init.. ”; }

public void start() { mensagem += “start.. ”; }

public void paint(Graphics g) {g.drawRect(0, 0,

getSize().width - 1, getSize().height - 1);

g.drawString(mensagem+”Alo Mundo!!”, 5, 15); }}

Page 55: Java aprendendo linguagem.ppt

<html> <applet code=AloMundo width=300 height=300> </applet></html>

teste.html

Page 56: Java aprendendo linguagem.ppt

Compila applet

javac AloMundo.java

Executa applet

appletviewer teste.html

abrir teste.html por um browser (IExplorer ou Mozilla)

Page 57: Java aprendendo linguagem.ppt

PACOTES

java.applet – Possui classes necessárias a criação de applet

java.awt – Contém classes necessárias a criação de interfaces com o usuário e para desenhar gráficos e imagens.

java.io – Contém classes que permitem realizar operações de i/o através de streams, serialização e arquivos.

java.lang – comtém classes fundamentais para o desenvolvimento de programas java. (este pacote é importado por padrão)

java.net / javax.net – contém classes para implementar aplicações em rede.

java.sql – Contém classes que permitem acessar e processar dados armazenados em um banco de dados (usualmente um banco de dados relacional).

java.util - Contém classes diversas para tratar de forma especial:coleções,vetores, strings, números randomicos, strings entre outros.

javax.swing – melhoramento de java.awt a possibilidade de utilizar outros recursos

Page 58: Java aprendendo linguagem.ppt

import java.io.*;

public class teste9 { public static void main(String s[]) {

BufferedReader d = new BufferedReader(new InputStreamReader(System.in));

try { System.out.println(d.readLine()); } catch (IOException ioe) { System.out.println(ioe+""); } }}