Escolar Documentos
Profissional Documentos
Cultura Documentos
Java Conceitos Basicos PDF
Java Conceitos Basicos PDF
Construtores
Herana
Packages
Interfaces 2
JAVA
Java um ambiente de execuo completo, no apenas
a linguagem de programao.
package br.ufsc.gsigma;
class Program
{
public static void ma
Editor {
System.out.printl Disco
}
}
4
FASES DE UM PROGRAMA JAVA
Compilao
bytecode
1110010100101010101010100
1001010010101001010101001
0101101101010111001010010
Compilador 1010101010100100101001010
1001010101001010110110101
0111001010010101010101010
0100101001010100101010100
package br.ufsc.gsigma; 1010110110101011110010100
1010101010101001001010010
class Program 1010010101010010101101101
{ 0101111001010010101010101
public static void ma 0100100101001010100101010
{ 1001010111010101111001010
System.out.printl 0101010101010100100101001
} 0101001010101001010110110
} 1010110010100101010010101
Bibliotecas 0100101011101010111100101
0010101010101010010010100
Disco
5
javac <nome do arquivo>.java
FASES DE UM PROGRAMA JAVA
Carregamento
1110010100101010101010100
1001010010101001010101001
0101101101010111001010010 JVM
1010101010100100101001010
1001010101001010110110101
0111001010010101010101010
0100101001010100101010100
1010110110101011110010100
Carregador
1010101010101001001010010
1010010101010010101101101
0101111001010010101010101
-
0100100101001010100101010
1001010111010101111001010
0101010101010100100101001
Verificador
0101001010101001010110110
1010110010100101010010101
0100101011101010111100101
...
0010101010101010010010100
Memria
Disco Bibliotecas
JVM
Interpretador
-
Compilador JIT
...
Memria
7
UM EXEMPLO SIMPLES
public class Exemplo
{
public static void main(String[] args)
{
System.out.println("Al, mundo");
}
}
8
UM EXEMPLO SIMPLES
public class Exemplo
{
class: Indica a declarao de uma classe.
public static void main(String[] args)
Tudo em Java deve ficar dentro de uma
{ classe, no existem variveis ou funes
globais
System.out.println("Al, mundo");
}
}
9
UM EXEMPLO SIMPLES
public class Exemplo
{
public static void main(String[] args)
{
System.out.println("Al, mundo");
public static void main(String[] args)
}
Mtodo main, ponto de entrada do programa
}
10
UM EXEMPLO SIMPLES
public class Exemplo
{
public static void main(String[] args)
{
System.out.println("Al, mundo");
} Chamada de mtodo
}
Chamadas de mtodos so feitas seguindo a forma:
<objeto>.<mtodo>(<parmetros>)
Ponto Flutuante
float 4 bytes, ~ 3.40282347E+38
double 8 bytes, ~ 1.79769313486231570E+308
Caracter
char 2 bytes, '\u0000' a '\uffff'
Booleano
boolean true ou false
13
VARIVEIS
Todas as variveis precisam ter um tipo associado
Variveis so declaradas indicando primeiramente o tipo, e em
seguida o nome
Pode-se opcionalmente inicializar uma varivel durante sua
declarao
Usar uma varivel antes de atribuir um valor a ela um erro de
programao (Null Pointer Exception)
completo = false;
14
STRINGS
Strings so seqncias de caracteres
Java no possui um tipo primitivo especfico para
representar strings, em vez disso elas so encapsuladas
pela classe String
At mesmo strings literais (delimitadas por aspas), so
instncias da classe String
Strings podem ser criadas a partir de literais, ou pela
concatenao de strings com outras variveis
String str = "Al";
int x = 30;
String str2 = str + " " + x;
if ( "Al".equals(str) ) ...
ndices comeam em 0
nomes[0] = "Arthur";
nomes[1] = "Ford";
Naipe n = Naipe.Espadas;
Naipe n = Naipe.Espadas;
28
EXEMPLO
public class Motor
{
//Atributos
private int marcha = 0;
private int rotao = 0;
//Construtores
public Motor(int marcha) { this.marcha = marcha; }
public Motor() { }
//Mtodos
public void sobeMarcha() { marcha++; }
//Outros mtodos...
} 29
CLASSES
O corpo de uma classe pode conter:
Atributos;
Mtodos;
Construtores.
30
ATRIBUTOS
Atributos so variveis que expressam o estado de um objeto;
Mtodos podem ter o mesmo nome, desde que tenham nmero e/ou
tipo de parmetros diferentes entre si.
33
MTODOS (CONT.)
Dentro de mtodos pode-se usar a palavra chave this para fazer
referncia ao objeto sobre o qual o mtodo foi chamado
public Motor() { }
} 36
CONSTRUTORES (CONT.)
Se nenhum for declarado, um construtor padro, vazio, criado
implicitamente;
String x = String.valueOf(2341);
Por exemplo, a classe Carro pode calcular seu deslocamento de uma certa
forma. A classe Formula1 precisa levar mais dados em considerao, como
a presso aerodinmica em seus aeroflios. Ento ela reimplementa o
mtodo para o clculo do deslocamento;
Pode-se fazer:
Carro[] carros = new Carro[2];
//Compilador aceita
Formula1 f = (Formula1) carros[0];
String[] p = f.getPatrocinadores();
47
COERO DE OBJETOS
Suponha que o seguinte mtodo seja adicionada classe Formula1:
String[] getPatrocinadores() {...}
//Compilador aceita
Formula1 f = (Formula1) carros[0];
//Compilador aceita
Formula1 f = (Formula1) carros[0];
49
String[] p = f.getPatrocinadores();
CHECAGEM DE TIPOS
Para se certificar que um objeto mesmo de um dado tipo, e assim
evitar erros, pode-se checar em tempo de execuo o real tipo de
um objeto.
Pode-se checar explicitamente se a classe de um objeto uma dada
classe, ou usar o operador instanceof.
if ( carros[0].getClass() == Formula1.class )
{
Formula1 f = (Formula1)carros[0];
}
if ( carros[0].getClass() == Formula1.class )
{
Formula1 f = (Formula1)carros[0];
}
if ( carros[0].getClass() == Formula1.class )
{
Checa seFormula1
o objeto fdesta
= (Formula1)carros[0];
}
classe, ou de uma classe
descendente
ti.tocar();
char c = tp.ultimaTecla(); 53
PACKAGES
Declaraes de import permitem usar classes sem a qualificao da
package.
Package Diretrio
exemplo exempo/
br.ufsc.gsigma br/ufsc/gsigma/
Recomenda-se que nomes de package sejam
em minsculas, e sigam o nome do domnio de
internet do desenvolvedor.
55
PACKAGES E DECLARAES DE
CLASSES/INTERFACES
Classes e interfaces podem ou no ser declaradas como
pblicas;
As no declaradas como pblicas so visveis apenas por
outras classes e interfaces declaradas na mesma package;
56
INTERFACES
Permitem expressar comportamento sem se preocupar
com a implementao.
interface Voador class Ave implements Voador
{ {
void voar(int tempo); public void voar(int tempo){...}
} public void comer(){...}
}
59
INTERFACES
Clientes usam a interface sem saber qual a
classe que a implementa.
class Testador
{
public void testar(Voador v)
{
for (int i=0; i<5; i++)
v.voar(10 * i); Ave a = new Ave();
} Avio v = new Avio();
} DiscoVoador d = new DiscoVoador();
...
Testador t = new Testador();
O mtodo testar quer algum ...
objeto que implemente o t.testar(a);
comportamento de um Voador, t.testar(v);
t.testar(d);
no importa qual
60
INTERFACES
Uma classe pode implementar vrias interfaces
interface Animal
{
interface Voador void comer();
{ void dormir();
void voar(int tempo); }
}
Ambiente de Desenvolvimento
Eclipse - http://www.eclipse.org/
Eclipse SDK 3.6 (ou superior)
Netbeans - http://www.netbeans.org/
Netbeans IDE 6.5 (ou superior)