linguagem java - dei.isep.ipp.pt nfreire/java - linguagem. básico.pdf · linguagem java entrada...

Download Linguagem JAVA - dei.isep.ipp.pt nfreire/JAVA - Linguagem. Básico.pdf · Linguagem Java Entrada de…

Post on 09-Nov-2018

218 views

Category:

Documents

3 download

Embed Size (px)

TRANSCRIPT

  • Nelson Freire (ISEPDEI-APROG 2012/13) 1/31

    Linguagem JAVA Bsico

    APROG Algoritmia e Programao

  • Nelson Freire (ISEPDEI-APROG 2012/13) 2/31

    Estrutura de um Programa

    Geral

    Bsica

    Estruturas de Dados

    Variveis

    Constantes

    Tipos de Dados

    Primitivos

    Referncias

    Interfaces com o Utilizador

    Consola

    Grfica

    Linguagem Java Sumrio

    Operadores

    Tipos

    Atribuio

    Aritmticos

    Relacionais

    Lgicos

    Outros

    Precedncias

    Instrues

    Entrada

    Sada

    Atribuio

    Deciso

    Repetio

    Converso de Tipos Numricos

    Strings

  • Nelson Freire (ISEPDEI-APROG 2012/13) 3/31

    Programa Java

    Constitudo por uma ou mais classes

    Linguagem Java Estrutura Geral de um Programa

    Programa

    Classe 1

    Classe 2

    Classe n

    Mtodo 1

    Mtodo 2

    Mtodo m

    Classe Constituda por um

    ou mais mtodos

    Mtodo

    Cdigo que executa

    tarefa

    Exemplos

    razquadrada fatorial

  • Nelson Freire (ISEPDEI-APROG 2012/13) 4/31

    Classe que contm o mtodo main (principal)

    Mtodo main

    Controla execuo do programa

    1 mtodo executado

    Linguagem Java Classe Principal de um Programa

    Classe 1

    Classe i Classe Principal

    (Main Class)

    Programa

    Mtodo 1

    Mtodo 2

    Mtodo m

    Mtodo 1

    Mtodo 2

    Mtodo main

  • Nelson Freire (ISEPDEI-APROG 2012/13) 5/31

    package nome;

    import nomeCompletoClasse;

    public class NomePrograma { // Classe principal ; nomePrograma c/ letra inicial maiscula

    public static void main(String[] args){ // cabealho do mtodo main ; imutvel

    // corpo do mtodo }

    }

    Java distingue letras maisculas das minsculas

    Declarao package

    Especifica nome da package a que pertencer nova classe

    Packages permitem organizar classes Semelhante s pastas dos sistemas de ficheiros que facilitam a gesto de ficheiros Concretamente, so pastas dos sistemas de ficheiros

    Declarao import

    Permite nova classe usar classes pertencentes a outras packages

    Nome completo de uma classe nome da package seguido do nome da classe Exemplo: import java.util.Scanner; // java.util package da classe Scanner

    Modificador de acesso public Especifica se classe/mtodo pode ou no ser usada por outras classes Classes/mtodos pblicos podem ser usados por outras classes

    Linguagem Java Estrutura Bsica de um Programa

    // significa comentrio ( cdigo fonte. No executado )

  • Nelson Freire (ISEPDEI-APROG 2012/13) 6/31

    Categorias

    Variveis // valor pode variar durante execuo do programa

    Constantes // valor constante durante execuo do programa

    Linguagem Java Estruturas de Dados : categorias 1/3

  • Nelson Freire (ISEPDEI-APROG 2012/13) 7/31

    Declarao de Variveis

    Sintaxe // para N variveis do mesmo tipo

    Tipo_de_Dado varivel_1[=valor inicial] [ , , varivel_N[=valor inicial] ] ;

    Exemplos

    int x; // tipo int guarda inteiros; por omisso, variveis numricas inicializadas a 0

    int z=5; // varivel declarada e inicializada; = operador de atribuio

    int x=5, y, z=1; // mltiplas variveis, do mesmo tipo, declaradas na mesma linha

    Local

    Em qualquer parte do corpo do mtodo

    Boa regra prtica

    Mais perto da utilizao

    [...] = opcional

    Linguagem Java Estruturas de Dados : variveis 2/3

    package nome;

    import nomeCompletoClasse;

    public class NomePrograma {

    public static void main(String[] args){

    int x;

    ...

    int y = 10;

    ...

    }

    }

  • Nelson Freire (ISEPDEI-APROG 2012/13) 8/31

    Declarao de Constantes

    Sintaxe // para N constantes do mesmo tipo

    final Tipo_de_Dado constante_1=valor [ , , constante_N=valor] ;

    Exemplos

    final int X=8; // por conveno, nomes em maisculas

    final int X=9, FATOR=20; // mltiplas constantes, mesmo tipo, declaradas na mesma linha

    Local

    Qualquer parte do corpo do mtodo

    Boa regra prtica

    Mais perto da utilizao

    Linguagem Java Estruturas de Dados : constantes 3/3

    package nome;

    import nomeCompletoClasse;

    public class NomePrograma {

    public static void main(String[] args){

    final int X=8;

    ...

    final int FATOR = 20;

    ...

    }

    }

    [...] = opcional

  • Nelson Freire (ISEPDEI-APROG 2012/13) 9/31

    Um Tipo de Dados Define

    Conjunto de dados

    Conjunto de operaes possveis sobre esses dados

    Tipos de Dados so Classificados como

    Primitivos // dados so valores simples

    // Ex: valores inteiros e valores reais

    Referncias (ou No-Primitivos) // dados so referncias de memria de objetos

    // referncia = endereo

    // definidos por classes

    // Ex: classe String - guarda texto

    Linguagem Java Tipos de Dados : classificao 1/3

  • Nelson Freire (ISEPDEI-APROG 2012/13) 10/31

    Categorias

    Inteiros: byte 1 byte (-128, 127) short 2 bytes (-32 768, 32 767) int 4 bytes (-2 147 483 648, 2 147 483 647) long 8 bytes (-9x1018, 9x1018)

    Reais: float 4 bytes (-/+ 3.4 x 1038)

    double 8 bytes (-/+ 1.7 x 10308 )

    Outros: char boolean

    Exemplos

    char c = 'R', opcao= 'a'; // carateres so delimitados por plicas

    boolean flag = false; // valores lgicos: false e true

    double nota = 18.5; // separador decimal o . (ponto)

    Varivel de Tipo Primitivo

    Guarda um valor simples

    Ex: int x = 5;

    Contedo de varivel de tipo primitivo

    RAM

    ...

    5

    ...

    x

    Linguagem Java Tipos de Dados : primitivos 2/3

    Nomes em minsculas

  • Nelson Freire (ISEPDEI-APROG 2012/13) 11/31

    Definidos por Classes

    Exemplos

    String // guarda texto; ver slides Java - Classes

    Scanner // leitura do teclado da consola

    Formatter // escrita formatada na consola

    Varivel de Tipo Referncia

    Exemplos

    String cidade;

    String nome = "Nico";

    String ave = "guia";

    Guarda uma referncia de objeto da classe declarada

    Referncia = endereo de memria

    Considerada objeto

    Exemplos

    nome

    ave

    Contedo de varivel de tipo referncia

    RAM

    ...

    referncia de objeto

    ...

    ave

    ...

    guia

    Objeto da Classe String

    Linguagem Java Tipos de Dados : referncias 3/3

    Nomes de classes iniciadas com letra maiscula

  • Nelson Freire (ISEPDEI-APROG 2012/13) 12/31

    Tipos

    Consola

    Interface Textual

    Interface Grfica

    Caixas de Dilogo Entrada

    Sada

    Linguagem Java Interfaces com o Utilizador

  • Nelson Freire (ISEPDEI-APROG 2012/13) 13/31

    Suportada por objeto da classe Scanner // classe da package java.util

    Mais pormenores Slide seguinte

    package nome;

    import java.util.Scanner; // importa classe Scanner para usar em main

    public class NomePrograma { public static void main(String[] args){ int n; long y; double x; String nome, nome_composto;

    Scanner ler = new Scanner(System.in); // declara um objeto Scanner para ler do teclado

    n = ler.nextInt(); // l um int do teclado e guarda em n y = ler.nextLong(); // l um long do teclado e guarda em y x = ler.nextDouble(); // l um double do teclado e guarda em x nome = ler.next(); // l uma string do teclado e guarda em nome nome_composto= ler.nextLine(); // l uma linha e guarda em nome_composto } }

    Linguagem Java Entrada de Dados - Consola 1/2

  • Nelson Freire (ISEPDEI-APROG 2012/13) 14/31

    Classe Scanner

    Serve para ler ficheiros de texto

    Consola tratada como ficheiro de texto

    Declarao de objeto Scanner

    Scanner ler = new Scanner(System.in);

    Cria objeto (instncia) da classe Scanner (objeto ler)

    Objeto System.in representa dispositivo de entrada standard (teclado)

    System classe que representa sistema de computao

    in objeto da classe System que representa dispositivo de entrada padro

    Por omisso, teclado

    Leitura

    Preciso invocar mtodo do objeto Scanner adequado ao tipo de dado a ler

    Sintaxe: nomeObjetoScanner.nomeMtodo()

    Exemplo: ler.nextInt() // para ler int

    Exemplos de instrues para ler um dado e guard-lo numa varivel

    Leitura de inteiro do tipo int: int num = ler.nextInt();

    Leitura de float: float num = ler.nextFloat();

    Leitura de strings: String s = ler.next(); // ex: nome simples

    String s = ler.nextLine(); // ex: nomes compostos

    Linguagem Java Entrada de Dados - Consola 2/2

  • Nelson Freire (ISEPDEI-APROG 2012/13) 15/31

    Suportada pelo mtodo showInputDialog da classe JOptionPane

    package nome;

    import javax.swing.JOptionPane; // importa classe JOptionPane

    public class NomePrograma {

    public static void main(String[] args){

    // l uma string e guarda em nome String nome = JOptionPane.showInputDialog("Insira um nome:"); ...

    // l um int e guarda em i int i = Integer.parseInt(JOptionPane.showInputDialog("Insira um i