O documento apresenta um mini-curso de Java Básico ministrado por duas professoras. O mini-curso irá apresentar os principais conceitos de Java e Orientação a Objetos em apenas 3 horas e incluirá apresentações, práticas e esclarecimento de dúvidas. A agenda inclui tópicos como variáveis, tipos primitivos, controle de fluxo, classes, herança e interfaces.
3. Eliane Craveiro Raquel Carsi
Estudante do curso Concluinte do curso
de Análise e de Análise e
Desenvolvimento de Desenvolvimento de
Sistemas Sistemas
Trabalha com Java no Trabalha com Java no
projeto SIEP, da projeto SIEP, da
SETEC/MEC SETEC/MEC
Desenvolve com Java Desenvolve com Java
desde 2007 desde 2006
Weblog:
raquelcarsi.wordpress.co
m
8. O que é Java?
Instalando ...
Criando o primeiro programa
Variáveis primitivas
Tipo Primitivos
Controle de Fluxo
Orientação a Objetos
Array
Modificadores de Acesso
Herança e polimorfismo
Classes Abstratas
Interface
9. O que é Java?
Características;
Máquina Virtual;
Java Lento;
JVM? JRE? JDK?
Java
10. Linguagem de Programação;
Criada em 1991;
James Gosling;
Oak ( Carvalho );
O que é Java?
11. Simples;
Orientada a Objetos;
Familiar;
Robusta;
Segura;
Portável (independente de plataforma);
Características...
17. JDK
◦ O Java Development Kit é composto pelo JRE e
um conjunto de ferramentas úteis ao
desenvolvedor Java;
◦ Onde baixar:
JRE
◦ O Java Runtime Environment contém tudo
aquilo que um usuário comum precisa para
executar uma aplicação Java (JVM e
bibliotecas), como o próprio nome diz é o
“Ambiente de execução Java”.
JDK? JRE?
39. Faça assim:
TipoDaVariavel nomeDaVariavel;
Exemplo:
int idade;
Uma idade do tipo int que guarda um número inteiro
A partir de agora você pode usá-la!
Declarando variáveis
40. Você pode atribuir valores!
idade=15;
Quer dizer que idade agora vale 15
Você pode usar esse valor!
System.out.println(idade);
O valor da idade será mostrado na tela.
Usando variáveis
41. Você pode declarar uma outra variável
e usar o valor da variável idade!
int idadeNoAnoQueVem;
idadeNoAnoQueVem = idade + 1;
Idade agora vale 16
Usando variáveis
42. Quando você declara, você já pode atribuir um
valor!
Exemplo:
int idade = 15;
Você pode usar os operadores +,-,/, * e o %.
int quatro = 2 + 2;
int seis = 3 * 2;
int um = 5%2;
5 dividido por 2 dá 2 e tem resto 1. Esse
operador % pega o resto da divisão inteira.
Usando variáveis
43. Para armazenar valores reais use double!
double pi = 3,14;
O boolean armazena valor verdadeiro ou falso!
boolean verdade = true;
boolean mentira = false;
O tipo char guarda apenas um caractere! Você deve
usar aspas simples!
char letra = 'a';
Usando variáveis
44. Podem conter caracteres, dígitos, _ e $
Devem começar com caractere, _ ou $
Não podem conter espaços
Maiúsculas diferentes de minúsculas
Exemplos
nota ; x ; y ; raio ; mediaTotal
media_total ; media$total ; media1
media2 ; media_1 ; media$1
nomePai ; NomePai ; nome_mãe
Nomes de Variáveis
48. Palavra Descrição Tamanho/formato
Inteiros
byte Inteiro de 1 byte 8 bits
short Inteiro pequeno 16 bits
int Inteiro 32 bits
long Longo 64 bits
Números Reais
float Ponto flutuante de precisão simples 32 bits
double Ponto flutuante de precisão dupla 64 bits
Outros tipos
char Um caractere 16 bits-Unicode
boolean Um valor lógico true ou false
Tipos Primitivos
49. int x; boolean isPermitido = true;
x = 234; double d = 1235.56;
byte b = 89; boolean isAcessado;
isAcessado = false;
boolean ligado; char c = ‘R’;
ligado = isPermitido; int z = x;
long big = 3456789; float f = 72.5f;
Exemplos
51. Operador Operador
Operador de Java Operador de Java
Descrição Descrição
Inferior, igual ou
[] Array índice < <=
inferior a
() Método chamada Superior, superior
> >=
ou igual a
. Membro acesso
instanceof Referência teste
Prefixo ou
++
incremento postfix == Igual a
Prefixo ou
-- decrementar
postfix != Não é igual a
+- Unário plus, minus
~ NÃO bitwise & Bitwise AND
Booleano (lógico)
! Booleano (lógico)
NÃO &
new Objeto criação E
Multiplicação, ^ Bitwise XOR
*/%
divisão, resto Booleano (lógico)
+- Adição, subtração ^
XOR
Seqüência
+ | Bitwise OR
concatenação
Assinado bit shift Booleano (lógico)
<< esquerda para a |
OU
direita
Assinado bit shift Booleano (lógico)
&&
>> direita para a E
Booleano (lógico)
esquerda bit shift ||
Unsigned OU
>>> direita para a ?: Condicional
esquerda
= Atribuição
Operadores
53. Executa blocos de código delimitados
por chaves {...}
Estruturas de Controle de Fluxo
54. if
if/else
while
do
for
switch
Estruturas de Controle de Fluxo
55. Sintaxe:
if (condicaoBooleana) {
condicaoBooleana CondicaoBooleana é uma expressão
instruções; Que retorna true ou false. Você pode
} usar os operadores <, >, <=, >= e
outros.
Exemplos:
int idade = 15; String nome = “Raquel”;
if (idade < 18) {
18 If (nome.equals(“Eliane”)){
System.out.println(quot;Não pode entrarquot;); System.out.println(“O nome é Eliane”);
} }
if
56. Sintaxe:
if (condicaoBooleana) {
condicaoBooleana Indica o comportamento que deve
instruções; ser executado no caso da expressão
} else if (condicaoBooleana) {
condicaoBooleana booleana ser falsa!
instruções;
} else {
instruções;
}
int idade = 15;
if (idade < 18) {
Exemplo: System.out.println(quot;Não pode entrarquot;);
}
else {
System.out.println(quot;Pode entrarquot;);
}
If / else
57. Sintaxe:
while (condição) { Comando usado para fazer um
} comando; laço(loop).
Exemplo:
int idade = 15;
while(idade < 18) {
System.out.println(idade);
idade = idade + 1;
}
While
58. Sintaxe:
for (inicializacao; condicao; incremento) {
codigo;
}
int soma = 0;
for (int i = 0 ; i < 10 ; i++)
soma+=i;
System.out.println(“A soma é “+soma);
for
65. Sistemas são complexos
Muito difícil um único indivíduo
entender todo o sistema.
Podemos gerenciar a complexidade,
não podemos eliminá-la.
É necessário pensar na evolução do
sistema
Porque OO ??
66. Modelagem OO
O ser humano conhece o mundo e
gerencia sua complexidade através de
objetos
É como desenvolvemos nossa cognição.
Desenvolvemos o conceito de OBJETO
Exemplos de objetos
bola, carro, camisa, luz, casa, calça,
música, conta bancária, poema, etc
Porque OO ??
67. Abstrações de dados do mundo real;
Possuem:
Características(Atributos);
Comportamento(Métodos).
Objeto Característica Comportame
Pessoa s
Nome, idade nto andar
Falar,
Cachorro Nome, raça Latir, correr
Conta Bancaria Saldo, agência Creditar,
Carro Cor, marca Debitar frear
Acelerar,
Objetos
68. Classe
Classe é onde conceituamos o objeto
É a essência do objeto
Define os atributos e métodos
Objeto
Objeto é uma instância de uma classe
Objetos semelhantes pertencem a
mesma classe
Classe e objetos
69. “Pode parecer óbvio, mas a dificuldade
inicial do paradigma da orientação a
objetos é justo saber distinguir o que é
classe e o que é objeto.
É comum o iniciante utilizar, obviamente
de forma errada, essas duas palavras
como sinônimos.”
70. Objeto
Qualquer entidade que possui características e
comportamento
Classe
Descreve um tipo de objeto
Define atributos e métodos
Atributo
Define características do objeto
Método
Operações que o objeto pode realizar
71. Considere um programa para um Banco
Uma entidade importante é a conta
Toda conta tem:
número, nome do cliente, saldo, limite
Toda conta faz ou o que gostaríamos de “pedir a
conta”:
sacar, depositar, imprimir o nome do dono da conta,
ver o saldo atual, transferir dinheiro
Criando um tipo
72.
O projeto da conta, isto é, a definição da
conta, é a classe.
classe
O que podemos construir a partir dessa
classe, as contas de verdade, são os
objetos.
objetos
Mas para acessar todos esses dados,
precisamos construir uma conta, ou melhor,
criar uma instância da classe.
Criando um tipo
74. class Conta {
int numero;
String nome; Atributos
double saldo; características do objeto
double limite;
// ..
Métodos
}
Operações que o
objeto pode realizar
class Conta {
// ..atributos
void sacar(double quantia){..}
boolean depositar(double quantia, Conta conta){..}
}
75. Sintaxe Básica:
class nomeClasse{
//Atributos
//Métodos
}
Classe = Atributos + Métodos
1 classe => 1 arquivo
Classe em Java
76.
Para criar (construir, instanciar) uma
Conta, basta usar a palavra chave new ...
Para acessar o objeto é preciso
referenciar esse objeto. É necessário uma
variável!
Conta minhaConta;
minhaConta = new Conta();
Criando e usando um objeto
77. Agora, podemos acessar o objeto recém criado para
alterar seu nome, seu
saldo etc:
Conta minhaConta;
minhaConta = new Conta();
minhaConta.nome = quot;Dukequot;;
minhaConta.saldo = 1000.0;
System.out.println(quot;Saldo atual: quot; + minhaConta.saldo);
Agora, minhaConta pertence ao Duke, e tem saldo de mil reais.
Criando e usando um objeto
79.
De que maneira uma que uma conta
saca dinheiro?
Os métodos representam o que cada
conta faz e como isso é feito – os seus
comportamentos
Métodos
80. void sacar(double quantidade) {
double novoSaldo = this.saldo - quantidade;
this.saldo = novoSaldo;
}
void = nenhuma informação de retorno
Quanto você quer sacar? Esse valor é o parâmetro do
método que está entre parênteses. Essa variável é
temporária, ou seja, local.
this mostra que é um atributo (é opcional)
Métodos
81.
Para invocar o método usamos o ponto!
// saca 200 reais
minhaConta.saca(200);
// deposita 500 reais
minhaConta.deposita(500);
System.out.println(minhaConta.saldo);
Qual o valor do saldo impresso na tela?
Métodos
82. Retorna um valor para o código que o chamou.
No método sacar podemos retornar um valor booleano
indicando se a operação foi bem sucedida ou não.
boolean saca(double valor) {
if (this.saldo < valor) {
return false;
}
else {
this.saldo = this.saldo - valor;
return true;
}
}
Métodos com retorno
85. São objetos que armazenam diversas
variáveis do mesmo tipo;
Cada item em um array é chamado de
elemento, e cada elemento é acessado
pela posição numérica.
86. class ArrayDemo {
public static void main(String[] args) {
int[] meuArray; // declara um array de inteiros
meuArray = new int[10]; // aloca a memória para 10
inteiros
meuArray[0] = 100; // inicializa o primeiro elemento
meuArray[1] = 200; // inicializa o segundo elemento
meuArray[2] = 300; // etc.
meuArray[3] = 400;
meuArray[4] = 500;
meuArray[5] = 600;
meuArray[6] = 700;
meuArray[7] = 800;
meuArray[8] = 900;
meuArray[9] = 1000;
Exemplo
87. System.out.println(quot;Elemento na posicao 0: quot; + meuArray[0]);
System.out.println(quot;Elemento na posicao 1: quot; + meuArray[1]);
System.out.println(quot;Elemento na posicao 2: quot; + meuArray[2]);
System.out.println(quot;Elemento na posicao 3: quot; + meuArray[3]);
System.out.println(quot;Elemento na posicao 4: quot; + meuArray[4]);
System.out.println(quot;Elemento na posicao 5: quot; + meuArray[5]);
System.out.println(quot;Elemento na posicao 6: quot; + meuArray[6]);
System.out.println(quot;Elemento na posicao 7: quot; + meuArray[7]);
System.out.println(quot;Elemento na posicao 8: quot; + meuArray[8]);
System.out.println(quot;Elemento na posicao 9: quot; + meuArray[9]);
}
}
...continuação do exemplo
88. Elemento na posição 0: 100
Elemento na posição 1: 200
Elemento na posição 2: 300
Elemento na posição 3: 400
Elemento na posição 4: 500
Elemento na posição 5: 600
Elemento na posição 6: 700
Elemento na posição 7: 800
Elemento na posição 8: 900
Elemento na posição 9: 1000
... A saída desse programa é:
89. O programa declarou meuArray com a
seguinte linha de código:
int[] meuArray; // declara um array de inteiros
Você também pode colocar os colchetes
após o nome do array:
float meuArrayDeFloats[]; //forma menos utilizada
◦ Essa forma é menos utilizada, pois com os colchetes antes do nome do
array fica mais fácil entender de que se trata de um array.
Declarando um array
90. Do mesmo modo você pode declarar
arrays de outros tipos:
byte[] meuArrayDeBytes;
short[] meuArrayDeShorts;
long[] meuArrayDeLongs;
float[] meuArrayDeFloats;
double[] meuArrayDeDoubles;
boolean[] meuArrayDeBooleans;
char[] meuArrayDeChars;
String[] meuArrayDeStrings;
Array
91. Criar
◦ Utilizando o operador new;
meuArray = new int[10]; // cria um array de inteiros
As próximas linhas atribuem valores para
cada elemento do array:
meuArray[0] = 100; // inicializa o primeiro elemento
meuArray[1] = 200; // inicializa o segundo elemento
meuArray[2] = 300; // etc.
Criando, Inicializando e Acessando
um Array
92. Cada elemento do array é acessado por
seu índice numérico:
System.out.println(quot;Elemento na posicao 0: quot; +
meuArray[0]);
System.out.println(quot;Elemento na posicao 1: quot; +
meuArray[1]);
System.out.println(quot;Elemento na posicao 2: quot; +
meuArray[2]);
Continuação
93. Alternativamente, você pode usar atalhos
de sintaxe para criar e inicializar um
array:
int[] meuArray = {100, 200, 300, 400, 500, 600, 700,
800, 900, 1000};
o tamanho do array é determinado pelo
número de valores informados entre {e}.
...ou
95. Encapsulamento refere-se ao isolamento
entre as partes do programa.
◦ Private;
◦ Protected;
◦ Public;
◦ Static;
◦ Abstract;
◦ Final.
96. Getters: Método que retorna o atributo
get[nome do atributo].
Ex: getIdade(), getSalario().
Setters: Método que atribui/modifica o
valor de um atributo
set[nome do atributo]
Ex: setIdade(Integer idade),
setSalario(Double salario).
Getters e Setters
102. Não podem ser instanciadas;
Não pode utilizar operador new.
Criada para Herança e Polimorfismo;
Palavra chave: abstract.
public abstract class Animal {
public void roam() { }
}
public abstract class Canine extends Animal {
public void roam() {implementação }
}
Classe abstrata
104. Não podem ser instanciadas;
Não pode utilizar operador new.
Criada para Herança e Polimorfismo;
Palavra chave: abstract.
public abstract class Animal {
public void roam() { }
}
public abstract class Canine extends Animal {
public void roam() {implementação }
}
Classe abstrata
105. É como uma classe abstrata, mas só tem:
Métodos abstratos, públicos
Campos finais estáticos, públicos
public interface Pet { ... }
class Dog implements Pet { ... }
Na prática representa:
Um comportamento compartilhado por várias classes
onde cada classe deve implementar os métodos da
interface
Uma alternativa à herança múltipla
Interface
106. Define um contrato a ser cumprido!
Todos os métodos são:
Públicos
abstratos
Todos os atributos são:
públicos
estáticos
finais
Classe deve implementar TODOS os métodos
definidos na interface.
Ao implementar uma interface a classe está
assinando um contrato definido
Interface
107. public interface Pet {
public abstract void beFriendly();
public abstract void play();
}
public class Dog extends Canine implements Pet {
public void beFriendly(){ ... }
public void play(){ ... }
public void roam(){ ... }
public void eat(){ ... }
}
Interface
111. Não se esqueça - o google é seu amigo ;)
Participe das listas de discussão, blogs,
fóruns .. Interaja !!!
Existem bons livros na área.
Dicas:
◦ GUJ - www.guj.com.br/
◦ JavaRN - javarn.dev.java.net/
Quero saber mais !!