Buscar

Linguem de Programação-Java2

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*18:30
Roberto Willrich - INE/UFSC
*
Introdução à Linguagem Java 
Ms. Christien L. Rachid
FUPAC
E-Mail: christienrachid@gmail.com
*
*
A plataforma Java
É uma plataforma de desenvolvimento dividida em 3 partes:
Java SE.para computador
Java EE.p internet
Java ME.p celular
Java também é uma linguagem de programação presente na plataforma Java.
Java é um também um café e uma ilha da Indonésia.
*
*
Características da Linguagem
*
*
Características
*
*
Características
*
*
Plataforma Java Padrão: Java SE
*
*
A Máquina Virtual Java (JVM)
*
*
A Máquina Virtual Java (JVM)
*
*
Fases da Programação Java
*
*
Fases da Programação Java
*
*
Kit de Desenvolvimento JDK
O JDK pode ser obtido a partir de:
http://java.sun.com/javase/downloads/index.jsp 
*
*
Kit de Desenvolvimento JDK
*
*
Variáveis de Ambiente
*
*
Aplicação Ola Mundo
1
2 // Relembrando a estrutura de um programa Java
3 
4 public class OlaMundo {
5
6	 /**
7	 * IMPRIME NO CONSOLE "OLA MUNDO"
8	 */
9
10	 public static void main(String[] args) {
11
12		 System.out.println("Ola Mundo");
13	 } 	
14 }
15 
*
*
Informações sobre Java
Web: 
http://java.sun.com
http://java.sun.com/javase 
http://java.sun.com/javaee 
http://javaranch.com
http://www.theserverside.com
http://www.mhavila.com.br/link/prog/java/ 
Comunidades:
http://www.guj.com.br/
http://www.mgjug.com.br/
*
*
Informações sobre Java
Revistas brasileiras:
*
*
Informações sobre Java
*
*
Ambientes Integrados de Desenvolvimento (IDE) 
Editores de texto com suporte a programação Java 
jEdit, SciTE, tsWebEditor, Crimson Editor, ConTEXT Programmers editor, JEXT Java Text Editor, JED, Programmer’s File Editor (PFE)
IDEs Básicos
JCreator Lite Edition (LE) (Gratuito)
URL: http://www.jcreator.com/
Gel (Gratuito)
URL: http://www.gexperts.com/
Desenvolvimento está suspenso desde meados de 2004
*
*
Ambientes Integrados de Desenvolvimento (IDE) 
IDEs Avançados
Eclipse
URL: http://www.eclipse.org
NetBeans
URL: http://www.netbeans.org
 JBuilder 
URL: http://www.borland.com
 Jdeveloper 10g
URL: http://www.oracle.com.br
*
*
Arquivos Fonte
Extensão .java
Pode conter diversas classes 
Uma ÚNICA pode ser pública (public)
Mesmo nome que a classe pública mais a extensão .java 
*
*
Classes e Pacotes
Classes
Agrupam definições de atributos, construtores e métodos
Pacotes
Agrupam definições de classes relacionadas
Pacotes facilitam a localização das classes
Definição: Coleção de unidades de compilação relacionadas, permitindo:
Controle de acesso
Um atributo ou método protegido só fica visível dentro do pacote
Gerência do espaço de nomes
Duas classes no mesmo pacote não podem ter o mesmo nome
*
*
Palavras Reservadas
 Como toda linguagem, Java possui identificadores reservados para comandos que permitem a execução de suas instruções
 IMPORTANTE: você não pode utilizar palavras-chave Java como nome de variáveis ou classes.
		�Palavras-chaves Java
		abstract
		assert
		boolean
		break
		byte
		case
		catch
		char
		class
		continue
		default
		do
		double
		else
		extends
		final
		finally
		float
		for
		if
		implements
		import
		instanceof
		int
		interface
		long
		native
		new
		package
		private
		protected
		public
		return
		short
		static
		strictfp
		super
		switch
		synchronized
		this
		throw
		throws
		transient
		try
		void
		volatile
		while
		
		
		
		Palavras-chaves reservadas, mas não utilizadas
		const
		goto
		
		
		
*
*
Comentários
Comentários
/* texto */
O compilador ignora tudo entre /* e */
/** documentacao */
Indica um comentário para documentação. 
Utilizado pela ferramenta javadoc
// texto
Compilador ignora todos os caracteres de // até o final da linha
2 // Relembrando a estrutura de um programa Java
*
*
Classes
Início da declaração da classe OlaMundo
Todo programa Java tem ao menos uma classe definida pelo usuário
Palavra-chave: palavras reservadas para uso da linguagem
Palavra-chave <class> seguida pelo nome da classe
class NomeDaClasse {
 // aqui vai o código
	}
4 public class OlaMundo {
*
*
Classes
Início da declaração da classe OlaMundo
Nome da Classe: identificador 
Série de caracteres formados por letras, digitos, underscores (_) e dollar ($)
Não comece com dígitos e não utilise espaços
Exemplos: BemVindo1, $valor, _valor, botao7
7botao não é válido
Java é case sensitive
a1 e A1 são diferentes
Capitalize todas as palavra (e.g. MinhaClasse) 
Por enquanto use sempre a palavra-chave: public
Visto mais adiante
4 public class OlaMundo {
*
*
Classes
Nome do arquivo
Arquivo deve ter o mesmo nome da classe com a extensão .java
OlaMundo.java
Chaves {
Início do corpo de toda classe
} fecha a declaração da classe (linha 14)
4 public class OlaMundo {
*
*
Ola Mundo: método main
Seqüência de declarações definindo o comportamento do método
Define main() como método de classe
Declaração de tipo dos argumentos:
java Oi "c:\softs" "www.sun.com"
 
Oi.main({"c:\softs","www.sun.com"})
*
*
Ola Mundo: método main
Partida de toda aplicação Java
Aplicação começa a execução com o método main
Apenas um método main por aplicação
Nesta assinatura:
public indica que o método pode ser chamado por qualquer objeto.
static indica que o método pode ser chamado mesmo que nenhuma instância da classe tenha sido criada.
void indica que o método não retorna nenhum valor.
Chaves 
{ -> Início do corpo de todo método
} -> fecha a declaração do método (linha 13)
10	 public static void main(String[] args) {
*
*
Ola Mundo: método main
Argumentos do método
Os argumentos de um método em Java sempre aparecem na assinatura após o nome do método, dentro de parênteses. 
A declaração do argumento é sempre do tipo (TipoDoArgumento nomeDoArgumento). 
Múltiplos argumentos são separados por vírgula, como em (Tipo1 arg1, Tipo2 arg2). 
Métodos sem argumentos devem ter na assinatura um () após o nome.
No caso específico do método main, o argumento é um array de Strings, que pode ser utilizado para execução com opções de inicialização. 
10	 public static void main(String[] args) {
*
*
// Explorando nosso primeiro programa Java
// Passando Argumentos na execução do programa
public class MeuPrimeiroPrograma4 {
 	// o método main inicia a execução do aplicativo Java
 	public static void main (String arg[]) {
 		System.out.print("\n\nImprimindo o que você digitou\n ");
 		System.out.println(arg[0]);
 	} // fim do método main
} // fim da classe MeuPrimeiroPrograma
Ola Mundo: método main
*
*
Ola Mundo: System.out
Imprime uma string de caracteres
System.out
Objeto de saída padrão
Imprime na janela de comando (i.e., prompt MS-DOS)
Método System.out.println 
Apresenta uma linha de texto
Argumento dentro de parênteses
Esta linha é conhecida como instrução
Instruções devem terminar com;
12		 System.out.println("Ola Mundo");
*
*
Ola Mundo: System.out
Imprime uma string de caracteres
A aplicação usa a variável out da classe System, da API Java, para mostrar uma mensagem na tela. 
out é um objeto da classe java.io.PrintStream. 
Println é um método da Classe PrintStream que mostra um string na tela de console. 
Nenhum objeto precisou ser criado nesta chamada
tanto a variável out quanto o método println são estáticos (static). 
12		 System.out.println("Ola Mundo");
*
*
Caracteres especiais
Backslash ( \ )
Indica um caractere especial
		Sequencia
		Descrição
		\n
		Linha nova
		\t
		Tab
Horizontal 
		\r
		Carriage return
		\\
		Backslash
		\"
		Double quote, exemplo
System.out.println( "\"in quotes\"" );
apresenta
 "in quotes"
*
*
Importando Pacotes
Palavra-chave import
Usada para declarar uso de uma classe Scanner do pacote java.util
Pacotes (Packages)
Conjunto de classes relacionadas é chamado de pacote
Grupo de todos os pacotes é conhecido como biblioteca de classe java ou Java API (Java applications programming interface)
Scanner está no pacote java.util
Os nomes dos pacotes Java começam com Java (pacotes do núcleo da linguagem) ou Javax (extensões ao núcleo)
import java.util.Scanner;
*
*
Importando Pacotes
Exemplos de pacotes Java:
java.lang: Tipos e funcionalidades básicas da linguagem. Inclui, entre outras, as classes String, Math, Integer e Thread. É importada automaticamente em seus programas Java;
java.awt: componentes gráficos originais da linguagem (Abstract Window Toolkit); 
javax.swing: pacote de extensão aos componentes gráficos com melhoramentos à biblioteca AWT
java.applet: classes específicas para tratamento de applets;
java.net: recursos de rede (sockets e URLs);
java.io: classes para escrita e leitura em arquivos;
java.util: classes para tarefas gerais, tais como vetores e string de tokens.
*
*
Importando Pacotes
Nome completo de uma classe: nome do pacote + nome da classe
Ex.: java.lang.String -> nome completo da classe String
Sentença import:
Permite a utilização de membros de pacotes sem a necessidade de referenciá-los a partir do seu nome completo
import <nome completo da classe>
A importação pode ser de:
Apenas um membro do pacote
Ex.: import java.awt.Button;
Todos os membros do pacote
Ex.: import java.util.*;
Se não forem usadas todas as classes desse pacote, o compilador vai descobrir quais foram as classes usadas e as importá-las em tempo de compilação
O pacote java.lang é sempre importado
import java.lang.*;
*
*
Declarando variáveis
Declaração de Variáveis
Tipo identificador [ = valorInicial ]
Tipo identificador1, identificador2, identificador3;
Tipos de dados primitivos
Inteiros: byte / short / int / long
Reais: float / double
Outros: char / boolean
Nomes de variáveis
Série de caracteres Unicode
Não pode ser palavra chave
Não pode ser nome de outra variável ou classe
int numero1; // declara variável: primeiro numero a somar 
int numero2; // declara variável: segundo numero a somar 
int soma; // declara variável: soma de numero1 com numero2
*
*
Tipos Primitivos
		Tipo
		Tamanho em bits
		Valores
		Padrão
		boolean
		
		true ou false
		
		
		
		[Nota: A representação de un boleano é especifico de JVM em cada plataforma]
		
		char
		16
		'\u0000' a '\uFFFF' 
(0 a 65535)
		(ISO Unicode character set)
		byte
		8
		–128 a +127 
(–27 a 27 – 1)
		
		short
		16
		–32,768 a +32,767 
(–215 a 215 – 1)
		
		int
		32
		–2,147,483,648 a +2,147,483,647
(–231 a 231 – 1)
		
		long
		64
		–9,223,372,036,854,775,808 a +9,223,372,036,854,775,807
(–263 a 263 – 1)
		
		float
		32
		Faixa negativa:
–3.4028234663852886E+38 a
–1.40129846432481707e–45
Faixa positiva:
1.40129846432481707e–45 a
3.4028234663852886E+38
		(IEEE 754 floating point)
		double
		64
		Faixa negativa:
–1.7976931348623157E+308 a 
–4.94065645841246544e–324
Faixa positiva:
4.94065645841246544e–324 a 1.7976931348623157E+308
		(IEEE 754 floating point)
*
*
Tipos Primitivos
Inteiros e seus Operadores
*
*
Tipos primitivos
Operadores de Incremento e Decremento
*
*
 Java fornece vários operadores que abreviam as expressões de atribuição;
 A simplificação de sintaxe não é a única vantagem desses operadores. Eles aumentam a velocidade de acesso às variáveis em programas.
Tipos primitivos
Operadores Aritméticos de Atribuição
*
*
Tipos primitivos
Ponto Flutuante e operações
*
*
Tipos primitivos
 Booleanos
true, false
*
*
Tipos primitivos
Caracteres e operadores
*
*
Conversões
Promoções de Tipo
Conversões “inofensivas” (que não apresentam nenhum risco de erro) são aceitas implicitamente pelo compilador.
 
*
*
Conversões
Conversões
Conversões com possível perda de dados devem ser feitas explicitamente (truncamento)
float para int
double para long
long para int
...
int i ;
float f ;
String s ;
...
f = i; //promoção
i = (int)f; //explicita
...
*
*
Tipos Referência
Tipos Referência 
Todos os demais tipos de Java!
Definidos a partir de declarações de classes
Quando uma variável em Java é declarada como sendo do tipo de uma classe, esta variável é considerada como sendo do tipo referência
Declaração e inicialização:
String str = “Entendendo Strings”;
Banco brasil = new Banco (“Brasil”); 
Diferentemente das variáveis de tipos primitivos, que armazenam um valor, variáveis do tipo referência armazenam um apontador para um objeto em memória 
*
*
Strings
Strings
São seqüências de caracteres delimitados por “”
Representadas por instâncias da classe String (pacotes java.lang)
Declaração e Inicialização:
String saudacao = “Bom dia!”;
Variável saudacao conterá um apontador (referência) para um objeto do tipo String que estará em memória e que “armazenará” a informação “Bom dia!”
Exemplo:
String s1 = “string1”;
String s2 = “string2”;
String s3 = new String(“s1”);
 char data[] = { ‘a’, ‘b’, ‘c’ };
 String cc = “ab”+ “cde”;
As strings podem ser concatenadas através do operador +
*
*
Strings
Strings: Comparação 
Não use o operador == para comparar Strings
O operador == testa referências quando utilizado com objetos, ou seja, testa se os objetos apontam para mesma posição de memória
Use o método equals() da classe String
Use o método equalsIgnoreCase() da classe String se não for importante a caixa (maiúsculas ou minúsculas)
String nome = “Lisa”;
if(!nome.equals(“Bart”))
If(“Lisa”.equals(nome))
*
*
Classe Math
Expressões Matemáticas
Os métodos da classe Math permitem realizar cálculos comuns necessários em expressões matemáticas.
Exemplos de chamadas de métodos da classe Math:
Função raiz quadrada: double y = Math.sqrt(10.0);
Função mínimo: double z = Math.min(x,10);
Os métodos da classe Math são métodos estáticos
não necessitam de objetos da classe para sua chamada
você deve preceder as chamadas dos métodos com o nome da classe seguido de ponto
*
*
Classe Math
Chamada de Métodos
Métodos podem ser chamados em declarações de variáveis ou como parâmetros de outros métodos
float z = Math.sqrt(4.0*x);
System.out.println(Math.sqrt(x+y*f));
A classe Math possui duas
constantes importantes em programas matemáticos: 
Math.E = 2.7282818284590452354 // valor base de logaritmos naturais
Math.PI = 3.14159265358979323846 // relação entre a circunferência e o diâmetro de círculos
*
*
Método
abs( x )
ceil ( x )
cos( x )
exp( x )
floor( x )
log( x )
max( x, y )
min( x, y )
pow( x, y )
sin( x )
sqrt( x )
tan( x )
Exemplo
pow
(2.0, 7.0) é 128.0; 
pow
(9.0,0.5) é 3.0
sin
(0.0) é 0.0
sqrt
(900.0) é 30.0; 
sqrt
(9.0) é 3.0
tan
(0.0) é 0.0
tangente trigonométrica de x (x em 
radianos)
abs
(23.7) é 23.7; 
abs
(0.0) é 0.0; 
abs
(-23.7) é 23.7
ceil
(9.2) é 10.0; 
ceil
 (-9.8) é -9.0; 
cos
(0.0) é 1.0
exp
(1.0) é 2.718281828
floor
(9.2) é 9.0; 
floor
(-9.8) é -10.0
log
(2.718282) é 1.0;
 log
(7.389056) é 2.0
max
( 2.3, 12.7) é 12.7;
 max
(-2.3;-12.7) é -2.3
min
( 2.3, 12.7) é 2.3; 
min
(-2.3;-12.7) é -12.7
menor valor entre x e y (também em 
versões para 
float
, 
int
 e 
long
)
x elevado à potência y (
x
y
)
seno trigonométrico de x (x em 
radianos)
raiz quadrada de x 
método esponencial 
e
x
arredonda o valor de x para o maior 
inteiro não maior que x
logaritmo natural de x (base e)
maior valor entre x e y (também em 
versões para 
float
, 
int
 e 
long
)
Descrição
valor absoluto de x (tem versões para 
float
, 
int
 e 
log
)
arredonda o valor de x para o menor 
inteiro não menor que x
co-seno trigonométrico de x (x em 
radianos)
Classe Math
*
*
Leitura do Teclado
Usando a classe java.util.Scanner (J2SE 5.0)
Uma classe nova que permite converter um texto para tipos primitivos
Texto pode ser obtido das mais diversas fontes, como:
Strings
InputStream
Arquivos
Permite separar o texto em tokens, que são seqüências de caracteres separados por delimitadores (default são espaço, tabs e mudanças de linha). 
*
*
Leitura do Teclado
Para ler de forma confortável texto do canal de entrada padrão
É preciso criar primeiro um Scanner sobre canal System.in que esta associado ao teclado
	
Para cada um dos tipos primitivos há um método correspondente com a assinatura nextXxx() que retorne um valor desse tipo. 
Se a string não puder ser interpretada como sendo deste tipo, é lançado uma excepção do tipo InputMismatchException. 
Exemplos de algumas leituras de tokens: 
String aToken = sc.next() ; 		//Lê um token 
int num1 = sc.nextInt() ; 		//Lê um token inteiro 
double num2 = sc.nextDouble() ; 	//Lê um token real
String linha = sc.nextLine() ; 	//Lê uma linha 
Scanner input = new Scanner(System.in);
*
*
Impressão Formatada dados formatados
Printf
Primeiro argumento é a string formatada (texto fixo e especificadores de formato)
Especificadores de formato começam com (%) e são seguidos por um caractere que representa o tipo de dado
%s para uma string 
System.out.printf( "%s\n%s\n", " Bem vindo", " a Java!" ); 
%d para um decimal
%f para um número ponto flutuante
System.out.printf( "A soma eh %d\n", soma ); // apresenta soma
*
*
Exemplo 2: Soma
// Programa de adição que apresenta a soma de dois números.
import java.util.Scanner; // programa usa a classe Scanner da package java.util
public class Soma {
	// método main inicia a execução da aplicação Java 
	public static void main( String args[] ) {
		// cria objeto da classe Scanner para obter entradas do teclado
 		Scanner input = new Scanner( System.in ); 
		int numero1; // declara variável: primeiro numero a somar 
		int numero2; // declara variável: segundo numero a somar 
		int soma; // declara variável: soma de numero1 com numero2
 	System.out.print( "Digite o primeiro inteiro: " ); // prompt
 	numero1 = input.nextInt(); // lê primeiro número via método nextInt da classe Scanner 
 	System.out.print( "Digite o segundo inteiro: " ); // prompt
 	numero2 = input.nextInt(); // lê segundo numero
 	soma = numero1 + numero2; // adiciona números
 	System.out.printf( "A soma eh %d\n", soma ); // apresenta soma	
	} // fim do metodo main
} // fim da classe Soma
*
*
Caixa de Dialogo: Caixa de Mensagem 
Classe JOptionPane 
Oferece caixas de diálogo pré-empacotadas que permitem aos programas apresentarem janelas contendo mensagens para o usuário
Faz parte do pacote javax.swing
Pacote que contém várias classes que ajudam o programador a criar GUIs (Graphical User Interfaces) 
// Imprime linhas na caixa de dialogo
import javax.swing.JOptionPane; // importa classe JOptionPane 
public class Dialog1 { 
	public static void main( String args[] ) { 
		// apresenta um dialogo com a mensagem
		JOptionPane.showMessageDialog( null, « Bem vindo\na\nJava" ); 
	} 
} 
*
*
Caixa de Dialogo: Caixa de Mensagem
Classe JOptionPane 
Método JOptionPane.showMessageDialog 
Método estático: não requer a instanciação de um objeto
Argumentos
Primeiro usado para posicionamento na tela
Null para colocar a caixa no centro da tela do frame default
Segundo é a String a apresentar
// Imprime linhas na caixa de dialogo
import javax.swing.JOptionPane; // importa classe JOptionPane 
public class Dialog1 { 
	public static void main( String args[] ) { 
		// apresenta um dialogo com a mensagem
		JOptionPane.showMessageDialog( null, « Bem vindo\na\nJava" ); 
	} 
} 
*
*
Caixa de Dialogo: Caixa de Mensagem
Classe JOptionPane 
Método JOptionPane.showMessageDialog 
Argumentos
Primeiro usado para posicionamento na tela
Null para colocar a caixa no centro da tela do frame default
Segundo é a String a apresentar
Terceiro é o titulo da janela
Quarto é o tipo de mensagem
// Imprime linhas na caixa de dialogo
import javax.swing.JOptionPane; // importa classe JOptionPane 
public class Dialog2 { 
	public static void main( String args[] ) { 
		// apresenta um dialogo com a mensagem
		JOptionPane.showMessageDialog( null, "Bem vindo\na\nJava" , 
 "Titulo", JOptionPane.INFORMATION_MESSAGE); 
	} 
} 
*
*
Caixa de Dialogo: Digitando texto
Classe JOptionPane 
Método JOptionPane.showInputDialog 
import javax.swing.JOptionPane; 
public class BoasVindas {
	public static void main( String args[] ) { 
		// solicita a digitação do nome
		String nome = JOptionPane.showInputDialog("Qual é seu nome?" ); 
 		// cria a mensagem 
		String mensagem = String.format("Bem vindo, %s, a Desenvolvimento 
			orientado a objetos!", nome ); 
		// Apresenta a mensagem de boas vindas 
		JOptionPane.showMessageDialog( null, mensagem ); 
	}
}
*
*
Caixa de Dialogo: Digitando texto
Método showInputDialog()
Variáveis informadas aos programas Java são sempre Strings que devem ser convertidas.
Erros de entradas inesperadas (tipos incompatíveis com as conversões) devem ser tratados pelo usuário (veremos como em tratamento de exceções). 
import javax.swing.JOptionPane; 
public class EntradaInteiro {
	public static void main( String args[] ) { 
		// solicita a digitação do nome
		String sInt = JOptionPane.showInputDialog(« Digite Inteiro?" ); 
 		// cria a mensagem 
		int numero = Integer.parseInt( sInt);
	}
}
18:30
*
18:30
*
18:30
*
18:30
*
18:30
*
18:30
*
18:30
*
18:30
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando