aula - linguagem java - básico

Download Aula - Linguagem Java - Básico

Post on 31-Jul-2015

122 views

Category:

Documents

3 download

Embed Size (px)

DESCRIPTION

Java Bsico - Aula em Slides

TRANSCRIPT

APROG

Algoritmia e Programao

Linguagem JAVABsico

Nelson Freire (ISEPDEI-APROG 2011/12)

1/28

Linguagem Java

Sumrio Operadores Tipos Atribuio Aritmticos Relacionais Lgicos Outros Precedncias Instrues Entrada Sada Atribuio Deciso Repetio Converses entre Tipos Numricos

Estrutura de um Programa Geral Bsica Estruturas de Dados Variveis Constantes Tipos de Dados Primitivos Referncias Interfaces do Utilizador Consola Grfica

Nelson Freire (ISEPDEI-APROG 2011/12)

2/28

Linguagem Java

Estrutura Geral de um Programa

Programa Java Constitudo por uma ou mais classes

Classe 1 Classe constituda por um ou mais mtodos Mtodo 1 Classe n Mtodo 2

Classe 2

Programa

Mtodo m

Mtodo Cdigo que executa uma tarefa Exemplos razquadrada factorialNelson Freire (ISEPDEI-APROG 2011/12) 3/28

Linguagem Java

Classe Principal de um Programa

a classe que contm o mtodo main (principal)

Mtodo 1 Classe 1 Mtodo 2

Mtodo m ProgramaMtodo 1 Classe i Mtodo 2 Classe Principal (Main Class)

Mtodo main

Mtodo main 1 mtodo a ser executado Controla a execuo do programaNelson Freire (ISEPDEI-APROG 2011/12) 4/28

Linguagem Java

Estrutura Bsica de um Programa

package nome; import nomeCompletoClasse;

public class NomePrograma {public static void main(String[] args){ // corpo do mtodo}

// Classe principal// cabealho do mtodo main ; imutvel

// significa comentrio ( cdigo fonte. No executado )

}

Java distingue as letras maisculas das minsculas Declarao package

Especifica o nome da package a que pertencer a 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 a package da classe Scanner public um modificador de acesso Especifica se a classe/mtodo pode ou no ser usada por outras classes Classes/mtodos pblicos podem ser usados por outras classesNelson Freire (ISEPDEI-APROG 2011/12) 5/28

Linguagem Java

Estruturas de Dados : classificao// valor pode variar durante a execuo do programa// valor constante durante a execuo do programa

1/3

Classificadas como:

VariveisConstantes

Nelson Freire (ISEPDEI-APROG 2011/12)

6/28

Linguagem Java

Estruturas de Dados : variveis

2/3

Declarao de Variveis

Sintaxe (para n variveis do mesmo tipo)Tipo_de_Dado varivel_1[=valor inicial] [ , , varivel_N[=valor inicial] ] ; [...] = opcional

Exemplosint x; int z=5; int x=5, y, z=1; Localizao // tipo int guarda inteiros; por omisso, variveis numricas inicializadas a 0 // varivel declarada e inicializada; = o operador de atribuio // mltiplas variveis, do mesmo tipo, declaradas na mesma linha

Em qualquer parte do corpo do mtodopackage nome; import nomeCompletoClasse;

// mais perto da sua utilizao

public class NomePrograma {public static void main(String[] args){ int x; ... int y = 10; ... }

}

Nelson Freire (ISEPDEI-APROG 2011/12)

7/28

Linguagem Java

Estruturas de Dados : constantes

3/3

Declarao de Constantes

Sintaxe (para n constantes do mesmo tipo)final Tipo_de_Dado constante_1=valor [ , , constante_N=valor] ; [...] = opcional

Exemplosfinal int X=8; final int X=9, FACTOR=20; Localizao Em qualquer parte do corpo do mtodopackage nome; import nomeCompletoClasse; public class NomePrograma { public static void main(String[] args){ final int X=8; ... final int FACTOR = 20; ... } }

// por conveno, nomes em maisculas // mltiplas constantes, do mesmo tipo, declaradas na mesma linha

// mais perto da sua utilizao

Nelson Freire (ISEPDEI-APROG 2011/12)

8/28

Linguagem Java

Tipos de Dados : classificao

1/3

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 objectos // referncia = endereo // definidos por classes // Ex: classe String - guarda texto

Nelson Freire (ISEPDEI-APROG 2011/12)

9/28

Linguagem Java

Tipos de Dados : primitivosbyte short int long float double char boolean 1 byte 2 bytes 4 bytes 8 bytes 4 bytes 8 bytes (-128, 127) (-32 768, 32 767) (-2 147 483 648, 2 147 483 647) (-9x1018, 9x1018) (-/+ 3.4 x 1038) (-/+ 1.7 x 10308 )Nomes em minsculas

2/3

Categorias Inteiros:

Reais:

Outros:

Exemplos char c = 'R', opcao= 'a'; boolean flag = false; double nota = 18.5; // caracteres so delimitados por pelicas // valores lgicos: false e true // separador decimal o . (ponto)x

RAM ...5

Varivel de Tipo Primitivo Guarda um valor simples Ex: int x = 5;

...Contedo de uma varivel de tipo primitivo

Nelson Freire (ISEPDEI-APROG 2011/12)

10/28

Linguagem Java

Tipos de Dados : referncias

3/3

Definidos por Classes Exemplos

StringScanner

// guardar texto; ver slides Java - Classes// leitura do teclado da consola

Nomes de classes iniciadas com letra maiscula

Formatter

// escrita formatada na consolaRAM ...ave referncia de objecto

Varivel de Tipo Referncia Exemplos String cidade; String nome = "Nico"; String ave = "guia"; Guarda uma referncia de objecto da classe declarada Referncia = endereo de memria Considerada objecto Exemplos: nome e ave

...guia

...

Objecto da Classe String Contedo de uma varivel de tipo referncia

Nelson Freire (ISEPDEI-APROG 2011/12)

11/28

Linguagem Java

Interfaces do Utilizador

Tipos Consola

Interface Textual

Interface Grfica

Caixas de Dilogo Entrada

Sada

Nelson Freire (ISEPDEI-APROG 2011/12)

12/28

Linguagem Java

Entrada de Dados - Consola// classe da package java.util

1/2

Suportada por um objecto da classe Scanner package nome; import java.util.Scanner; 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); n = ler.nextInt(); y = ler.nextLong(); x = ler.nextDouble(); nome = ler.next(); nome_composto= ler.nextLine(); }

// importa classe Scanner para usar em main

// declara um objecto Scanner para ler do teclado // l um int do teclado e guarda em n // l um long do teclado e guarda em y // l um double do teclado e guarda em x // l uma string do teclado e guarda em nome // l uma linha e guarda em nome_composto

} Mais pormenores no slide seguinteNelson Freire (ISEPDEI-APROG 2011/12) 13/28

Linguagem Java

Entrada de Dados - Consola

2/2

Classe Scanner Serve para ler ficheiros de texto

Consola tratada como um ficheiro de texto Declarao de um objecto Scanner

Scanner ler = new Scanner(System.in); Cria um objecto (instncia) da classe Scanner (objecto ler)

O objecto System.in representa o dispositivo de entrada standard (teclado) System a classe que representa o sistema de computao in o objecto da classe System que representa o dispositivo de entrada standard Por omisso o teclado Leitura preciso invocar um mtodo do objecto Scanner adequado ao tipo de dado a ler Sintaxe: Exemplo: nomeObjectoScanner.nomeMtodo() ler.nextInt()

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 compostos14/28

Nelson Freire (ISEPDEI-APROG 2011/12)

Linguagem Java

Entrada de Dados Interface Grfica

Suportada pelo mtodo showInputDialog da classe JOptionPane

package nome;import javax.swing.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 inteiro:")); // l um long e guarda em l long l = Long.parseLong(JOptionPane.showInputDialog("Insira um inteiro:")); ... // l um double e guarda em d double d = Double.parseDouble(JOptionPane.showInputDialog("Insira um real:")); // l um float e guarda em f float f = Float.parseFloat(JOptionPane.showInputDialog("Insira um real:")); }

// importa classe JOptionPane

}Nelson Freire (ISEPDEI-APROG 2011/12) 15/28

Linguagem Java

Sada - Consola

Suportada pelos mtodos print, println e printf do objecto System.out System a classe que representa o sistema de computao out objecto da classe System que representa o dispositivo standard de sada Por omisso o ecr Mtodos de escrita System.out.print("mensagem"); printf - consultar o mtodo String.format nos System.out.println("mensagem"); slides Java-Classes System.out.printf(string_formatao, lista_variveis) ;

package nome;public class NomePrograma { public static void main(String[] args){ System.out.print("Operao impossvel!"); // Escreve mensagem e coloca cursor no fim System.out.println("Diviso por zero!!"); // Escreve mensagem e coloca cursor no incio da