estrutura de controle em java prof. hugo sampaio são luís, ma
Post on 22-Apr-2015
107 Views
Preview:
TRANSCRIPT
Estrutura de Controle emJAVA
Prof. Hugo SampaioSã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
© 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
© 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
© 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); }}
© 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;
© 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);
© 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); }}
© 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>);
© 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 }}
© Prof.Hugo Sampaio - 11
JOptionPane.INFORMATION_MESSAGE JOptionPane.ERROR_MESSAGE
JOptionPane.INCANCEL_OPTION
© 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
© 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); }}
© 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); }}
© 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 :");
© 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); }}
© 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.
© Prof.Hugo Sampaio - 18
Operadores
De atribuição : =
De matemáticos : + , - , *, / , % (modulo)
De incremento : ++ , -- , += , -= , /= , *= , %=
Lógicos : && , || , !
Relacionais : > , < , >= , <= , ==
© 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”);
© 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”);
© 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)
© 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++; }
© Prof.Hugo Sampaio - 23
Estrutura de repetição
DO ... WHILE;
do {
System.out.println(“Esta eh a linha” + x); x++; }while(x<=10)
© 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.
© 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
© 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();
}
© 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);}
...
© 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"); }}
© 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”.
© 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)
© 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
© 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); }}
© 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
© 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();
}
© 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); }}
© 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); }}
© 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
© 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.
© 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”);
}
}
© 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.
© 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..
© 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.
© 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
{
...
}
© 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.
top related