Baixe o app para aproveitar ainda mais
Prévia do material em texto
Isaias Camilo Boratti 2. Características Iniciais de Java - Lançada pela Sun Mycrosystems em 1995 - Linguagem gratuita (http://java.sun.com) - J2SDK ( Java 2 Software Development Kit - kit de desenvolvimento fornecido pela Sun - antiga versão 1.2) - Sintaxe similar a C / C++ - Java (local de origem de um tipo de café) - Orientada a Objetos - Java apresenta uma biblioteca de classes bastante grande - tipos de programas: Applets: programas que são inseridos dentro de páginas www. São transportados pela rede quando a página é acessada e executados pelo navegador. Aplicativos: programas normais que são executados em um computador. Isaias Camilo Boratti - Independente de plataforma: um programa Java pode ser executado com qualquer arquitetura de hardware e com qualquer sistema operacional sem necessidade de recompilação (necessita da máquina virtual Java). - Linguagem compilada e interpretada Código fonte ByteCode java (arquivo .java) (arquivo .class) ............... ............... ............... ................ ............... ............... ............... ................ Compilador Java (Pentium) Compilador Java (Sparc) Interpretador java (Pentium) (Máquina Virtual Java) Interpretador java (Sparc) - Toda classe em java deve ser salva em um arquivo com nome igual ao nome da classe e com extensão .java - Um programa Java pode ser compilado por linha de comando (prompt do MS-DOS, por exemplo) através execução compilador fornecido pela Sun. Para compilar: javac Principal.java - Para cada classe compilada é gerado um arquivo em Bytecodes com o nome da classe e cuja extensão será .class - Para ativar a Máquina Virtual Java, ou seja para interpretar (executar): java Principal -Encontram-se no mercado softwares que fornecem um ambiente integrado de desenvolvimento (IDE’s). Tais softwares utilizam o compilador e interpretador fornecido pela Sun. Jcreator (Xinox), JEdit, NetBeans, Borland Jbuilder, Symantec Café, Microsoft Visual J++, etc. Isaias Camilo Boratti // Um exemplo de programa Java public class Principal { public static void main(String arg[]) { System.out.println(“Este programa imprime esta mensagem”); } } Observações: - Todo programa java deve pelo menos uma classe contendo um método main; - Ao final de cada instrução devemos colocar o ; (ponto e vírgula) - Documentação Para colocarmos documentação em uma linha pode-se usar duas barras consecutivas (//) enquanto que para múltiplas linhas de documentação, deve-se iniciar com /* e finalizar com */ Isaias Camilo Boratti public class Principal { /* Programa que calcula a distancia entre dois pontos Data : 04/02/2003 Autor :Isaias */ public static void main( String x[] ) { Interface umaI; // declara a classe do objeto umaI umaI = new Interface(); // instancia o objeto umaI .................................. ................................. } } - Toda classe em Java tem a forma : public class NomeDaClasse { “Corpo da classe - declarações de atributos e métodos” } -Por convenção todos os nomes de classes iniciam com letra maiúscula; -Por convenção, os nomes de objetos, variáveis, métodos começam com letra minúscula. -Palavras reservadas (public, class, return, etc.) devem ser escritas sempre em minúsculo. -Um identificador em Java (nome de classe, nome de objeto, nome de variável, nome de método, etc) pode ser formado por letras, dígitos, sublinhado ( _ ) e cifrão ($) sendo que o primeiro caracter do identificador não pode ser um dígito. Não pode ser uma palavra reservada. - Java é “case-sensitive” ou seja, letras maiúsculas são diferentes de letras minúsculas. Isaias Camilo Boratti // Outro exemplo public class Principal { public static void main ( String x[]) { System.out.print(“Primeira”); System.out.println(“linha \nSegunda linha”); } } println - Após impressão posiciona o cursor no inicio da próxima linha print - Não avança o cursor Caracteres especiais: \n - posiciona o cursor no inicio da próxima linha \t - posiciona o cursor na próxima tabulação \r - move o cursor para o início da linha atual \\ - se quiser imprimir a barra invertida \” - se quiser imprimir as aspas - As classes da biblioteca de classes de Java são agrupadas por categoria. Estes grupos denominam-se pacotes. O comando import javax.swing.JOptionPane; faz com que seja importada a classe JOptionPane do pacote javax.swing - Muitas classes da biblioteca encontram-se no pacote java.lang o qual é automaticamente incorporado ao aplicativo em desenvolvimento (System, Double, por exemplo) Tipos de dados primitivos em Java a) tipo int - dados tipo int representam quantidades inteiras. Uma variável tipo int ocupa 4 bytes de memória. Amplitude: de -2147483648 a 2147483647 Exemplo: int a,b,c; a = -132; b = 2003; b) tipo long - Representam quantidades inteiras. Ocupam 8 bytes e a amplitude é de: -9223372036854775808 a 9223372036854775807 Isaias Camilo Boratti Exemplo: long a, b = 90; // não inicializa a variável a a =12L; // inicializa a com 12 transf. para tipo long c) tipo byte - Representam quantidades inteiras. Ocupam 1 byte e a amplitude é de-128 a 127 d) tipo short - Representam quantidades inteiras. Ocupam 2 bytes e a amplitude é de: -32768 a 32767 e) tipo float - Representam quantidades reais. Ocupam 4 bytes e a amplitude é de: -3.40292347E+38 a 3.40292347E+38 Exemplo: float valorSalario, a; valorSalario = 240.00f; a = 3.056E-5f; f) tipo double - Representam quantidades reais. Ocupam 8 bytes e a amplitude é de -1.79769313486231570E+308 a 1.79769313486231570E+308 Exemplo: double x = 12.45d; double valor = 3.89e2; Isaias Camilo Boratti g) tipo char - Representam um caracter. Ocupam dois bytes e são sempre representados entre apóstrofos. Exemplo: char letra = ‘a’; h) tipo boolean - São apenas dois valores: true e false. Ocupam 1 byte Exemplo: boolean adulto, crianca; int idade = 21; adulto = idade > 18; crianca = false; Isaias Camilo Boratti Valores inteiros (int , byte, long e short) também podem ser representados na base 8 ou base 16. Base 8 --> representação deve iniciar por zero Base 16 --> representação deve iniciar por 0x ou 0X Exemplo: int a = 010; a b int b = 0xA; int c = a+b; c 8 18 10 Isaias Camilo Boratti Manipulação de Strings Em Java, uma seqüência de caracteres (um string) é um objeto da classe String (pacote java.lang). Exemplos: String nome, endereco, frase; nome = new String(“Isaias”); // constrói o objeto e inicializa endereco = “Rua A”; // constrói e inicializa frase = new String(); /* constrói um string inicializando com nulo */ Um valor (objeto sem identificação) da classe String deve sempre ser especificado entre aspas. Um valor (objeto sem identificação) da classe String pode ser concatenado com qualquer outro valor. String x,y; x y x = 10 + “Isto”+20; y = 10 + 10 + “” + 20+’A’; 10Isto20 2020A Isaias Camilo Boratti Operadores Aritméticos + --> adição - --> subtração * --> multiplicação / --> divisão inteira ou divisão real % --> resto da divisão inteira Hierarquia das Operações Aritméticas 1) (........) 2) * , / , % (o que aparecer primeiro da esquerda para direita) 3) + , - (o que aparecer primeiro da esquerda para direita) Exemplo int a, b, c, d; a b double x; a = 10; b = 25; c= b/a; c x d x = ( a+b-4.5)*1.5 - 2*c; d = b % a; Atribuições permitidas double <-- float <-- long <-- int <-- short <-- byte <-- char Conversão de tipo int x = (int) 3.4; // neste caso ocorre perda por truncamento double y = (double) 4; int valor = (int)’a’; // armazena o código do caracter a 10 25 2 41.75 5 Exponenciação Java não apresenta um operador para exponenciação. Para efetuar a operação de exponenciação, usa-se o método pow da classe Math. Exemplo: double y = Math.pow(x,b); // calcula x elevado a potência b (Math é uma classe do pacote java.lang) Variáveis x Objetos Uma variável consiste em uma posição de memória que armazena um determinado valor. Exemplo: int a, b; a b double x; a = 12; b = a; x x = a*b; 12 12 144.0 Um identificador de objeto consiste em uma posição de memória que, após a construção do objeto, conterá o endereço do objeto. Diz-se então que o nome de um objeto é uma referência ao objeto. Exemplo: Circulo c1, c2; c1 = new Circulo(10.0); c2 = new Circulo(5.0); c2 = c1; // a partir deste ponto, c1 e c2 representam (referem) o // mesmo objeto c1 c2 raio 10.0 raio 5.0 Isaias Camilo Boratti Se quisermos inicializar uma variável que identifica um objeto sem instanciá-lo, basta fazer: Circulo umCirculo; umCirculo = null; /* contem um valor de endereço válido que não não aponta para nenhum lugar */ umCirculo Isaias Camilo Boratti Métodos construtores - São utilizados para construir instâncias da classe (alocar espaço e inicializar os atributos); - Caso o construtor não inicialize explicitamente algum atributo, Java fará a inicialização com determinados valores (0, ‘’, false, null) ; - Recebem o mesmo nome da sua classe e não apresentam tipo de retorno (nem void); - Caso a classe não especifique nenhum construtor, o compilador colocará automaticamente um construtor padrão, sem parâmetros; - Para construir uma instância : nomeDoObjeto = new NomeDoConstrutor (argumentos) ; - Pode-se ter vários construtores na mesma classe, entretanto cada um deve ter assinatura diferente. A assinatura de um método refere-se a quantidade e tipos dos parâmetros. Isaias Camilo Boratti Java permite que um método comum tenha o mesmo nome da classe. Neste caso, o método deve ter um tipo de retorno ou ser declarado como void. Não é recomendável definir métodos que tenham o mesmo nome da classe (exceto construtores onde é obrigatório que tenham o mesmo nome da classe) Isaias Camilo Boratti Métodos Na declaração de um método comum deve sempre ser especificado qual o tipo do resultado que retornará. Caso o método não retorne nenhum resultado seu tipo será void. Um método é encerrado quando: - Caso não tenha nenhum valor de retorno (void), quando for encontrado o comando return; ou quando for encontrado o final do método ( } ) - Caso o método tenha um tipo, quando for encontrado o comando return expressão; Ocorrerá um erro de compilação caso o método tenha um tipo e não apresente o comando return expressão; Isaias Camilo Boratti public class Pessoa { protected static int cont = 0; //atributo de classe protected String nome; // atributo de instância protected int idade; // atributo de instância protected char sexo; // atributo de instância // um construtor public Pessoa() { cont = cont + 1; } // outro construtor public Pessoa ( String vNome, int vIdade, char vSexo) { cont = cont + 1; nome = vNome; idade = vIdade; sexo = vSexo; } // método de classe public static int informeQuantidade() { return cont; } // método de instância public void recebaValorNome(String vNome) { nome = vNome;} public String informeNome() { return nome;} public void recebaValorIdade( int vIdade) { idade = vIdade;} public int informeIdade() { return idade;} public void recebaValorSexo( char vSexo) { sexo = vSexo;} public char informeSexo() { return sexo;} Isaias Camilo Boratti public void facaAniversario() { idade = idade + 1; } protected void finalize() { cont = cont –1; } } Observações: 1) Um atributo declarado com o modificador static será um atributo da classe (variável de classe). Este atributo estará disponível dentro de qualquer método da classe podendo ser acessado (compartilhado) portanto também por todas as instâncias da classe. Entretanto, um atributo de classe é único e pertence a classe. 2) Um método declarado com o modificador static será um método da classe. Pode ser executado tanto pela classe quanto por uma instância da classe. Entretanto, dentro de um método de classe não estão disponíveis os atributos de instância (variáveis de instância). Isaias Camilo Boratti 3) Os atributos de instância (variáveis de instância) serão aqueles que toda instância da classe terá e estão disponíveis portanto dentro de qualquer método de instância. 4) Um método de instância só poderá ser executado por uma instância. 5) Uma classe pode, opcionalmente, apresentar um método destrutor. Em Java, um método destrutor tem por objetivo executar determinadas tarefas quando o objeto for destruído, isto é, quando a área de memória alocada para o objeto for liberada. 6) O destrutor deve ter o nome de finalize() e não pode apresentar parâmetros. 7) O método destrutor finalize() é um método que será ativado pelo coletor de lixo (Garbage Colector), isto é, será executado quando o coletor de lixo for executado. O coletor de lixo tem a função de liberar a memória originalmente alocada para objetos mas que já não é mais referida por nenhuma variável. Isaias Camilo Boratti 8) O coletor de lixo é executado automaticamente pelo interpretador sem a necessidade da aplicação ativá-lo. Uma aplicação pode ativá-lo através: System.gc(); Entretanto a execução do método gc() pela classe System faz apenas uma sugestão ao interpretador (Java Virtual Machine) para que execute o coletor de lixo. Isaias Camilo Boratti System.out.println(“Este programa imprime esta mensagem”); Classe Atributo de classe (objeto) Método Argumento Isaias Camilo Boratti Regras de escopo public class MinhaClasse { protected static int x = 0; // atributo de classe protected int valor; // atributo de instância public MinhaClasse( int dado) // construtor { double dist; // aqui podem ser acessados x, valor, dado e dist // aqui podem ser acessados quaisquer métodos } public static void facaAlgo() // método de classe { long a; // aqui podem ser acessados x, a – bem como qualquer // método de classe } public double execute( int entrada, char letra) // método de instância { // aqui podem ser acessados entrada, letra, x, valor - bem como // qualquer método (de classe ou de instância) String s = new String(); Pessoa umaPessoa = new Pessoa(); // aqui podem ser acessados entrada, letra, x, valor, s, umaPessoa .......................... { // inicio de um bloco char alfa; /* aqui podem ser acessados entrada, letra, x, valor, s, umaPessoa e alfa */ } // fim do bloco // aqui não existe a variável alfa /* este método deve obrigatoriamente apresentar um comando return com um valor tipo double */ } // fim do método } Isaias Camilo Boratti Se dentro de um método for declarada uma variável com o mesmo nome de um atributo, então para este método, esta declaração se sobrepõe a declaração do atributo. Neste caso, o atributo pode ser acessado dentro do método através this. public class MinhaClasse { protected int valor; public int fornecaAlgo() { int valor = 12; return this.valor+valor; } } Se for feita uma tentativa de usar uma variável (não atributo) que não tenha sido declarada ou que não tenha sido inicializada, isto causará uma situação de erro. int soma; soma = soma + 10; // ERRO Isaias Camilo Boratti Variáveis declaradas dentro de um método ou declaradas dentro de um bloco são locais a este método ou bloco. Tais variáveis só existem durante a execução do bloco ou método. Apesar de queJava permite colocar as declarações de atributos e métodos em qualquer ordem é boa norma de programação declarar primeiro os atributos e após os métodos.
Compartilhar