sexta-feira, 30 de maio de 2014

Declaraçoes de variáveis

Existem dois tipos de variáveis em Java as Variáveis de tipo Primitivos e as Variáveis de referencia

Primitivos - Um primitivo pode ser de oito tipos diferentes: char, bollean, byte, short, int, long, double  ou float. Uma vez declarado, o seu tipo primitivo não pode nunca ser modificado, embora na maioria dos casos o seu valor possa se modificar.

Variáveis de referencia- As variáveis de referencia são usadas para se referir (ou acessar) um objeto. Uma variável de referencia e declarada como sendo de um tipo especifico, e esse tipo não pode nunca ser modificado. Uma variável de referencia pode ser usada para referir-se a qualquer objeto do tipo declarado, ou de um subtipo do tipo declarado (um tipo compatível).

segunda-feira, 26 de maio de 2014

Modificadores de acesso

Em um programa podemos desejar que as classes de um pacote não possam ser acessadas pelas classes de outro, ou então que determinada variável fique restrita somente ao escopo da sua classe. Para definir este tipo de acesso é que usamos os modificadores de acesso.
Neste caso, escopo é o limite da existência da classe. É a parte do código que inicia após a abertura das chaves e termina no seu fechamento.

Os modificadores servem para definir que tipos de acesso terão as classes e seus membros.

Níveis de acesso são conhecidos por public, private, protected e default. E os modificadores são apenas três: public, private, protected. O nível de acesso default (padrão) não exige modificador. Quando não se declara nenhum modificador, o nível default é implícito.

- Public: Esse é o modificador menos restritivo. Permite visibilidade global;
- Private: Esse é o modificador mais restritivo. Permite visibilidade apenas na própria classe;
- Default: Nível default é o mesmo que nível de pacote. Permite visibilidade dentro do pacote. Não exige um modificador explícito;
- Protected: Esse é como o default, porém permite visibilidade global através de herança. Parece confuso a primeira vista, mas analisaremos como funciona em detalhes mais adiante.

As classes só aceitam dois modificadores: default e public. A classe pode estar acessível no nível de pacote ou globalmente. Ou seja não existem classes isoladas.

A visibilidade entre classes é que determina se podemos ou não:
- Estender outra classe;
- Criar instâncias de outra classe;
- Acessar membros de outra classe.

O modificador private é o contrário do public. Com ele o acesso é o mais restrito possível. Membros declarados como private só podem ser acessados por membros da sua própria classe. Eles não podem ser acessados nem por classes do mesmo pacote.

sábado, 10 de maio de 2014

Git

O Git é um sistema fácil de usar, incrivelmente rápido, bastante eficiente com grandes projetos e de uma excelente qualidade. Mas o que é exatamente o Git? O Git considera que os dados são como um conjunto de snapshots (captura de algo em um determinado instante, como em uma foto) de um mini-sistema de arquivos. Cada vez que você salva ou consolida (commit) o estado do seu projeto no Git, é como se ele tirasse uma foto de todos os seus arquivos naquele momento e armazenasse uma referência para essa captura. Para ser eficiente, se nenhum arquivo foi alterado, a informação não é armazenada novamente - apenas um link para o arquivo idêntico anterior que já foi armazenado.
O workflow básico do Git pode ser descrito assim:

  • Você modifica arquivos no seu diretório de trabalho.
  • Você seleciona os arquivos, adicionando snapshots deles para sua área de preparação.
  • Você faz um commit, que leva os arquivos como eles estão na sua área de preparação e os armazena permanentemente no seu diretório Git.

E agora algumas dicas e comandos resumidos para começarmos a trabalhar com o Git

Instale o Git:
Git para Linux
Git para Windows
Git para OSX

Crie um novo repositório
Crie uma nova pasta ou somente abra a pasta que o seu arquivo/programa/teste/etc que deseja commitar esteja e execute o comando:
 git init  e ele criará um novo repositório.

Copie um repositório
Se você quer copiar um repositório Git já existente o comando necessário é:
 git clone /caminho/para/o/repositório 
Quando usar um servidor remoto, seu comando será:
 git clone usuário@servidor:/caminho/para/o/repositório 

Verifique o Status de Seus Arquivos
A principal ferramenta utilizada para determinar quais arquivos estão em quais estados é o comando git status. Se você executar este comando diretamente após uma clonagem, você deverá ver algo similar a isso:
 $ git status 
 # On branch master 
 nothing to commit (working directory clean) 
Que significa que não existem arquivos monitorados e modificados. Git também não encontrou qualquer arquivo não monitorado, caso contrário eles seriam listados aqui.

Adicione & confirme
Você pode propor mudanças (adicioná-las ao Index) usando:
 git add <arquivo>  ou  git add .  que adiciona todos os arquivos.
Este é o primeiro passo no fluxo de trabalho básico do git. Para realmente confirmar estas mudanças (isto é, fazer um commit), use:
  git commit -m "comentários das alterações" 
Agora o arquivo é enviado para o HEAD, mas ainda não para o repositório remoto.

Envie suas alterações
Suas alterações agora estão no HEAD da sua cópia de trabalho local. Para enviar estas alterações ao seu repositório remoto, execute:
 git push origin master 
Altere master para qualquer ramo (branch) desejado, enviando suas alterações para ele.
Se você não clonou um repositório existente e quer conectar seu repositório a um servidor remoto, você deve adicioná-lo com:
 git remote add origin <servidor> 
Agora você é capaz de enviar suas alterações para o servidor remoto selecionado.

Atualize & mescle
Para atualizar seu repositório local com a mais nova versão, execute:
 git pull  na sua pasta de trabalho para obter e fazer merge (mesclar) alterações remotas.
Para fazer merge de um outro branch ao seu branch ativo (ex. master), use:
 git merge <branch> 
Em ambos os casos o git tenta fazer o merge das alterações automaticamente. Infelizmente, isto nem sempre é possível e resulta em conflitos. Você é responsável por fazer o merge estes conflitos manualmente editando os arquivos exibidos pelo git. Depois de alterar, você precisa marcá-los como merged com:
 git add <arquivo>  antes de fazer o merge das alterações, você pode também pré-visualizá-as usando:
 git diff <branch origem> <branch destino> 

Sobrescreva alterações locais
No caso de você ter feito algo errado você pode sobrescrever as alterações locais usando o comando
 git checkout -- <arquivo> 
isto substitui as alterações na sua árvore de trabalho com o conteúdo mais recente no HEAD. Alterações já adicionadas ao index, bem como novos arquivos serão mantidos.
Se ao invés disso você deseja remover todas as alterações e commits locais, recupere o histórico mais recente do servidor e aponte para seu branch master local desta forma:
 git fetch origin 
 git reset --hard origin/master 

Remova Arquivos
Para remover um arquivo do Git, você tem que removê-lo dos arquivos que estão sendo monitorados (mais precisamente, removê-lo da sua área de seleção) e então fazer o commit. O comando  git rm faz isso e também remove o arquivo do seu diretório para você não ver ele como arquivo não monitorado (untracked file) na próxima vez.

Pra não esquecer:
Fluxo de trabalho
Seus repositórios locais consistem em três "árvores" mantidas pelo git. A primeira delas é sua Working Directory que contém os arquivos vigentes. A segunda Index que funciona como uma área temporária e finalmente a HEAD que aponta para o último commit (confirmação) que você fez.

Melissa Lobo,

quarta-feira, 23 de abril de 2014

If e Else

O If em inglês quer dizer 'Se'. Para usar o IF basta digitar entre parênteses o que deve ser comparado. Se for verdadeiro, o programa executará a primeira linha logo abaixo do if.
Exemplo:
if(condicao){
  //Caso a condição seja verdadeira esse bloco de código será executado
}

Lembrando que se o if tiver que executar várias linhas, todas as linhas que devem ser enquadradas dentro do bloco de dados - as chaves ({}).

O Else em ingles quer dizer 'Se não'. O Else só existe se tiver um IF. E ele só será executado se o IF for falso.
Exemplo:
if(condicao){
  //Caso a condição seja verdadeira esse bloco de código será executado
}else {
   //Caso a condição seja falsa esse bloco de código que será executado
}

Para que IF chegue a uma decisão de falso e verdadeiro são necessários operadores lógicos. Dos quais destacam-se 6:
>  Maior que
<  Menor que
>=  Maior ou igual a
<=  Menor ou igual a
==  Igual a 
!= Diferente de

Pra não esquecer:
IF é uma palavra reservada que não aceita ponto-e-vírgula (;) no final.
O operador lógico ! (negação) server para inverter o valor, ou seja, se algo for falso, irá se tornar verdadeiro e vice-e-versa.

Melissa Lobo.

terça-feira, 8 de abril de 2014

O que é um Método Sobrecarregado

Em uma mesma classe pode haver vários métodos com o mesmo nome, contanto que possuam listas de argumentos distintas. Os argumentos podem variar em número, tipo e ordem de declaração.
Esses métodos possuem nomes iguais, porém não são iguais, pois possuem certas diferenças como: tipo de dados, retorno e parâmetros. O compilador do Java descobre quando são métodos sobrecarregados, distinguindo pelas suas assinaturas, que é uma combinação do nome do método, tipos e ordem dos seus parâmetros.
Exemplo de Métodos Sobrecarregados:

class MetodosSobrecarregados{
public class Soma {

 public int soma(int primeiroNumero, int segundoNumero) {
   return primeiroNumero+segundoNumero;
 } 
 
 public String soma(String primeiroNumero, String segundoNumero) {
    return primeiroNumero+segundoNumero;
 } 
 
 public double soma(double primeiroNumero, double segundoNumero) {
    return primeiroNumero+segundoNumero;
 } 

          }
}

Pra não esquecer:
Características dos métodos sobrecarregados: 
A ordem dos tipos de parâmetros é importante;
As chamadas de método não podem ser distinguidas por tipo de retorno;
Podem ter diferentes tipos de retorno se os métodos tiverem diferentes listas de parâmetro;
Se diferenciam pela sua assinatura, que é uma combinação do nome do método, tipos e ordem dos seus parâmetros.

Melissa Lobo.

quarta-feira, 2 de abril de 2014

Método Void e Método com Retorno

Todos os métodos retornam algo, quando não retornam nada é identificado como void. (Void é o tipo de retorno). Esse tipo de método executa apenas o código que tem dentro dele.

Exemplo do método Void:

class Metodo{ 
public void escrever() { 
System.out.println("Método sem Retorno - VOID "); 
}
}

class MetodosSemRetorno2 { 
public static void main(String[] args) { 
Metodo m = new Metodo(); 
m.escrever(); 
} 
}

Já os métodos que não possuem a palavra-chave void incorporada na declaração, mas sim um tipo de dado, apresentam em seu corpo a palavra reservada return, que informa que o método terá que retornar o mesmo tipo de dado com o qual foi declarado.

Exemplo de método que retorna uma String:

class MetodoComRetorno{
String nome = "Melissa Lobo";
public String retornaNome(){
return nome;
}
}

class MetodoComRetorno2 {
public static void main(String[] args) {
MetodoComRetorno m = new MetodoComRetorno();
System.out.println(m.retornaNome());
}
}

Exemplo de método que retorna um Inteiro:
class ValoresInt{
public int calculadora(){
int primeiroNumero = 10;
int segundoNumero = 20;
return primeiroNumero + segundoNumero;
}
}
class MetodoComRetornoInteiro {
public static void main(String[] args) {
ValoresInt valores = new ValoresInt();
System.out.print(valores.calculadora());
}
}

terça-feira, 25 de março de 2014

Lançamento do Java 8

Quase 20 anos após sua primeira versão, um novo Java surge com novidades importantes.
Depois de alguns anos em desenvolvimento, a Oracle liberar a versão final do Java 8 para download. A nova versão promete ser a mais inovadora desde o Java 5, de 2004.
O Java 8 traz novidades importantes na linguagem e nas APIs. E, claro, mantendo compatibilidade com versões anteriores. Você pode instalar o JDK já e começar aos poucos a aprender o que há de novo.

Para quem quer conhecer um pouco sobre o que mudou no Java 8, você encontra no Blog da Caelum O mínimo que você deve saber de Java 8 que já trabalha algum tempo com essa versão. Mesmo não tendo domínio completo ainda da linguagem Java, pude notar que o resumo do artigo/post é muito bom, e notasse claramente que algumas coisas ficaram mais simples e fáceis, mas para quem já trabalha há um bom tempo com a linguagem  pode demorar um pouco para aceitar e se acostumar com a mesma, porém as mudanças não são tão drásticas assim, até porque a escolha do time do Java sempre foi evitar mudanças radicais na linguagem, para não cair no caminho do C++ que hoje é umas das linguagens mais difíceis de se dominar devido ao acríssimo de tanta novidade.

Para quem quer conferir as novidades por completo, junto com o lançamento oficial da nova versão do Java, a editora Casa do Código lançou o livro  Java 8 Prático, é uma visão aprofundada para quem já programa em Java e quer conhecer e usar as novidades.


Métodos static

Como já foi dito anteriormente, o método main() é o responsável por fazer o seu programa ser executado, ele é quem da início a todo o processo, você pode criar um monte de coisa dentro do seu programa, mas se ele não tiver um método chamado Main, quando você for rodar, ele não vai funcionar, então, todo programa Java necessita de um método Main.
Exemplo:

      public static void main(String[ ] args) {
   }

Na execução de um programa Java, a JVM (Java Virtual Machine) tenta chamar o método main da classe que foi especificada. Quando declaramos o método main como static, a JVM invoca o main sem  ser criado nenhum objeto da classe, ou seja, a classe é conhecida como classe principal.

Portanto os métodos static ou métodos da classe são funções que não dependem de nenhuma variável de instância, quando invocados executam uma função sem a dependência do conteúdo de um objeto ou a execução da instância de uma classe.

Os métodos static tem um relacionamento com uma classe como um todo e podem manipular as variáveis marcadas como static, enquanto os métodos que não são static são associados a uma instância de classe específica (objeto) e podem manipular as variáveis de instância do objeto.

A JVM invoca o método main de cada classe. Sempre que uma classe tiver esse método, é especificado que uma lista de Strings como argumentos de linha de comando, será passada para o aplicativo junto a JVM.

Melissa Lobo,