Estrutura de Controle em
JAVA
Prof. Hugo Sampaio
São Luís, MA
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 - 2
Estrutura de um programa em JAVA
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.
© Prof.Hugo Sampaio - 3
Tipos de Variáveis (primitivos)
Tipo
Tamanho
boolean ------char
16 bits
Descrição
booleano
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 - 4
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 - 5
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 - 6
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 - 7
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 - 8
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 - 9
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 - 10
JOptionPane.INFORMATION_MESSAGE
JOptionPane.ERROR_MESSAGE
JOptionPane.INCANCEL_OPTION
© Prof.Hugo Sampaio - 11
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 - 12
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 - 13
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 - 14
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 - 15
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 - 16
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 - 17
Operadores
De atribuição : =
De matemáticos : + , - , *, / , % (modulo)
De incremento : ++ , -- , += , -= , /= , *= , %=
Lógicos : && , || , !
Relacionais : > , < , >= , <= , ==
© Prof.Hugo Sampaio - 18
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 - 19
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 - 20
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 - 21
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 - 22
Estrutura de repetição
DO ... WHILE;
do
{
System.out.println(“Esta eh a linha” + x);
x++;
}while(x<=10)
© Prof.Hugo Sampaio - 23
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 - 24
Criando um nova classe
class NomeDaClasse
{
int valor=0;
NomeDaClasse(){}
ATRIBUTO
// Construtor
void imprimir()
{
System.out.println(valor);
}
void atribuir(int a)
{
valor=a;
}
MÉTODOS
}
© Prof.Hugo Sampaio - 25
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 - 26
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 - 27
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 - 28
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 - 29
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 - 30
Herança
Empregado
Características
Herdadas
Secretária
Nome:
ID:
Salário:
isMae?
Nome:
ID:
Salário:
Engenheiro
Nome:
ID:
Salário:
CREA
Motorista
Nome:
ID:
Salário:
Turno
© Prof.Hugo Sampaio - 31
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 - 32
Herança
Observe como “herdar”
da classe CPessoa
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);
}
}
© Prof.Hugo Sampaio - 33
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 - 34
Herança
Outro
class
{
int
int
int
Exemplo :
CData
campoDia;
campoMes;
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 - 35
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 - 36
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 - 37
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 - 38
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 - 39
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 - 40
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 - 41
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 - 42
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 - 43
Classes abstrata
Um método também pode ser declarado como “abstract”,
neste caso ele deve ser implementado em uma classe
herdeira.
© Prof.Hugo Sampaio - 44
Download

parte_03 - sistema de informacao