Java – Quando o “this” é obrigatório

Muitas vezes pensamos no objeto this como opcional, ou seja, meramente documentacional, mas saiba que em determinadas ocasiões ele é obrigatório, veja o exemplo:

01: class Point2D {
02:   private int x, y;
03:   public Point2D(int x, int y) {
04:     x = x;
05:   }
06:   public String toString() {
07:     return "[" + x + ", " + y + "]";
08:   }
09:   public static void main(String []args) {
10:     Point2D point = new Point2D(10, 20);
11:     System.out.println(point);
12:   }
13: }

Qual o resultado deste código:

  1. point
  2. Point
  3. [0, 0]
  4. [10, 0]
  5. [10, 20]

Se marcou a opção 4 errou pois a resposta correta é a opção 3. O motivo está na linha 04 no qual obrigatoriamente é necessário o uso do objeto this para referirmo-nos a variável x da classe. Então a próxima vez que criar um método set tome o máximo de cuidado e insira o this.

 

Conheça o Chef

O Chef é um framework de integração de sistemas, de código aberto e construído de modo automatizar a instalação e a infraestrutura de aplicações em qualquer local físico, virtual ou em nuvem, não importa o tamanho da infra-estrutura. Cada organização é composta de uma (ou mais) estações de trabalho, um único servidor, e cada nó será configurado e mantido pelo chef-cliente. Cookbooks e Recipes (livros de receitas e receitas) são usados ​​para informar o chef-cliente como cada nó em sua organização deve ser configurado. As novidades recentemente lançadas incluem funcionalidades como o whyrun (dry run), formatadores de saída, inspeção de erros e instaladores para o Solaris. Veja mais no site oficial.

Java – Criar um objeto sem usar o “new Construtor()”

As vezes, durante a codificação, precisamos criar um objeto de uma classe sem utilizar a sintaxe: “Classe obj = new Construtor()”. Podemos utilizar os seguintes modos:

1. Usar o método newInstance da Classe class:

Class c = Class.forName(“NomeClasse”);
NomeClasse obj = (NomeClasse) c.newInstance();

2. Usar o método clone() da java.lang.Object – Cria uma cópia de um objeto existente:

NomeClasse obj = new NomeClasse();
NomeClasse objCopiado = obj.clone();

3. Usar a deserialização da Object:

ObjectInputStream os = new ObjectInputStream(ObjDaClasseInputStream);
NomeClasse obj = (NomeClasse) os.readObject();

4. Usar o ClassLoader:

getClass().getClassLoader().loadClass(“NomeClasse”).newInstance();

5. Usar por Reflection:

constructor.newInstance() ou class.newInstance()

6. Também, podemos usar o Padrão “Factory Method”. Recomendo uma lida sobre isto.

TileMap – Criação de Mapas para jogos

Tiles (algo como “telhas”) são frequentemente utilizados em jogos de computador para criar uma matriz regular de gráficos, tais como um mapa ou, um campo de batalha com nefastos invasores e obstáculos. o Tiled Map (disponível aqui), é disponibilizado livremente e foi escrito com uma biblioteca multi-plataforma e roda nos mais diversos ambientes.

JavaME e Android

Quando o Android apareceu matou a plataforma JavaME correto? Errado, o máximo que aconteceu foi que o Android pegou uma fatia (gorda sim) do mercado que a JavaME poderia utilizar. Devemos ter em mente que JavaME não é tecnologia apenas para Celulares é para qualquer tecnologia móvel. E isso inclui: Sensores, Messaging, Maquininhas da CIELO, Geladeira, Fogão e por aí vai. Ou seja, é um mundo onde o Android não toca. Entenda mais assistindo a este vídeo:

Android e o Cartão SD

Uma das piores coisas ao se criar uma aplicação para o Android é bloquear a opção de movê-la para o Cartão SD, convenhamos que a memória interna dos Celulares e Tablets é muito preciosa. O problema é que o ADT (Ambiente de Desenvolvimento Android) ao criar um projeto, por padrão, a aplicação não pode ser movida para o cartão. Para resolver este problema, acesse o arquivo AndroidManifest.xml do projeto e adicione a seguinte linha na tag manifest (raiz):

android:installLocation=”auto” ou android:installLocation=”preferExternal”

Atenção: A propriedade android:minSdkVersion precisa estar na versão 2.2 (Froyo – Level 8) ou superior.

Dragão com Ilusão ótica

Vi este dinossauro que possui uma ilusão ótica bem interessante:

Então corri atrás de alguma imagem que pudesse ter o mesmo efeito e descobri além do dinossauro alguns dragões (no embalo do novo filme do Hobbit) que possuem o mesmo interessante efeito, escolha o seu e baixe:

Veja neste vídeo como fica a montagem final:

Estou adicionando mais dois vídeos do canal Manual do Mundo sobre a montagem e a explicação deste efeito dos dragões:

Dica para ver o efeito acontecer – Feche um olho