estrutura de controle em java prof. hugo sampaio são luís, ma

44
Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

Upload: internet

Post on 22-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

Estrutura de Controle emJAVA

Prof. Hugo SampaioSão Luís, MA

Page 2: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 2

Estrutura de um programa em JAVA

Import java.io.*;class MinhaClasse{ public static void main (String arg[]) { System.out.println("Ola turma"); }}

Onde : import java.io.*; - Inclusão de classes MinhaClasse – Nome da classe System.out - Objeto de saída padrão public static void main (String arg[])– Função main

Page 3: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 3

Apenas a classe de inicio (start) do programa

deve ter função main.

Observe que a função main recebe um array

do tipo String.

Em JAVA temo uma classe que define o tipo

String, logo a variável do tipo string é uma

instância desta classe.

Estrutura de um programa em JAVA

Page 4: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 4

Tipos de Variáveis (primitivos)

Tipo Tamanho Descrição

boolean ------- booleano

char 16 bits caracter

byte 08 bits byte

int 32 bits Inteiro

long 64 bits longo

float 32 bits float

double 64 bits double

void ------- void

Page 5: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 5

Tipos de Variáveis (primitivos)

class MinhaClasse{ public static void main (String arg[]) { int i = 5; char c = 'a'; float f = 2; double d = 2.3456; boolean b = false; System.out.println(i); System.out.println(c); System.out.println(f); System.out.println(d); System.out.println(b); }}

Page 6: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 6

Tipos de Variáveis (Objetos)

Para criar uma variável do tipo String ou

Integer devemos criar um objeto.

A palavra reservada “new” deve ser utilzada

para criar o objeto. Ex. :

String nome = new String();

Obs.: regra geral para criação de objetos;

Page 7: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 7

Saída de dados

Adotaremos como saída padrão dois métodos :

Saída na tela do sistema : Objeto : System.out

Ex. : Para imprimir uma mensagem ou valor

System.out.println(“MSG”);

System.out.println(valor);

Page 8: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 8

Exemplo de saída

import javax.swing.*;

class MinhaClasse{ public static void main (String arg[]) { String nome = new String(); nome = "Hugo Sampaio"; System.out.println("Ola!, " + nome); }}

Page 9: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 9

Saída de dados

Saída em uma janela dialogo de mensagem : Objeto : JOptionPane.showMessageDialog()

Ex. : Para imprimir uma mensagem ou valor

JOptionPane.showMessageDialog(null,“MSG”“TITULO”<ICONE>);

Page 10: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 10

Exemplo de saída

import javax.swing.*;

class MinhaClasse{ public static void main (String arg[]) { String nome = new String(); nome = "Hugo Sampaio"; JOptionPane.showMessageDialog(

null, "Ola! " + nome, "Minhas mensagens",

JOptionPane.INFORMATION_MESSAGE }}

Page 11: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 11

JOptionPane.INFORMATION_MESSAGE JOptionPane.ERROR_MESSAGE

JOptionPane.INCANCEL_OPTION

Page 12: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 12

Entrada de dados

Como entrada padrão temos :

Entrada direto na tela do sistema : Objeto : System.in junto com o DataInputStream

Ex. : Para ler do teclado um valor

DataInputStream str =

new DataInputStream(System.in);

x = str.readLine(); // sempre uma string

Page 13: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 13

Exemplo de entrada

import javax.swing.*;import java.io.*;

class MinhaClasse{ public static void main (String arg[]) { String x = new String(); DataInputStream teclado = new

DataInputStream(System.in);

try{ x = teclado.readLine();

}catch(Exception ex){} System.out.println(“Palavra : " + x); }}

Page 14: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 14

Outro Exemplo de entrada

import javax.swing.*;import java.io.*;

class MinhaClasse{ public static void main (String arg[]) { String x = new String(); String y = new String(); DataInputStream teclado = new

DataInputStream(System.in);

try{ x = teclado.readLine();

y = teclado.readLine(); }catch(Exception ex){} System.out.println(“Frase : " + x + " " + y); }}

Page 15: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 15

Entrada de dados

Entrada por uma janela dialogo de mensagem : Objeto : JOptionPane.showInputDialog

Ex.:

int x; x = JOptionPane.showInputDialog

("Entre com o seu nome :");

Page 16: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 16

Exemplo de entrada

import javax.swing.*;

class MinhaClasse{ public static void main (String arg[]) { String nome = new String(); nome = JOptionPane.showInputDialog

("Entre com o seu nome :"); System.out.println("Ola!, " + nome); }}

Page 17: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 17

Exercício

1) Crie um programa em JAVA que imprime na tela do sistema o seu nome.

2) Crie um programa em JAVA que ler dois número do teclado e imprime na tela a soma entre eles. Utilize a tela do sistema para ler os dados e uma tela de dialogo para mostrar o valor.

Page 18: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 18

Operadores

De atribuição : =

De matemáticos : + , - , *, / , % (modulo)

De incremento : ++ , -- , += , -= , /= , *= , %=

Lógicos : && , || , !

Relacionais : > , < , >= , <= , ==

Page 19: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 19

Estrutura de seleção

IF, (única) if(x>=10) System.out.println(“OK”);

IF ... ELSE; (dupla)

if(x>=10) System.out.println(“verdade”);

else System.out.println(“falso”);

Page 20: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 20

Estrutura de seleção

IF ... ELSE; (aninhados)

int x =-5;if(x>=0)

if(x<=10) System.out.println(“Numero entre 0 e 10”);

else System.out.println(“Numero fora da faixa”);

diferente de : int x = -5;

if(x>=0){ if(x<=10) System.out.println(“Numero entre 0 e 10”);

}else System.out.println(“Numero fora da faixa”);

Page 21: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 21

Estrutura de seleção

SWITCH; (múltipla)

int op=6;

switch(op)

{

case 1: System.out.println("opcao 1"); break;

case 2: System.out.println("opcao 2"); break;

case 3: System.out.println("opcao 3"); break;

default: System.out.println("opcao default"); break;

}

(exp ? verdade : falso), operador condicional int x = a>b ? a : b;

System.out.println(x)

Page 22: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 22

Estrutura de repetição

FOR;

for(x=0;x<10;x++) System.out.println(“Esta eh a linha” + x);

WHILE;

while(x<=10) {

System.out.println(“Esta eh a linha” + x); x++; }

Page 23: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 23

Estrutura de repetição

DO ... WHILE;

do {

System.out.println(“Esta eh a linha” + x); x++; }while(x<=10)

Page 24: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 24

Exercícios

1) Faça uma programa que recebe dois números x e y e imprime na tela todos os números primos entre eles.

2) Faça um programa que ler uma palavra e diz se esta palavra é um palíndromo. (Utilize os métodos da classe string).

3) Faça um programa que ler 10 números seguidos e ao final imprima em uma janela de dialogo o maior deles.

Page 25: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 25

Criando um nova classe

class NomeDaClasse{ int valor=0;

NomeDaClasse(){} // Construtor

void imprimir() { System.out.println(valor); }

void atribuir(int a) { valor=a; }}

MÉTODOS

ATRIBUTO

Page 26: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 26

Utilizando a nova classe

import NomeDaClasse;

public static void main(String arg[])

{

NomeDaClasse obj1 = new NomeDaClasse();

NomeDaClasse obj2 = new NomeDaClasse();

int x=10, y=5;

obj1.atribuir(x);

obj2.atribuir(y);

obj1.imprimir();

obj2.imprimir();

}

Page 27: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 27

Exemplo Classe Triangulo

public class CTriangulo{ int lado_A,lado_B,lado_C; void AtibuirLadoA(int valor){lado_A = valor;}

void AtibuirLadoB(int valor){lado_B = valor;}

void AtibuirLadoC(int valor){lado_C = valor;}

void imprimirLadoA() {System.out.println("O Lado A = " + lado_A);}

void imprimirLadoB() {System.out.println("O Lado B = " + lado_B);}

void imprimirLadoC() {System.out.println("O Lado C = " + lado_C);}

...

Page 28: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 28

Exemplo Classe Triangulo (cont.)

void imprimirTodosLados() { System.out.println("O Lado A = " + lado_A); System.out.println("O Lado B = " + lado_B); System.out.println("O Lado C = " + lado_C); }

void IsEquilatero() { boolean AB,BC; AB = (lado_A == lado_B); BC = (lado_B == lado_C); if(AB==BC) System.out.println(“Eh equilatero"); else

System.out.println("NAO eh equilatero"); }}

Page 29: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 29

Exercício

1) Utilizando a classe CTriangulo, crie um método que recebe um outro objeto CTriangulo e compara se são iguais.

2) Baseado no exemplo do triangulo, crie uma classe que modela o objeto Quadrado.

3) Crie uma classe para modelar objetos tipo “data”.

Page 30: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 30

Exercício

4) Crie uma classe que modela um objeto tipo “mensagem” , este objeto deve conter o método “imprimir” que recebe dois argumentos, sendo :

imprimir(String str, int tipo)Onde :str – Mensagem a ser impressa;

tipo – tipo de saída : 0 - saída apenas na console;

1 - saída apenas em uma janela de dialogo; (usar JOptionPane)

Page 31: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 31

Herança

Empregado

Nome:ID:Salário:

Motorista

Nome:ID:Salário:Turno

Secretária

Nome:ID:Salário:isMae?

Engenheiro

Nome:ID:Salário:CREA

Características

Herdadas

Page 32: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 32

Herança

Exemplo :

Class CPessoa{ String campoNome; int campoIdentidade; CPessoa(String nome,int ident) { campoNome=nome; campoIdentidade=ident; }

void imprimirNome() { System.out.println(campoNome); }}

Page 33: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 33

Herança

Class CFuncionario extends CPessoa{ float campoSalario; String campoCargo; CFuncionario(String nome,int ident,int salar) { super(nome,ident); campoSalario = salar; }

void imprimirSalario() { System.out.println(campoSalario); }}

Observe como “herdar” da classe

CPessoa

Page 34: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 34

Herança

class MinhaClasse{

public static void main (String arg[]) {

CFuncionario F;

F = new CFuncionario("Hugo",11,100.0);

F.imprimirNome();

F.imprimirSalario();

}

Page 35: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 35

Herança

Outro Exemplo :class CData { int campoDia; int campoMes; int campoAno; CData(int d,int m,int a) { if(isValida(d,m,a)) campoDia=d; campoMes=m; campoAno=a; }

boolean isValida(int d,int m,int a) { if((d>=1) && (d<=31) && (m>=1) && (m<=12)) return(true); else return(false); }}

Page 36: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 36

Herança

class CDataAniversario extends CData { CDataAniversario(int d,int m,int a) { super(d,m,a); } void imprimeAniversario() { System.out.println(campoDia + "/" + campoMes + "/" + campoAno); }}

Page 37: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 37

A Palavra chave super

Como o construtor da classe não pode ser chamado diretamente, usamos a palavra chave “super” para possibilitar a inicialização dos campos da superclasse.Assim : CDataAniversario(int d,int m,int a)

{

super(d,m,a);

}

Repassa dos parametros recebido para a sua classe superior. Obrigatoriamente este comando deve ser usado em um construtor e sempre na primeira linha

Page 38: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 38

Exercício

1) Escreva a classe CData que guarda as caracteristicas de uma data.

2) Escreva a classe CDataAniversario que recebe dia.mes e ano como argumentos e herda característica da classe CData.

3) Escreva a classe CConta que representa uma conta bancária.

4) Escreva as classe CContaCorrente, CPoupança que herda as características da classe CConta.

Page 39: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 39

Classe usando objetos

Uma classe pode ter como campo de dados (atributos) um objeto. Podem também receber como argumento uma instância dela mesmo.

Clase CQuadrado.isIgual(CQuadrado m){

if(this.altura == m.altura) &&

(this.largura == m.largura)

{

System.out.println(“Eu sou igual ao

quadrado m”);

}

}

Page 40: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 40

Exercício

1) Escreva a classe CLivro que guarda as caracteristicas de um livro.

2) Escreva a classe CEstante que armazena livros (utilizar a classe criada no exerc. 1) em posições e prateleiras.

3) Escreva a classe CBiblioteca que utiliza a classe CEstante para armazenar livros

4) Faça um pequena aplicação em JAVA para demonstrar a utilização destas classes.

Page 41: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 41

Escopo

Quando uma variável ou método é antecedido pela palavra “public”, ela poderá ser acessada de qualquer lugar.

Quando uma variável ou método é antecedido pela palavra “private”, ela só poderá ser acessada dentro da classe onde foi declarada.

Quando uma variável ou método é antecedido pela palavra “protected”, ela só poderá ser acessada dentro da classe onde foi declarada e também nas classes herdeiras..

Page 42: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 42

Escopo

Uma elemento definido como “static” poderá ser chamado pelo nome da classe e não por um objeto desta classe.Ex.: O método : public static final out da classe System.

System.out.println(“Ola”);

Se uma classe é precedida da palavra “final”, não poderá ter herdeiras. Se isto acontece com métodos, este método não poderá sofrer override (sobrecarga).

Uma propriedade final, não pode ter o seu valor alterado. É uma constante.

Page 43: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 43

Classes abstrata

Uma classe abstrata não pode instanciar (gerar) objetos. Ela apenas permite ser estendida (herdada).

Uma classe para ser abstrata seu nome deve ser precedido pela palavra “abstract”.Ex.:

public abstract class CAgente extends Thread

{

...

}

Page 44: Estrutura de Controle em JAVA Prof. Hugo Sampaio São Luís, MA

© Prof.Hugo Sampaio - 44

Classes abstrata

Um método também pode ser declarado como “abstract”, neste caso ele deve ser implementado em uma classe herdeira.