Buscar

Cap. 02 Características Iniciais de Java

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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.

Outros materiais