Java para Web

Voltando a estudar Java para Web.Começando com o Framework JSF.
Read more...

Arrays

O que são arrays?

São estruturas de dados consistindo em itens de dados do mesmo tipo relacionados. Os arrays são de largura fixa, ou seja, uma vez criados, mantêm o mesmo comprimento, embora uma variável array possa ser atribuida novamente de modo a referenciar um novo array de comprimento diferente.


Um array é um grupo de variáveis (elementos ou componentes) que contêm valores que são todos do mesmo tipo. (tipos são divididos em tipos primitivos e tipo por referencia). Os arrays são objetos, entao são considerados tipos por referência. Os elementos de um array pode ser de tipos primitivos ou tipos por referencia.Para referenciar um elemento particular em um array, especificamos o nome da referencia para o array e o numero de posição do elemento no array. O numero da posição é chamado de indice.

Criando Arrays

Para  criar um objeto array , é preciso especificar o tipo dos elementos do array e o numero de elementos como parte da expresssão de criação de um array que utiliza a palavra new.

Exemplo

int c[ ] = new int [12];

c é uma variável que referencia um array (a variável armazena uma referencia de array). A variavel array c recebe a referencua para um novo array de 12 elementos int. Quando uma array é criado, cada elemento do array recebe um valor padrao - zero para os elementos de tipo primitivo, false para boleanos e null para referencias.

Exemplo

public class InicioArray
{
public static void main(String args[])
{
int array[] = new int [10]; // declara o array identificado

system.out.println ("%s%8s\n", "Index", "Value"); // titulo da coluna

//gera a saida do valor de cada elemento do array
for ( int i = 0; i < array.length; i++)
system.out.println(%5d%8d\n", i, array[ i ] );

} // fim de main
} // fim da classe


Outro exemplo

calculando a soma dos elementos de um array:


public class SomaArray
{
public static void main (String args[])
{
int array [ ] = { 87, 68, 94, 100, 83, 78, 85, 91, 76, 87 };
int total = 0;

// adiciona um valor de cada elemento ao total
for ( int i = 0; i < array.length; i++)
total +=array[i];

System.out.println ("total de elementos no array: %d|n, total);
Read more...

loop for em um Array

Usamos o loop em:

  • quando desejamos recuperar um objeto da lista por seu atributo
  • quando desejamos percorrer todos os objetos e recuperar objetos...
Exemplo 1:

//recuperar um objeto da lista por seu atributo   
public Cliente getClientePorCPF( String cpf ) {

for (Cliente cli : listaClientes) //Para cada elem. do conj 'listaClientes' insira o próx elemento no objeto do tipo Cliente 'cli'   

 if (cli.getCpf().equals(cpf))  //Se, a variável CPF desse elemento for igual a CPF
        return cli;  //Retorne esse cliente   
}
   }    
}  
Exemplo 2 :

 //detectar objetos Pedidos onde estejam com pendência de entrega
public ArrayList getPedidosPendentes( ) {
  
ArrayList pedidosPendentes = new ArrayList();
  
for (int i = 0; i < listaPedidos.size(); i++) {   //listaPedidos é um ArrayList comum   
  
    Pedido pedido = (Pedido) listaPedidos.get(i);
  
    if (pedido.isPendente() == true)   
         pedidosPendentes.add(pedido); 
}   
  return pedidosPendentes;
}


Read more...

Encapsulamento em Java

Encapsulamento é o mesmo que ocultar a informação.Porém um Objeto encapsula um estado (dados) e métodos (códigos) que podem acessar dados.O encapsulamento protege os atributos do objeto a manipulação de outro objetos, proteção contra acesso não autorizados.

O encapsulamento em Java é implementado através de seus modificadores de acesso: público, private,protegido e implícito.Então cada método ou variável podem ser declaradas como pública, privada ou protegida.

Modificadores 
  
Usado para modificar o modo como são declaradas as classes, métodos e variáveis. Existem três modificadores de acesso e o quarto nível (acesso default), quando não usa nenhum dos três modificadores.Toda classe, método e variáveis de instância que declara tem um controle de acesso. 

relembrando:
 - variáveis de instância são os campos do objeto, como também são chamados de campos, propriedades ou atributos;
-variáveis locais são declarados dentro de um método
- métodos e variáveis de instância são também chamados de "membros".
- É permitido que uma variável local tenha o mesmo nome de uma variável de instância , utilizando a referência this para acessar a variável de instância.

Modificadores Classes

Uma classe pode ser declarada apenas com acesso public ou default.O acesso public, permite que todas as classes tenha acesso a esta classe, para acessar uma classe public que esteja em outro pacote precisamos usar o import.

Modificador de acesso de métodos e variáveis

Modificadores de acesso public: 
Quando um método ou variável - membro é declarado como public, todas as outras classes independente do pacote, podem acessar a qualquer membro.
 
Modificador de acesso private:
Quando um método ou variável é declarado como private não pode se acessado por nenhuma outra classe, e não é visto nas subclasses, assim nao usa o overriding.

Modificador de acesso protected e default:
o controle de acesso protected e default são parecidos, mas tem uma diferença fundamental. Um membro default só pode ser acessado se a classe que estiver acessando é do mesmo pacote, enquanto o protected pode ser acessado (através de herança) por uma subclasse mesmo se subclasse estiver em pacote diferente.

 
 


...

Read more...

Herança e Interfaces

Herança
permite que um código definido em uma classe pode ser reutilizados em outras classes, pois em java podemos definir uma SUPERCLASSE (mais abstrata), e depois estendê-la com as SUBCLASSE (mais específica).Uma subclasse herdada recebe as variáveis de instancias e métodos definidos na superclasse, mas podem substtituir métodos da superclasse definindo comportamentos mais específico.





Interfaces

A interface é uma superclasse totalmente abstrata que define os métodos da Subclasse, mas não implementa, pois na interface não é fornecido a lógica para métodos.As classes que implementam a interface, são obrigadas a ser implementados, ou seja, a definir os códigos para cada tipo particular.

...
Read more...

Objetos

Os Objetos têm estado e comportamento, que são representados pelas variáveis de instância e métodos.Os métodos usam os valores de instância.Os estados e comportamentos podem ser alterados. Então o comportamento afeta o estado e vice versa.
Sabemos que uma classe é um projeto de um objeto, entao quando criamos uma classe estamos criando um objeto daquele tipo.Um objeto desse tipo pode ter um método com comportamentos diferentes , mas todas as instâncias dessa classe têm os mesmo método, mas podem se comportar diferentemente, por ter valores diferente nas variáveis de instância...

Exemplo:

public class Musica {

// variaveis de instância
private String titulo;
private String artista;
private String musica;

// métodos
public void play (){
soundPlayer.PlaySound(title);

}
public void setTitulo(String titulo){
this.titulo=titulo;
}
public void setArtista(String artista){
this.artista = artista;
}
public String getTitulo (){
return titulo;
}
public String getArtista (){
return artista;
}
}

public static void main (String args []){
Musica m1 = new Musica();
m1.titulo("My made");
m1.artista("Mc");
Musica m2 = new Musica();
m2.titulo("My brother");
m2.artista("keys");
m1.play();
m2.play();
}

reparem que o código do método continou o mesmo, sendo que ao chamar o método play() cada instância reproduzirá uma música diferente.

Parâmetros e Argumentos

Um método usa parâmetros.Um chamador passa argumentos os argumentos sao os valores passados para o método, e que será inserido em um parâmetro.

Exemplo:

d.latir(3);

Um parâmetro é uma varivel local, que têm um tipo e um nome, que pode ser usada dentro do corpo do método.

Importante: Se um método usar parâmetro, tem que passar algo pra ele, com o valor
do tipo apropriado.

Exemplo:

void latir (int numLat) // inserindo parâmetro
{
while (numLat >0){
System.out.println("auau");
numLat=numLat - 1;
}
}
Cao c = new Cao ();
c.latir(2); // passando argumento



Read more...

Variáveis

O que é uma Variável?

É um local na memória onde é armazenado algum tipo de informação para serem utilizadas

Existem duas versões de variáveis

Váriaveis primitivas e Variáveis de referência...vamos entendê-las:

Podemos usar :
  • Váriáveis como estado do Objeto (váriáveis de instancia)
  • Váriaveis locais (váriáveis declaradas no método)
  • Variáveis como argumentos (valores enviados para um método pelo código que chamou)
  • Variáveis como tipos de retorno (valores retornados ao código que chamou o método)

Variáveis primitivas contém valores básicos, que são elas:
  •  inteiros
  • boleanos
  • e de números de ponto flutuante;
Variáveis de referência de objeto contêm referência a objetos;


Tipos de Variáveis

Além de um tipo a variável deve ter um nome

int conta;
 tipo  nome

Uma variável tem um tamanho e um tipo, o qual existem tamanhos diferentes para variáveis primitivas e esse tamanho tem nomes.Quando declaramos uma variável em java , também declaramos um tipo que são eles os quatro tipos primitivos:

longo int curto byte

Cada variável  primitiva possui uma quantidade fixa de bits (tamanho).Mostrado a seguir o tamanho das seis  variáveis numéricas em java:

byte 8 
curto 16 
int   32
longo 64
float 32 
double 64

Tipos primitivos

Tipo Quantidade de bits  Intervalos de valores

Boleano e char
Boleano (verdadeiro ou falso)
char 16 bits

numéricos
byte
curto
int
longo

ponto flutuante
float 32 bits
double 64 bits


Declarações primitivas com atribuições:

Exemplo:

int x;
x= 25;
boolean java = true;
double d = 4545.90;
char c = "fe";
int z= x;
boolean javaZone;
javaZone = false;
boolean desligar;
desligar = java;
long big = 3256566;
float f = 32.5f;

Declarando variáveis de várias maneiras:

- digitar uma literal depois do sinal de igualdade (X=12 java=true);
- atribuir o valor de uma varoável a outra (X+Y)
- usar expressão combinando os dois (X=Y+43)

Obs: o compilador não deixará inserir uma quantidade maior em um recipiente pequeno pois há possibilidade de derramamento, ou seja, nao pode colocar muitos inteiros em um contêiner de tamanho byte, Exemplo:

int x=24;
byte b = x;
// não funcionará porque o valor de x é um valor suficientemente baixo para caber em um tipo byte


Relembrando:

os oito tipos primitivos

Boolean char byte short int long float double


Variáveis não primitivas (objetos)

Não há uma variável de REFERÊNCIA de objeto, uma variável de referência de objeto contém bits que representa uma maneira de como acessar um objeto, nao contendo o objeto, e sim um ponteiro, ou endereço.Não pode inserir um objeto a uma variável.Os objetos residem apenas um local.Enquanto a variável primitiva fica cheia de bits que representa o valor real da variável.Uma variável de referência fica cheia de bits que representam uma maneira de chegar o objeto.

Operador (.)

Usamos o operador (.) em uma variavel de referencia : "use o que está antes do ponto para me trazer o que está depois do ponto". Exemplo:

pessoa.cantar();

"use o objeto referenciado pela variavel pessoa para chamar o método cantar()."

Pessoa p = new pessoa(); // cria o Objeto
p.cantar(); // acessando

(podemos pensar na variável de referência de Pessoa como o controle remoto de um objeto Pessoa.Que usamos para acessar o objeto e fazer algo (chamar métodos).

Variável de Matriz

Uma variavel de matriz é o controle remoto de um objeto matriz.
Obs: a matriz será um objeto , mesmo contendo elementos primitivos.Então as matrizes são sempre objetos.

Um exemplo:

1 - Declarando uma variável de matriz Aluno

Aluno [ ] al;

2 - Criando uma nova matriz Aluno com tamanho igual a 3 e a atribui a variável Aluno[] al já declarada

al = new Aluno[3];

3 - criando novos objetos Aluno e atribuindo os elementos da matriz.
al [0] = new Aluno;
al [1] = new Aluno;

Objeto em uma matriz:

// criando uma matriz aluno
Aluno [ ] aluno = new Aluno [3];
Aluno [0] = new Aluno();

// acessando usando as referencias da matriz
aluno[0].name = "Gisa";
aluno[0].estudar();

Read more...