java basico opearadores e objetos

44
Linguagem de Programação Orientada a Objetos Variáveis, Operadores e Estruturas de Controle Profª. MSc. Márcia Henke [email protected]

description

java basico

Transcript of java basico opearadores e objetos

  • Linguagem de Programao Orientada a Objetos

    Variveis, Operadores e Estruturas de Controle

    Prof. MSc. Mrcia Henke

    [email protected]

  • Variveis, Operadores e Estruturas de Controle

    Objetivos da Aula

    Conhecer os Tipos de Dados

    Aprender as Regras de Declarao de Variveis

    Abstrair as Recomendaes Gerais de Nomenclatura

    Verificar os Operadores e sua procedncia

    Estudar e Implementar programas envolvendo Estruturas de Controle

  • A linguagem Java possui 8 tipos bsicos de dados e que so agrupados em 4 categorias, a saber:

    Inteiros: Byte, Inteiro Curto, Inteiro e Inteiro Longo

    Ponto Flutuante: Ponto Flutuante Simples ou Duplo

    Caractere : caractere

    Lgico: lgico

    Tipos dados primitivos

  • Existem 4 diferentes tipos de dados inteiros, a saber:

    Tipos dados inteiros

    Tipo Faixa de valores Bits

    byte -128 a -127 8

    short (inteiro curto) -32.768 a + 32767 16

    int (inteiro) -2.147.483.648 a +2.147.483.647 32

    long (inteiro longo) -9223.372.036.854.775.808 a + 9223.372.036.854.775.807 64

  • Existem duas representaes para pontos flutuantes

    que se diferenciam pela preciso oferecida:

    float: reais com preciso simples (32 bits)

    double: oferece dupla preciso (64 bits)

    Os valores em ponto flutuante do Java esto em conformidade com o padro IEEE 754, tendo:

    O ponto como separador de casas decimais

    O expoente podendo ser escrito usando o caracter e ou E.

    Exemplo: 2.35E6 (= 2.35x106 = 2350000) ou

    2.3578e-2 (= 2.3578 x 10-2 = 0.023578)

    Tipos dados ponto flutuante

  • Alguns caracteres especiais:

    Tipos dados caractere

    Representao Significado

    \n Nova linha

    \r Retorno de carro

    \b Retrocesso

    \t Tabulao

    \f Nova pgina

    \ Apstrofe

    \ Aspas

    \\ Barra invertida

    \u223d Caractere UNICOD 223d

    \fca Hexadecimal

  • O tipo lgico b o o l e a n capaz de assumir valores false (falso) ou true (verdadeiro) que equivalem aos estados off (desligado) e on (ligado) ou no (no) e yes (sim).

    No existem equivalncia entre os valores do tipo lgico e valores inteiros tal como existem em C/C++.

    Tipos dados Lgicos

  • O tipo lgico b o o l e a n capaz de assumir valores false (falso) ou true (verdadeiro) que equivalem aos estados off (desligado) e on (ligado) ou no (no) e yes (sim).

    No existem equivalncia entre os valores do tipo lgico e valores inteiros tal como existem em C/C++.

    Tipos dados Lgicos

  • Uma varivel em uma linguagem similar a uma varivel em matemtica. Matemtica -> Nome + Domnio + Valor

    Linguagem -> Nome + Tipo + Valor (ou contedo)

    O nome de uma varivel em Java pode ser uma seqnciade um ou mais caracteres alfabticos e numricos, iniciados por uma letra ou ainda pelos caracteres _ (undescore) ou $ (cifro).

    Os nomes no podem conter outros smbolos grficos, operadores ou espaos em branco, podendo ser arbitrariamente longos embora apenas os primeiros 32 caracteres sero utilizados para distinguir nomes de diferentes variveis.

    Letras maisculas so consideradas diferentes das minsculas.

    Declarao de variveis

  • Exemplos vlidos de nomes de variveis:

    a

    resultado

    x2o

    $minimo

    _especial

    RESULT

    Maximo

    DataNasc

    Declarao de variveis

  • Exemplos invlidos de nomes de variveis:

    1x

    Resul

    geral

    salario-minimo int

    Declarao de variveis

  • As palavras reservadas da linguagem Java, que portanto no podem ser utilizadas como nome de variveis ou outros elementos, so:

    Declarao de variveis

    abstract assert booleanbreak byte case catch char class

    constcontinue default do doubleelse enumextendsfalse final

    finally float for goto if implements import instanceofInt

    interface long native new null package private protectedpublic

    public return short static strictfpsuper switch synchronized this

    throw throws transient true try void volatile while

  • Declarao Individual

    int i; float total, preco;

    byte mascara;

    double valorMedio;

    Declarao em Conjunto

    char nota1, nota2;

    Declarao com valor inicial para uma varivel

    int quantidade = 0;

    float angulo = 1.35;

    boolean ok = false;

    char letra = a

    Declarao de variveis

    As variveis podem ser declaradas em qualquer ponto do programa e esto em conformidade com as regras de escopo de variveis.

  • Em Java, recomenda-se que a declarao de variveis utilize nome iniciados com letras minsculas. Caso o nome seja composto de mais de uma palavra, as demais devem ser iniciadas com letras maisculas tal como nos exemplos:

    Contador total sinal

    posicaoAbsoluta mediaMinimaBimestre mediaFinalTurma

    A utilizao de caracteres numricos no nome livre enquanto o uso do trao de sublinhar (underscore _) no recomendado.

    Regras para nomes de variveis

  • So trechos de texto, usualmente explicativos, inseridos dentro do programa de forma que no sejam considerados como parte do cdigo.

    Tipos de comentrios:

    De uma linha (//)

    // comentrio de uma linha

    x = x*i; // comentrio aps duas barras

    Uma ou mais linhas (mltiplas linhas)

    /* comentrio de mltiplas linhas */

    De documentao

    /** comentrio de documentao que

    * tambm pode ter mltiplas linhas

    */

    Comentrio

  • Geralmente o comentrio de documentao posicionado imediatamente antes do elemento a ser documentado e tem seu contedo extrado automaticamente pelo utilitrio javadoc.

    Esta ferramenta gera pginas em formato HTML contendo os comentrios organizados da mesma forma que a documentao fornecida juntamente com o JDK.

    Pode-se adicionam tags html aos comentrios de documentao, incluindo imagens, tabelas, textos explicativos, links e outros recursos.

    Tipos de informaes administradas pelo javadoc que atravs de marcadores pr-definidos iniciados com @ permitem a criao automtica de ligaes hipertexto entre a documentao e a formatao padronizada de outros elementos.

    /** Classe destinada ao armazenament de dados relacionados a

    * arquivos ou diretrios.

    * Pode ser usada para armazenar rvores de diretrios.

    * @autor Mrcia Henke

    * @veja java.io.File */

    Comentrio (continuao)

  • A linguagem Java oferece um conjunto bastante amplo de operadores destinados a realizao de operaes aritmticas, lgicas, relacionais e de atribuio.

    Operadores Aritmticos

    Operadores

    Operador Significado Exemplo

    + Adio a + b

    - Subtrao a b

    * Multiplicao a * b

    / Diviso a/b

    % Resto da diviso inteira a%b

    - Sinal negativo -a

    + Sinal positivo +a

    ++ Incremento unitrio ++a ou a++

    -- Decremento unitrio --a ou a--

  • Multiplicao e Diviso: * e /

    int um = 3 / 2; // diviso de inteiros gera um inteiro

    float umEmeio = (float) 3 / 2; // ocorre promoo aritmtica para float

    double xyz = umEmeio * um; // ocorre promoo aritmtica para float

    Mdulo: %

    int resto = 7 % 2; // resto = 1

    Adio e Subtrao: + e - ?

    long l = 1000 + 4000;

    double d = 1.0 0.01;

    Concatenao:

    long var = 12345;

    String str = O valor de var + var;

    Na concatenao de Strings, as variveis ou literais so promovidos a String antes:

    String str = O valor de var + Long.toString( var );

    Operadores

  • Exemplo :

    Um exemplo de uma aplicao que declara algumas variveis, atribui valores iniciais e efetua algumas operaes imprimindo os resultados

    Operadores

  • //Aritmetica.java

    public class Aritmetica {

    static public void main (String args[]) {

    //Declarao e inicializao das variveis

    int a = 5, b = 2;

    //Vrias situaes envolvendo os operadores aritmticos System.out.println("a = " + a);

    System.out.println("b = " + b);

    System.out.println("-b = " + (-b));

    System.out.println("a + b = " + (a + b));

    System.out.println("a - b = " + (a - b));

    System.out.println("a * b = " + (a*b));

    System.out.println("a / b = " + (a/b));

    System.out.println("(float) a / b = " + ( (float) a/b));

    System.out.println("a % b = " + (a%b));

    System.out.println("a++ = " + (a++));

    System.out.println("a = " + a);

    System.out.println("--b = " + (--b));

    System.out.println("b = " + b);

    } //fim do mtodo main

    } //fim da classe Aritmetica

    Operadores

  • Relacionais

    So operadores que permitem comparar valores literais,variveis ou o resultado de expresses retornando um resultadodo tipo lgico, isto , um resultado falso ou verdadeiro. Osoperadores relacionais disponveis so:

    Operadores

    Operador Significado Exemplo

    == Igual a == b

    != Diferente a != b

    > Maior que a > b

    >= Maior ou igual a a >= b

    < Menor que a < b

  • Um exemplo simples envolvendo operadores relacionais.

    //Relacional.java

    public class Relacional{

    static public void main (String args[]) {

    int a = 15, b = 10;

    System.out.println("a = " + a);

    System.out.println("b = " + b);

    System.out.println("a = b => " + (a == b));

    System.out.println("a != b => " + (a != b));

    System.out.println("a > b => " + (a > b));

    System.out.println("a >= b => " + (a >= b));

    System.out.println("a < b => " + (a < b));

    System.out.println("a " + (a

  • Lgicos

    So operadores que permitem conectar logicamente o resultadode diferentes expresses aritmticas ou relacionais construindoassim uma expresso resultante composta de vrias partes.

    Operadores

    Operador Significado Exemplo

    && E logico (and) a && b

    || OU lgico (or) a || b

    ! Negao (not) !a

  • Operadores de Atribuio

    A atribuio a operao que permite definir o valor de umavarivel atravs de uma constante ou atravs do resultado deuma expresso envolvendo operaes diversas.

    boolean resultado = false;

    byte a, b, c;

    i = 0;

    a = b = c = 0; //equivalncia a=(b= (c=0))

    y = a*x + b;

    Operadores

  • Operador Condicional : ?

    tambm conhecido como operador ternrio, pois trabalha com 3operandos. Ele avalia o primeiro operando. Caso a avaliao retorne true, eleexecuta o segundo operando. Seno, ele executa o terceiro operando. Osegundo e terceiro operandos DEVEM ser do mesmo tipo (seno, use cast).

    O cdigo do operador ternrio abaixo:

    int x = 10;

    int y = (x > 10) ? x : x+1;

    semelhante ao cdigo abaixo:

    int x = 10;

    int y;

    if ( x > 10 ) {

    y = x;

    } else {

    y = x + 1;

    }

    Operadores

  • As estruturas de controle so divididas em:

    Estruturas Sequenciais

    Estruturas de Deciso

    Estruturas de Repetio

    Estruturas de Controle

    Fluxo sequencial de execuo

    Desvio do fluxo de execuo

    Fluxo repetitivo de execuo

  • Estrutura de controle - simbologia

    terminal

    Seta de fluxo de dados

    processamento

    deciso

    conector

    conector

    teclado

    display

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Sequencial

    Como o prprio nome sugere, estrutura sequencial um conjunto de instrues no qual cadainstruo ser executada em sequencia.

    Obviamente, esta sequencia obedece a umalgica de programao.

  • Sequencial

  • Sequencial

  • Exerccios Estrutura Sequencial

    1.Calcula o dobro de um nmero.

    2.Calcula a mdia entre dois nmeros

    3. Imprima o produto entre 28 e 43.

    4. Leia duas variveis A e B e trocar seus valores. Ex: Entrada: A=6 e B=8 Sada: A=8 e B=6.

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Estrutura Condicional ou Deciso

    public class {

    public {

    //Declarao das variveis

    tipo v1, v2, ..., vN;

    tipo resultado;

    resultado = 0;

    leia(v1, v2, ..., vN);

    se (condio)

    resultado = v1 + v2 + ... +vN;

    escreva(resultado);

    }

    }

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Estrutura Condicional ou Decisopublic class {

    public {

    //Declarao das variveis

    tipo v1, v2, ..., vN;

    tipo resultado1, resultado2;

    resultado1 = 0;

    resultado2 = 0;

    leia(v1, v2, ..., vN);

    se (condio){

    resultado1 = v1 + v2 + ... + vN;

    resultado2 = 1*v1 + 2*v2 +...+N*vN;

    }

    escreva(resultado1);

    escreva(resultado2);

    }

    }

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Estrutura Condicional ou Decisopublic class SenhaCofreDecSimples {

    public static void main (String args[]) {

    //Declarao das variveis

    String mensagem, senha;

    mensagem = "Acesso Negado!";

    System.out.println("Programa para Autorizar o acesso a um cofre");

    System.out.print("Digite a senha:");

    senha = entrada.next();

    if (senha.equals(java2"))

    mensagem = "Acesso Autorizado";

    System.out.println(mensagem);

    } //fim do mtodo principal

    }//fim da classe

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Estrutura Condicional ou Decisopublic class {

    public {

    //Declarao das variveis

    tipo v1, v2, ..., vN;

    tipo resultado;

    leia(v1, v2, ..., vN);

    se(condio)

    resultado = v1 + v2 + ... +vN;

    seno

    resultado = 1*v1 + 2*v2 +...+ N*vN;

    escreva(resultado);

    }

    }

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Estrutura Condicional ou Decisoimport java.util.Scanner;

    public class SenhaCofreDecComp {

    public static void main (String args[ ]) {

    //Declarao das variveis

    String mensagem, senha;

    Scanner entrada = new Scanner(System.in);

    System.out.println("Programa para Autorizar

    o acesso a um cofre");

    System.out.print("Digite a senha:");

    senha = entrada.next();

    if (senha.equals(java2"))

    mensagem = "Acesso Autorizado";

    else

    mensagem = "Acesso Negado";

    System.out.println(mensagem);

    } //fim do mtodo principal

    }//fim da classe

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Estrutura Condicional ou Deciso - composta

    se(condio1){

    Instrues quando a condio1 for V;

    }

    seno{

    se(condio2){

    Instrues quando a condio1 for F;

    E a condio2 for V;

    }

    seno{

    Instrues quando a condio1 e

    a condio2 forem F;

    }

    }

    ...

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Estrutura Condicional ou Decisoimport java.util.Scanner;

    public class SistemaCondEnc {

    public static void main (String args[]) {

    Scanner entrada = new Scanner(System.in);

    //Declarao das variveis

    double x, fx;

    System.out.println("Programa: Sistema com 3 equacoes");

    System.out.print("Informe o valor de x: ");

    x = entrada.nextDouble();

    //Estrutura de Decisao Encadeada

    if(x>=3)

    fx=Math.pow(x,2)+x-5;

    else

    if(x>=-1)

    fx=x+1;

    else

    fx=1;

    System.out.printf("F(x) = %.2f\n", fx);

    } //fim do mtodo principla

    }//fim da classe

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Estrutura Condicional ou Decisoimport java.util.Scanner;

    public class SistemaCondEnc {

    public static void main (String args[]) {

    Scanner entrada = new Scanner(System.in);

    //Declarao das variveis

    double x, fx;

    System.out.println("Programa: Sistema com 3 equacoes");

    System.out.print("Informe o valor de x: ");

    x = entrada.nextDouble();

    //Estrutura de Decisao Encadeada

    if(x>=3)

    fx=Math.pow(x,2)+x-5;

    else

    if(x>=-1)

    fx=x+1;

    else

    fx=1;

    System.out.printf("F(x) = %.2f\n", fx);

    } //fim do mtodo principla

    }//fim da classe

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Estrutura Condicional ou DecisoSeleo de Mltipla Escolha

    escolha(opcao){

    caso v1: instruo1;

    caso v2: instruo2;

    ...

    caso v4: instruo1;

    }

    /* Programa: as 4 operaes matemticas */import java.util.Scanner;

    public class CalcSelMulEscolha {public static void main(String args[]) {

    Scanner entrada = new Scanner(System.in);double a, b, result=0;int op; //operacaoSystem.out.println("Calculadora");System.out.println("1 - Soma");System.out.println("2 - Subtrao");System.out.println("3 - Multiplicao");System.out.println("4 - Diviso");

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    //CONTINUAOSystem.out.print("Escolha uma opo: ");op = entrada.nextInt();System.out.print(" 1o. valor: ");a = entrada.nextDouble();System.out.print(" 2o. valor: ");b = entrada.nextDouble();System.out.print("Resultado: ");switch(op){

    case 1: result = a + b;break;case 2: result = a - b;break;case 3: result = a*b;break;case 4: result = a/b;break;default: System.out.print("Escolha de opo invlida");

    } //fim do switchSystem.out.printf("%6.2f\n",result);

    } //fim do mtodo principal}

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Exerccios

    Faa programas em Java para resolver problemas que envolvam:

    1) Controle de entrada de um funcionrio a um sistema, apenas

    quando ele digitar o login e a senha corretamente. Sabe-se que

    inicialmente a autorizao negada.

    2) Leia um valor de x e fornea o resultado de f(x). Sabendo que f(x) =

    x2 + 2x, se x 1, e f(x) = -3x +1, se x < 1.

    3) Calcular a mdia de uma disciplina, informando se o aluno estar

    reprovado ou aprovado. ( Media = (Prova1 + Prova2 + 3*Projeto)/5,

    Aprovado 7,0).

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Faa programas em Java para resolver problemas que envolvam:

    4) Calcule o Imposto de Renda a ser descontado no salrio de um trabalhador. As faixas salariais em funo dos descontos so mostradas na tabela abaixo.

    5) Dados trs valores para os lados (A, B e C) de um tringulo verificar e informar se estes valores formam um tringulo (A

  • Copyright 2000, Departamento de Informtica, UFPE. Todos os direitos reservados sob a legislao em vigor.

    Estrutura Repetio