Академический Документы
Профессиональный Документы
Культура Документы
Linguagem Java
Fundamentos
Pg. 1
Pg. 2
Pg. 3
Eclipse
Pg. 4
Java IDEs
Eclipse
NetBeans
Pg. 5
http://www.eclipse.org
Pg. 6
Pg. 7
Pg. 8
Caractersticas do Java
Simples
Orientada a Objetos
Distribuda
Suporte a Concorrncia
Dinmica
Independente de Plataforma
Portvel
Alta Performance
Robusta
Segura
Pg. 9
Cdigo-fonte
bytecode
package
public class {
Logger.get
0101010101010
1101010101010
1010101010101
0101101011110
JVM
Pg. 10
A Linguagem Java
ByteCode
Cdigo intermedirio (*.class), entre o cdigo fonte (*.java) e o cdigo de
mquina.
Compilador
Responsvel pela gerao do bytecode (*.class) atravs da traduo do cdigo
fonte.
JVM
Mquina virtual do Java, responsvel pela leitura do bytecode, traduo para a
linguagem de mquina e execuo do programa.
Classpath
Conjunto de caminhos especificado para a JVM encontrar as classes
necessrias para a execuo do programa.
Pg. 11
Os arquivos fontes
Arquivos fontes devem obrigatoriamente seguir a seguinte
estrutura e ordem:
Definio do Pacote
Lista de imports
Declarao de Classe (s)
Corpo da Classe
permitido que haja uma nica classe pblica por arquivo
fonte
A classe pblica deve conter o mesmo nome que o arquivo
fonte.
Se o nome da classe Aluno ento o nome do arquivo
fonte deve ser Aluno.java
2014 OFICINA DO FUTURO Todos os direitos reservados
Pg. 12
Pacotes
Pg. 13
Pacotes
Pg. 14
Pacotes
Pg. 15
Adicionando comentrios
Pg. 16
Sintaxe
Statement:
Uma ou mais linhas terminadas por ;
Blocos:
Conjuntos de statements delimitados por { e }
Comentrios:
// comentrio simples, de uma linha
/* */ comentrio simples, de uma ou mais
linhas
/** */ comentrios para documentao
(Javadoc)
2014 OFICINA DO FUTURO Todos os direitos reservados
Pg. 17
A Linguagem Java
Utiliza-se o import para declarao de classes que so referenciadas
no arquivo fonte mas que no pertencem ao pacote onde este
arquivo se encontra.
Imports podem referenciar:
Outras classes no mesmo projeto
Classes da API Java, como java.util.List
Classes contidas nas bibliotecas utilizadas pelo projeto, ou seja,
nos arquivos *.jar referenciados no classpath do projeto
Sintaxe:
import java.util.Date;
import java.util.*;
2014 OFICINA DO FUTURO Todos os direitos reservados
Pg. 18
Declarao da classe
Todo arquivo Java precisa ter uma classe pblica e seu
nome precisa ser igual ao nome dessa classe.
Pg. 19
Pg. 20
O corpo da classe
O corpo da classe definido entre chaves { e }. Se no
fecharmos uma chave aberta, um erro de compilao ser
mostrado.
Pg. 21
O corpo da classe
Pg. 22
O mtodo main
Pg. 23
O mtodo main
Pg. 24
O mtodo main
Pg. 25
Arquivos fontes
// Declarao de Pacote
package de pessoal.meuPacote;
// Declarao imports
import java.util.Random; //Importao de uma classe
import java.sql.*;
//Importao de um pacote inteiro
// Definies de Classes
public class MinhaClasse
{
... // Corpo da Classe
}
Pg. 26
Definio de um Atributo:
[modificadores] tipo nomeDoAtributo [ = inicializao ];
Exemplos:
private static int numero;
public final String tamanhoMaximo = 15;
private String nome = Maria da Silva;
double raio = 6.5;
Object o = new Object();
Pg. 27
Declarando mtodos
Definio de um mtodo:
[modificadores] retorno nomeDoMetodo ( [Argumentos] ) [ throws Exees ]
{
...
[ return varRetorno; ]
}
Exemplos:
private void obtemNumeroAlunosTurma ( long codigoTurma ) { ... }
public String getNomeAluno( int codigoAluno ) { ... }
public void insereAluno ( String nomeAluno ) throws Exception { ... }
public static long getNumeroInstancias () { ... }
Pg. 28
Exemplo de classe
public class Aluno
{
String nomeAluno;
int codigoAluno;
public String getNomeAluno()
{
return nomeAluno;
}
public void setNomeAluno( String param )
{
nomeAluno = param;
}
public int getCodigoAluno()
{
return codigoAluno;
}
public void setCodigoAluno( int param )
{
codigoAluno = param;
}
}
2014 OFICINA DO FUTURO Todos os direitos reservados
Pg. 29
Programando em Java
Pg. 30
Tipo de dados
Pg. 31
Tipos primitivos
Tipo
Contedo
Default
Tamanh
o (bits)
8
Mnimo
Mximo
--
--
16 \u0000
\uFFFF
boolean
Valor lgico
False
char
Caracter Unicode
\u0000
byte
-27
27 1
short
16
-215
215 1
int
32
-231
231 1
long
64
-263
263 1
float
Ponto flutuante
0.0
32
IEEE 754*
IEEE 754*
double
Ponto flutuante
0.0
64
IEEE 754*
IEEE 754*
Pg. 32
Programando em Java
Podemos declarar as variveis dentro da classe (varivel
Global) ou dentro de um mtodo.
Seguindo a sintaxe: tipo + nomeVarivel;
Exemplos:
Pg. 33
Programando:
Pg. 34
Programando:
Atribua valores para essas variveis e imprima usando o
comando:
System.out.println(variavel);
Pg. 35
Identificadores
Pg. 36
Pg. 37
Palavras reservadas
abstract
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
extends
false
final
finallly
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
super
synchronized
this
throw
throws
transient
true
try
void
volatile
while
Pg. 38
Operadores
Operador
Operao
++ , --
In/decremento unrio
+,-
Complemento de 1
(tipo)
cast
*, /, %
+,-
Adio, subtrao
Concatenao de strings
<<
Shift left
>>
Shift right
>>>
<, <=
> , >=
Instanceof
Comparao de tipos
Pg. 39
Operadores - continuao
Operador
Operao
==, !=
Igual/diferente (valores)
==, !=
&
E (bits)
&
E (lgico)
XOR (bits)
XOR (lgico)
OU (bits)
OU (lgico)
&&
E (lgico)
||
OU (lgico)
?:
Atribuio
Pg. 40
Exerccio:
Dica:
Pg. 41
Pg. 42
Pg. 43
do/while()
do
{
<bloco de comandos>
} while(expressao_booleana)
for
for (<statement_inicializacao> [, <statement_inicializacao n>];
<condicao_parada>;
<expressao_incremento> [, <expressao_incremento n>])
{
<bloco de comandos>
}
Pg. 44
Pg. 45
Exerccios:
Pg. 46
Desafio:
Pg. 47
A classe String
Pg. 48
Arrays
Array uma estrutura de tamanho fixo que armazena mltiplos valores do mesmo tipo.
Pg. 49
Utilizando Arrays
Pg. 50
Utilizando Arrays
Exemplos:
Declarao
String[ ] nomes;
Construo
nomes = new String[20];
Inicializao
nomes[0] = Maria;
Pg. 51
Exerccios:
Pg. 52
Referncias
Pg. 53
Conceitos e Fundamentos da
Linguagem Java
Conceitos de Orientao a
Objetos
Pg. 54
Histria da POO
Pg. 55
Histria da POO
Pg. 56
Histria da POO
Primeira gerao: linguagem de mquina
Segunda gerao: linguagem de montagem (assembly)
Terceira gerao: linguagem de alto nvel
Quarta gerao: linguagens para gerao de aplicaes
Gerao Orientada a Objetos: linguagens voltadas para reuso
e manuteno.
A quinta gerao enfrenta o desafio de efetuar a manuteno
e o reuso das milhares de aplicaes desenvolvidas pelas
geraes anteriores e atual.
Pg. 57
Paradigma Estruturado:
foco na ao;
Executa funes ou procedimentos.
Paradigma Orientado a Objetos:
foco no modelo;
representa o modelo de entidades agrupando os dados e
seus comportamentos correspondentes.
Pg. 58
Benefcios:
Pg. 59
Conceitos
Pg. 60
Abstrao
Pg. 61
Encapsulamento
Pg. 62
Herana
Pg. 63
Herana
Pg. 64
Herana
Pg. 65
Polimorfismo
Pg. 66
Polimorfismo
Pg. 67
Classe
Um modelo que descreve um objeto
Objetos
Representam entidades existentes no mundo real
Mensagens
Mensagens so as aes dos objetos. Em outras
palavras, so as chamadas para os mtodos dos
objetos.
2014 OFICINA DO FUTURO Todos os direitos reservados
Pg. 68
Exemplos:
A classe Pessoa
Quais itens descrevem caractersticas de uma
pessoa?
Quais itens descrevem comportamentos de uma
pessoa?
Pg. 69
Exemplos:
Pg. 70
Relacionamentos
Pg. 71
Pg. 72
Generalizao
Especializao
Pg. 73
Composio
Pg. 74
Exerccio
Pg. 75
Exerccio
Dica:
Esse diagrama deve conter todos os tipos de
relacionamentos aprendidos nessa lio.
Pg. 76
Vantagens
Pg. 77
Vantagens
Reuso
- Acontece devido aos possveis relacionamentos
entre as classes: Herana e Composio.
Abstrao
- Atributos e comportamentos bem encapsulados, o
que torna o cdigo mais manutenvel e robusto.
Pg. 78
Reuso
Pg. 79
Abstrao
Pg. 80
Interfaces
No so classes
No possuem mtodos implementados
Possuem apenas definio de comportamento:
Mtodos abstratos
Constantes
No podem ser instanciadas
Para qu servem???
2014 OFICINA DO FUTURO Todos os direitos reservados
Pg. 81
Classes Abstratas
Classes abstratas so classes que podem possuir
mtodos implementados, mas que possuem ao menos
um mtodo abstrato.
Mtodo abstrato aquele em que no existe
implementao, apenas sua definio.
So teis quando definem a implementao de mtodos
comuns a todas as classes que as estendem, mas
obrigam que cada uma destas classes definam a
implementao dos outros mtodos abstratos.
Classes abstratas no so instanciadas.
2014 OFICINA DO FUTURO Todos os direitos reservados
Pg. 82
Pg. 83
Exerccios
Pg. 84
Conceitos e Fundamentos da
Linguagem Java
Pg. 85
Classes e Mtodos
Pg. 86
Classes e Mtodos
Pg. 87
Declarao da Classe
Pg. 88
Modificadores
Pg. 89
Tipos de Retorno
Pg. 90
Nomes
Pg. 91
Pg. 92
Mtodos de Acesso
Pg. 93
Getters e Setters
Exemplos:
Pg. 94
Exerccios
Crie um novo pacote chamado Escola;
Crie uma classe pblica chamada Aluno;
Crie os seguintes atributos:
- matricula (String)
- nome (String)
- curso (String)
- idade (int)
Crie os mtodos de acesso para esses atributos;
Controlar no mtodo que pega a idade se o usario entrou
com a idade menor que 1, nesse caso, atribuir o valor 0
(zero).
2014 OFICINA DO FUTURO Todos os direitos reservados
Pg. 95
Construtor da Classe
Para que um objeto exista necessrio contru-lo, isto , dizer para a JVM
que necessrio espao de memria para criao do objeto.
Pg. 96
Pg. 97
Exemplo de Classe
public class Aluno
{
String nomeAluno;
int codigoAluno;
public Aluno()
{}
//construtor vazio
Pg. 98
Exerccio
Pg. 99
Exerccio Continuao
Pg. 100
Controle de Acessos
Pg. 101
Nveis de Acesso
Pg. 102
Pg. 103
Exerccio
Pg. 104
Desafio
Pg. 105
Varivel This
A varivel this Diferenciando Atributos de
Variveis Locais
public class Pessoa
{
private String nome;
public void setNome( String nome )
{
// this.nome -> atributo da classe
// nome -> varivel local ao mtodo
this.nome = nome;
}
}
Pg. 106
Pg. 107
A Classe String
Pg. 108
A Classe Object
Pg. 109
Garbage Collector
Pg. 110
Herana
Pg. 111
Herana - Conceitos
A implementao do conceito de herana em Java
feito com a palavra extends.
Em Java possvel extender SOMENTE uma classe.
Um classe que extende a outra chamada de sub
classe, e a classe extendida chamada de super
classe.
A sub classe uma especializao da super
classe.
A super classe uma generalizao da sub classe.
2014 OFICINA DO FUTURO Todos os direitos reservados
Pg. 112
Herana - Sintaxe
Pg. 113
Sobreescrita de Mtodos
Usado quando preciso modificar o comportamento de um mtodo da
classe pai.
Para sobreescrever um mtodo as condies abaixo devem ser
satisfeitas:
O nome do mtodo assim como o tipo e a ordem dos paramtros
devem ser idnticos aos do mtodo da classe pai.
O tipo de retorno tambm deve ser idntico.
A visibilidade no deve ser mais restritiva que a visibilidade do
mtodo original.
O mtodo no dever lanar checked exceptions que no so
lanadas pelo mtodo original.
2014 OFICINA DO FUTURO Todos os direitos reservados
Pg. 114
Herana e Super
Pg. 115
Sobrecarga de mtodos
Pg. 116
Sobrecarga de mtodos
public class ExemploSobrecarga()
{
public void metodoSobrecarregado(int param1){ }
public void metodoSobrecarregado(String param1){ }
public void metodoSobrecarregado(int param1,
String param2){ }
public void metodoSobrecarregado(String param1,
int param2){ }
public void metodoSobrecarregado(double param1,
String param2, int param3){ }
}
2014 OFICINA DO FUTURO Todos os direitos reservados
Pg. 117
Sobrecarga de mtodos
class Base {
public base( String s ) {
// inicializa o objeto usando s
}
public base( int i ) {
// inicializa o objeto usando i
}
}
class Derived extends Base {
public Derived( String s ) {
// passa o controle para o construtor de Base na linha 2
super( s );
}
Public Derived( int i ) {
// passa o controle para o construtor de Base na linha 5
super( i );
}
}
2014 OFICINA DO FUTURO Todos os direitos reservados
Pg. 118
Exerccio
Codifique as
seguintes classes:
Pg. 119