600 likes | 716 Views
Introdução à Linguagem Java com JCreator. Christien L. Rachid UNIPAC E-Mail: christienrachid@yahoo.com.br URL: http://www.christienrachid.xpg.com.br. Plano do Capítulo. Fases da Programação Ambientes Integrados de Desenvolvimento (IDE) JCreator 3.50 LE
E N D
Introdução à Linguagem Java com JCreator Christien L. Rachid UNIPAC E-Mail: christienrachid@yahoo.com.br URL: http://www.christienrachid.xpg.com.br
Plano do Capítulo • Fases da Programação • Ambientes Integrados de Desenvolvimento (IDE) • JCreator 3.50 LE • Introdução à Linguagem Java (Revisão)
Fase 1 Programa é criado no editor e armazenado em disco. Editor Disco Disco Fase 2 Compilador cria bytecodes e os armazena em disco. Compilador Disco . Fase 3 Carregadorde Classes Memória Principal Carregador de classe coloca bytecodes na memória. ... Fases da Programação Java
. Fase 4 Verificador de bytecodes Memória Principal Verificador de bytecodes confirma que todos os bytecodes são válidos e não violam restrições de segurança do Java ... . Fase 5 Interpretador lê os bytecodes e os traduz para uma linguagem que o computador pode entender, possivelmente armazenando valores dos dados enquanto executa o programa. Intepretador Memória Principal ... Fases da Programação 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
JCreator 3.50 LE • Porque adotamos • Pequeno tamanho (2,21 MB - Instalador), rápida carga, simples • Não requer abertura de Prompt de comando, nem uso de comandos do DOS para compilar ou executar os programas Java, estes são executados diretamente, através de menus ou ícones • ajudam a superar limitações em comparação com outras IDE mais sofisticadas • Facilita o trabalho do programador iniciante em Java • Apresenta vários recursos que facilitam o trabalho de desenvolvimento
JCreator 3.50 LE • Requisitos • Instalação do JDK (6.0): • http://java.sun.com/javase/downloads/index.jsp • Contém as ferramentas para trabalharmos com o Java (compiladores, viewers, etc). • Contém o ambiente de execução Java (JRE) • Documentação da linguagem Java. (J2SE 6.0 Documentation) • http://java.sun.com/javase/downloads/index.jsp • Pode ser integrada na IDE, facilitando a consulta a dúvidas na linguagem. • Instalação do JCreatorLiteEdition (LE) • URL: http://www.jcreator.com/
JCreator 3.50 LE: Interface Estrutura de arquivos e pastas Edição do código fonte Mostra as propriedades do arquivo Apresenta erros de compilação
JCreator 3.50 LE: Workspaces e Projetos • Projetos • Modo na qual JCreator organiza os arquivos de programa • JCreator cria uma pasta onde todos os arquivos do programa são mantidos para um projeto particular (p.e. Exercicio1, Exercicio2) • Permite que arquivos de diferentes projetos estejam em diferentes pastas
JCreator 3.50 LE: Workspaces e Projetos • Workspaces • Workspace é outra pasta • Contém um certo número de projetos • Por exemplo, pode-se criar um workspace chamado Semana1 com os projetos Exercicio1 e Exercicio2 • Workspaces e Projetos facilitam a organização do trabalho
JCreator 3.50 LE: Workspaces e Projetos • Criando um workplace
JCreator 3.50 LE: Workspaces e Projetos • Criando um projeto
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
Arquivos Fonte • Pode conter 3 elementos: 1) Declaração de pacote 2) Sentenças de importação 3) Definição de classes • Devem obedecer essa ordem opcional obrigatório
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.
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 10public static void main(String[] args) { 11 12 System.out.println("Ola Mundo"); 13 } 14 } 15
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 {
class OlaMundo { public static void main(String[] args) { } } ... ... ... Ola Mundo: método main 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"}) Seqüência de declarações definindo o comportamento do método
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) {
Ola Mundo: método main // 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: 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
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
Operador Comentários - Menos unário ~ Inversão do padrão de bits, ou not bit-a-bit ++ -- Incremento e Decremento + - Adição e Subtração * / % Multiplicação, Divisão e Resto & | ^ AND, OR e XOR << >> Deslocamento de Bits > < <= >= == != Relacionais, comparam valores e produzem true ou false Tipos Primitivos • Inteiros e seus Operadores
Tipos primitivos • Operadores de Incremento e Decremento
Operador de atribuição Exemplo Exemplificação Atribui += c += 7 c = c + 7 10 a c -= d -= 4 d = d - 4 1 a d *= e *= 5 e = e * 5 20 a e /= f /= 3 f = f / 3 2 a f %= g %=9 g = g % 9 3 a g Exemplos: int c = 3, d = 5, e = 4, f = 6, g = 12 Tipos primitivos • Operadores Aritméticos de Atribuição • Java fornece vários operadores que abreviam as expressõesde 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.
Operador Comentários - Menos unário float (32 bits) ++ -- Incremento e Decremento + - Adição e Subtração double (64 bits) * / % Multiplicação, Divisão e Resto > < <= >= == != Relacionais, comparam valores e produzem true ou false Tipos primitivos • Ponto Flutuante e operações
Operador Comentários ! Negação Lógica (NOT) && || AND e OR & | AND e OR, (executa obrigatoriamente os dois lados da expressão, ainda que isso não seja necessário para avaliar a expressão) == != Igualdade e ‘não Igualdade’ ?: Ternário HrIncial = (Turno == Manhã ? 7 : 13) //equivalente: if (Turno == Manhã) HrIncial = 7; else HrIncial = 13; Tipos primitivos • Booleanos • true, false
Operador Comentários char Um único caractete Unicode (16 bits) [ ] Indexação (zero...n) se X=“JAVA” então X[2]=‘V’ String Classe que tem uma seqüência de chars + Concatenação Tipos primitivos • Caracteres e operadores
Conversões Figure 6.5. Promotions allowed for primitive types. • 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
Classe Math Método Descrição Exemplo valor absoluto de x (tem versões para (23.7) é 23.7; (0.0) é 0.0; (-23.7) é 23.7 abs( x ) abs abs abs float int log , e ) arredonda o valor de x para o menor (9.2) é 10.0; (-9.8) é -9.0; ceil ( x ) ceil ceil inteiro não menor que x co-seno trigonométrico de x (x em (0.0) é 1.0 cos( x ) cos radianos) x (1.0) é 2.718281828 exp( x ) método esponencial exp e arredonda o valor de x para o maior (9.2) é 9.0; (-9.8) é -10.0 floor( x ) floor floor inteiro não maior que x (2.718282) é 1.0; (7.389056) é 2.0 logaritmo natural de x (base e) log( x ) log log maior valor entre x e y (também em ( 2.3, 12.7) é 12.7; (-2.3;-12.7) é -2.3 max( x, y ) max max float int long versões para , e ) menor valor entre x e y (também em ( 2.3, 12.7) é 2.3; (-2.3;-12.7) é -12.7 min( x, y ) min min float int long versões para , e ) y (2.0, 7.0) é 128.0; (9.0,0.5) é 3.0 pow( x, y ) x elevado à potência y ( x ) pow pow seno trigonométrico de x (x em (0.0) é 0.0 sin( x ) sin radianos) (900.0) é 30.0; (9.0) é 3.0 raiz quadrada de x sqrt( x ) sqrt sqrt tangente trigonométrica de x (x em (0.0) é 0.0 tan( x ) tan radianos)
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).