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

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

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.