Você está na página 1de 76

Conceitos bsicos de Java

Universidade Federal de Sergipe Ncleo de Sistemas de Informao Prof. Andrs Menndez

Introduo
A linguagem Java Cdigo interpretado Possui um ambiente de aplicao

Tecnologia Java
A plataforma Java define o ambiente de hardware e

software onde programas so executados composta de:


Mquina virtual Java (JVM); APIs Java.

Programa Java API Java Mquina Virtual Java

Plataforma de hardware

JVM
Particularidades da JVM em relao a outras

plataformas
Simulao de uma mquina real Toda a interao do programa Java feito com a JVM

(nunca com a mquina real) Facilidades ao programador

JVM
Para cada plataforma, h um interpretador JVM

MeuPrograma.java

Compilador

Interpretador

Windows

MeuPrograma.class

Interpretador

Linux

Interpretador

Mac-Os

JRE
O ambiente de execuo Java, chamado de Java

Runtime Environment (JRE), executa o cdigo compilado para a JVM e tem como responsabilidade:
Carregar o cdigo; Verificar o cdigo; Executar o cdigo.

Tipos de programa Java


Applications: so programas standalone que rodam

diretamente sobre a plataforma Java. Applets: so programas que necessitam de um browser compatvel com Java para serem executados; Servlets: so programas executados remotamente em um servidor web

IDEs
Para facilitar o programador, diversas empresas

criaram ambientes de desenvolvimento integrado que interagem com o JDK de maneira a tornar o desenvolvimento mais produtivo. Alguns exemplos so:
NetBeans (Sun);

JDeveloper (Oracle);
Eclipse(IBM)

Estrutura de um programa
Todo programa Java, independente do tipo, uma

classe armazenada em arquivos texto com extenso .java


// Arquivo OlaMundo.java public class OlaMundo { public static void main(String[] args) { System.out.println(Ol mundo."); } }

Estrutura de um programa
//Arquivo Hello.java public class Hello { public void imprimir() { System.out.println(Ol mundo"); } } // Arquivo TesteHello.java public class TesteHello { public static void main(String[] args) { Hello hello = new Hello(); hello.imprimir(); } }

Elementos da linguagem
A seguir veremos um conjunto de elementos da

linguagem:
Tipos bsicos Comandos de entrada e sada Estruturas de controle Vetores

Comentrios
Existem trs tipos de comentrio em Java: // comentrio at o final da linha /* comentrio em mltiplas linhas */ /** comentrio de documentao */

//Comentrio at o final da linha public class Hello { public void imprimir() { System.out.println("Ol mundo..."); } }

Blocos
Blocos so compostos por um conjunto de instrues

limitadas pelos smbolos de chaves { e }. Substituem o begin end do Pascal


while (cont < 10) { cont++; System.out.println(cont); }

Identificadores
Identificadores em linguagem Java so utilizados para

a nomeao de elementos como, por exemplo, as variveis Devem comear com letras, underscore (_) ou cifro ($) e os caracteres seguintes podem tambm utilizar dgitos. So case-sensitives, isto , so sensveis a variaes de letras maisculas e minsculas

Palavras reservadas
Palavras reservadas identificam nomes que so

utilizados pela linguagem para a construo de programas. Identificadores no podem usar o mesmo nome de uma palavra reservada. Alguns exemplos de palavras reservadas: class, void, do, if, try, float, implements, entre outros

Tipos de dados
boolean representa um valor lgico (true ou false);

char permite armazenar um nico caractere: char letra = a char novaLetra = x

Tipos de dados
Para representar nmeros inteiros podemos usar um

dos tipos abaixo


Tamanho
8 bits 16 bits

Tipo

Faixa
-128 at +127 -32768 at +32767

byte short

32 bits
64 bits

int
long

-2147483648 at +2147483647
-263 at 263-1

Tipos de dados
Os valores podem ser representados na forma decimal,

octal ou hexadecimal, ilustrados a seguir:


123 representao decimal (normal) do nmero 123 077 o zero esquerda indica um valor octal 0xA123 - os caracteres 0x (zero + x) indicam um valor

hexadecimal

O uso da letra L aps o nmero indica que deve ser

representado em um tipo long.

Tipos de dados
Decimais 5786 -876 455l (representao como long) Octais 0657 0574 Hexadecimais 0x78A ox65C

Tipos de dados
Para os valores com ponto flutuante temos float (32

bits) e double (64 bits). Os valores deste tipo devem ser representados com um ponto, se houver necessidade de separao da parte decimal, precedido, se necessrio, da parte exponencial (letra E ou e).
3.14 double por default 0.031415e02 3.14f float

Tipos de dados
O tipo de dados que permite armazenar um conjunto

de caracteres o String.
String nome = Andres Menendez; String disc = Programao II;

String no um tipo primitivo como os que foram

vistos at aqui. Ser visto com mais detalhes posteriormente.

Declarao e atribuio
Diferentemente do Pascal, as variveis podem ser

criadas em qualquer ponto do programa


public class Atribuicao { public static void main(String[] args) { // declarao de variveis int x, y; x = 123; y = 234; float f = 123.45f; double d = 123.45; char c = a'; boolean b = true; } }

Operadores
Seguem os operadores relacionais em Java: > maior < menor >= maior ou igual <= menor ou igual == igual != diferente

Operadores
Os operadores lgicos em Java so os seguintes: ! negao | ou &e ^ ou exclusivo || ou short circuit && e short circuit

Operadores
Exemplo
public class Operadores { public static void main(String[] args) { boolean x = ! (10 > 20); boolean y = (1 < 3) && x; boolean z = x || y; } }

Operadores
Os operadores aritmticos em Java so: + soma - subtrao * multiplicao / diviso % resto ++ auto-incremento -- auto-decremento

Operadores
Em Java temos alguns operadores de atribuio: = atribuio normal; += atribuio com soma; -= atribuio com subtrao; *= atribuio com multiplicao; /= atribuio com diviso.

Operadores
public static void main(String[] args) { int x = 1; int y = x++; System.out.println(x+" "+y); // 2 1 x = 1; y = ++x; System.out.println(x+" "+y); // 2 2 x = 2; y += x; // y = y + x System.out.println(x+" "+y); // 2 4 x = 1; y -= x; System.out.println(x+" "+y); // 1 3 }

Comandos de sada
Para mostrar os resultados na tela usamos a seguinte

forma
System.out.println(parmetro) System.out.print(parmetro)

O parmetro uma cadeia de caracteres System.out.println(nome + nome); System.out.print(Salrio: + salarioFunc);

Comandos de entrada
Para fazer a leitura de valores em Java usamos a

seguinte construo
import java.util.Scanner; public class TesteScanner { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print ("Nome da pessoa: "); String nome = scan.next(); System.out.print ("Peso em kg: "); int peso = scan.nextInt(); System.out.println(nome+" pesa "+ peso+" kilos"); } }

Comandos de entrada
Para cada tipo de varivel pode ser usando um

comando especfico:
next variveis texto nextInt variveis inteiro nextDouble variveis real Entre outras...

Comandos de entrada
Alm do comando de entrada anterior podemos usar

tambm:
import javax.swing.JOptionPane; public class Leitura { public static void main(String[] args) { String leitura = JOptionPane.showInputDialog("Valor"); int valor = Integer.parseInt(leitura); System.out.println(valor); } }

Exerccio
Faa um programa em Java que leia dois nmeros e

calcule a mdia dos valores lidos


Faa um programa que leia o nome, o salrio bruto e o

valor de desconto de um funcionrio e ao final imprima o nome e o valor lquido a ser recebido pelo funcionrio

Comandos de seleo
A sintaxe de comando IF em Java da seguinte forma:
if (expresso lgica) { // conjunto de comandos } if (expresso lgica) { // conjunto de comandos } else { // conjunto de comandos }

Comandos de seleo
public static void main(String[] args) { Scanner scan = new Scanner(System.in); int valor1 = scan.nextInt(); int valor2 = scan.nextInt(); System.out.print("O maior valor lido foi: "); if (valor1 > valor2) { System.out.println(valor1); } else { System.out.println(valor2); } }

Comandos de seleo
public static void main(String[] args) { Scanner scan = new Scanner(System.in); int x = scan.nextInt(); int y = scan.nextInt(); if ( x > y ) { System.out.println("X maior do que Y"); } else if ( x < y ) { System.out.println("X menor do que Y"); } else { System.out.println("X igual a Y"); } }

Exerccio
Dificuldade: fcil

Faa um programa em Java que leia dois nmeros e

imprima quantos deles so pares

Exerccio
Dificuldade: fcil

Faa um programa em Java que leia o nome e as trs

notas de um aluno, a seguir o programa dever calcular a mdia e informar se o aluno est aprovado (mdia maior ou igual a 5.0) ou reprovado.

Exerccio
Dificuldade: fcil

Faa um programa que leia as idades de quatro irmos

e some as idades daqueles que tem mais de 15 anos

Exerccio
Dificuldade: mdio

Dois programadores de empresas diferentes querem

saber quem ganha mais. Faa um programa que leia o nome e o salrio dos dois e imprima o nome do programador que ganha mais.

Exerccio
Dificuldade: mdio

O professor da disciplina de Fundamentos quer saber

quando vai pagar de imposto de renda. Ele pediu para voc fazer um programa que leia o seu salrio, calcule e mostre o valor a ser pago do IR, baseado na tabela abaixo:
Faixa (R$) At 1000 De 1000 at 3000 De 3000 a 5000 Acima de 5000 % 0,0 6,5 9,0 12,0

Comandos de seleo
Em Java, alm do IF, temos um outro comando de

seleo: switch, que possui a seguinte sintaxe:


switch (expresso) { case <constante1> : //bloco de comandos break; case <constante2> : //bloco de comandos break; ... default : //bloco de comandos }

Comandos de seleo
A expresso a ser avaliada pode ser do tipo byte,

short, int ou char. O comando break entre um case e outro para


indicar que no deve ser feito nenhum outro teste. Caso no seja colocado todos os comandos sero efetuados sem efetuar o teste.

Comandos de seleo
public static void main(String[] args) { int x = 1, y = 1; switch ( x ) { case 1 : y = y + 1; break; case 2 : y = y + 2; break; case 3 : y = y + 3; break; default : y = y + 4; } System.out.println(y); // 2 }

Comandos de seleo
public static void main(String[] args) { int x = 1, y = 1; switch ( x ) { case 1 : y = y + 1; case 2 : y = y + 2; case 3 : y = y + 3; default : y = y + 4; } System.out.println(y); // 11 }

Exerccio
Dificuldade: fcil

Fazer um programa que leia um valor numrico que

representa um ms e o programa mostre quantos dias tm o ms lido (no considerar anos bissextos)

Exerccio
Dificuldade: fcil

Todos os anos, D. Francisca fica na dvida se o ano vai

ter 28 ou 29 dias (ano bissexto). Voc resolveu ajudar D. Francisca e fez um programa que l um valor que representa um ano e identifica se ele bissexto. Um ano bissexto se ele for divisvel por 400 ou se ele for divisvel por 4 e no por 100.

Exerccio
Dificuldade: fcil

Voc leu na internet que existe uma frmula que

verifica o peso ideal de uma pessoa baseado na altura e no sexo. Sendo assim, voc resolveu fazer um programa que l o a altura e o sexo de uma pessoa (M ou F) e calcule o seu peso ideal de acordo com as seguintes frmulas:
Homens: (72.7*h)-58 Mulheres: (66.1*h)-44.7

Exerccio
Dificuldade: mdio

Lucca foi fazer um saque no caixa eletrnico e ele

escolheu o valor a ser retirado. Mostre a menor quantidade de cdulas que devem ser usadas para o saque que Lucca vai fazer.
Vamos considerar que existem cdulas de 1, 2, 5, 10, 20,

50 e 100 Exemplo: 253,00 2 de 100, 1 de 50, 1 de 2 e 1 de 1

Exerccio
Dificuldade: mdio Faa um programa que leia a velocidade mxima permitida

em uma avenida e a velocidade com que Tlio estava dirigindo nela. Calcule a multa que uma ele vai receber, sabendo que so pagos:
50 reais se o motorista estiver ultrapassar em at 10km/h a

velocidade permitida (ex.: velocidade mxima: 50km/h; motorista a 60km/h ou a 56km/h); 100 reais, se o motorista ultrapassar de 11 a 30 km/h a velocidade permitida. 200 reais, se estiver acima de 31km/h da velocidade permitida

Exerccio
Dificuldade: mdio

Faa um programa que leia o nome e o nmero de gols

dos trs maiores artilheiros do campeonato. Imprima o nome do jogador que faz mais gols.

Exerccio
Dificuldade: difcil

Faa um algoritmo que leia hora de incio e de trmino

de um jogo, ambas subdivididas em dois valores distintos : horas e minutos. Calcular e escrever a durao do jogo, tambm em horas e minutos.

Comandos de repetio
Java suporta trs tipos de estruturas de repetio: for while do.

Repetio com FOR


O comando FOR tem como objetivo executar um

conjunto de comandos um nmero pr-determinado de vezes A sintaxe do comando FOR a seguinte:


for (<expressoInicial>; <teste>; <expressaoDeAlterao>) { // bloco de comandos }

expressoInicial inicializao das variveis teste teste para saber quando o lao ser encerrado expressaoDeAlterao mudana das variveis de

controle

Repetio com FOR


Vejamos o exemplo abaixo:
public class AppFor {
public static void main(String[] args) { for (int i = 0; i < 5; i++) { System.out.println(i); } } }

int i = 0 inicializao da varivel i com zero

i < 5 condio de sada


i++ - alterao da varivel i

Repetio com FOR


Perguntas Quantas vezes executado o System.out? O que acontece se o i++ no for executado? Como faz para executar o System.out 30 vezes? Como faz para imprimir os nmeros na mesma linha?

Repetio com FOR


Exemplo: Faa um programa em Java que leia o valor

de N e mostre todos os nmeros pares menores que N.


import javax.swing.JOptionPane; public class AppFor { public static void main(String[] args) { String leitura = JOptionPane.showInputDialog("N"); int n = Integer.parseInt(leitura); for (int i = 1; i <= n; i++) { if (i % 2 == 0) { System.out.print(i+" "); } } } }

Exerccio
Dificuldade: fcil

Construa um algoritmo que imprima a tabela de

equivalncia de graus Fahrenheit para centgrados. Os limites so de 30 a 60 graus Fahrenheit com intervalo de 1 grau.
Frmula: C = 5 * (F -32) / 9

Exerccio
Dificuldade: mdio

Fazer um algoritmo que calcule o fatorial de um

nmero lido.
N! = 1 x 2 x 3 x ... (N-1) x N

Exerccio
Dificuldade: mdio

Fazer um programa em Java que leia um nmero N e

imprima se o valor lido primo ou no

Repetio com WHILE


Em Java tem outras formas de fazer laos alm do FOR.

Por exemplo, podemos usar o comando while para fazer repeties. A sintaxe para o comando while a seguinte:
while (expresso lgica) { // bloco de comandos }

Expresso lgica expresso que permite continuar no

lao caso seja verdadeira. Se o valor da expresso for falso o lao ser interrompido

Repetio com WHILE


Vamos resolver o exemplo do fatorial com o while.
public class AppWhile {
public static void main(String[] args) { int i = 1; int fat = 1; while (i <= 5) { fat = fat * i; i++; } System.out.println(fat); } }

Repetio com WHILE


Perguntas : Quantas vezes ser executado o lao? Qual a varivel de controle do lao? A varivel de controle teve que ser modificada dentro do lao? O que acontece se a varivel de controle no for modificada?

Repetio com WHILE


Exemplo: Lucca tem 1,20 m e cresce 2 centmetros por

ano. Tlio tem 1,10 m e cresce 3 centmetros por ano. Construa um programa Java que calcule em quantos anos Tlio ser maior que Lucca

Exemplo
public class AppWhile { public static void main(String[] args) { double lucca = 1.5; double tulio = 1.1; int anos = 0; while (tulio < lucca) { anos++; tulio = tulio + 0.03; lucca = lucca + 0.02; } System.out.println(anos); } }

Repetio com WHILE


Usamos o nome flags para eventos que marcam

alguma coisa Em algoritmos os flags so normalmente utilizados para encerrar laos.


Veja o seguinte exemplo: Faa um programa Java que

calcule a mdia de um conjunto de nmeros lidos. Usar como flag o valor zero.

Exemplo
import javax.swing.JOptionPane; public class AppWhile { public static void main(String[] args) { String leitura = JOptionPane.showInputDialog("valor"); int valor = Integer.parseInt(leitura); int soma = 0; int cont = 0; while (valor != 0) { soma = soma + valor; cont++; leitura = JOptionPane.showInputDialog("valor"); valor = Integer.parseInt(leitura); } double media = (double) soma / cont; System.out.println(media); } }

Exerccio
Dificuldade: fcil

Faa um programa que leia um conjunto de nmero e

some todos aqueles que forem mltiplos de 3. O flag de parada a leitura do valor zero.

Exerccio
Dificuldade: mdio

Faa um programa que imprima todos os nmeros

primos que esto na faixa de 100 a 200

Exerccio
Dificuldade: mdio

Faa um programa que leia o nome e o salrio de um

conjunto de funcionrios da universidade. Ao final mostrar a mdia de salrios dos funcionrios e o nome do funcionrio que ganha mais. O flag de parada a leitura do nome fim.

Repetio com DO-WHILE


A terceira forma de repetio do Java o comando do-

while, que bastante semelhante ao while.


A sintaxe do do-while a seguinte:
do { // bloco de comandos } while (expresso lgica);

Repetio com DO-WHILE


Usando o do-while os comandos que esto dentro do

lao sero executados pelo menos uma vez Isto acontece porque o teste para continuar a repetio est no final

Exemplo
public class appDoWhile { public static void main(String[] args) { int ant = 1, meio = 1, i = 1; int fibo; do { fibo = ant + meio; ant = meio; meio = fibo; i++; } while (i <= 5) ; System.out.println(fibo); } }

Comandos de repetio
Temos dois comandos especiais para as estruturas de

controle: break e continue.


O comando break deixa uma estrutura de repetio

incondicionalmente. O comando continue executa a prxima iterao do lao, independente dos comandos que seriam executados na seqncia.

Comandos de repetio
public static void main(String[] args) { int i = 1; while ( i <= 10 ) { if ( i == 5 ) { break; } System.out.println(i); i++; } i = 0; while ( i < 10 ) { i++; if ( i % 2 == 0 ) { continue; } System.out.println(i); } }

Exerccios
Lista de exerccios nmero 1...

Você também pode gostar