Skip to content

Author: Silveira

Hi, I'm a developer, lover of art and freedom (more). I write mostly about technology and pixel art.

Java: métodos com número variável de parâmetros

A partir do Java 5 podemos escrever métodos com um número variável de parâmetros, é o chamado varargs. Com isso podemos criar métodos bem flexíveis e elegantes, principalmente se aplicando isso juntamente com outros recursos como o loop melhorado e polimorfismo.

Esse exemplo cria uma classe Estatistica com o método media que pode receber um número variável de argumentos do tipo int.

public class Estatistica {
    public float media(int... numeros){
        float soma = 0;
        for(int num: numeros)
            soma += num;
        return soma/numeros.length;
    }
    public static void main(String[] args) {
        Estatistica est = new Estatistica();
        System.out.println( est.media(1,2,3) );
        System.out.println( est.media(0,1,2,3,4,5,6,7,8,9,10) );
        System.out.println( est.media(10,20,30) );
    }
}

$ javac Estatistica.java
$ java Estatistica
2.0
5.0
20.0

Legal, né? Isso sim é sobrecarga de método. ;)

Os canos da Internet

É bom provável que os bits que compõe esse post tenham chegado até você passando por baixo d’água.

Cabo submarino
Aspecto de um cabo submarino.

A maioria do tráfego da Internet circula através de cabos submarinos que atravessam os oceanos ligando todos continentes. Eu achei alguns gráficos legais que mostram a topologia dos cabos submarinos no globo. Clique nas imagens abaixo para amplia-las.

mapa dos cabos da internet
Retirado de Guardian.co.uk
Mapa dos cabos submarinos da Internet
Retirado de telegeography.com
Já pensou se alguém resolve atacar um desses cabos?

Gato em JavaFX

Meu primeiro desenho com JavaFX.

Gato em JavaFX

Código-fonte:

import javafx.ui.canvas.*;
import javafx.ui.*;
 
Canvas {
    content: [
    // cat head
    Ellipse { cx:200, cy:100, radiusX:100, radiusY:50, fill:black },
    // right ear
    Arc { x:200, y:10, height:150, width:100,
        startAngle:-20, length:90, closure:PIE, fill:black},
    // left ear
    Arc { x:100, y:10, height:150, width:100,
        startAngle:110, length:90, closure:PIE, fill:black},
    // left eye
    Ellipse { cx:160, cy:100, radiusX:30, radiusY:15, fill:white},
    Ellipse { cx:160, cy:100, radiusX:5, radiusY:15, fill:black},
    // right eye
    Ellipse { cx:240, cy:100, radiusX:30, radiusY:15, fill:white},
    Ellipse { cx:240, cy:100, radiusX:5, radiusY:15, fill:black},
    // nose
    Arc { x:185, y:110, height:20, width:30,
        startAngle:45, length:90, closure:PIE, fill:white},
    ]
}

Sim, foi uma tentativa de reproduzir este outro gato. :-)

Cursos Java de Graça para Estudantes

Sun University

Página: http://www.sunstudentcourses.com/

  • A Sun está com um projeto novo com cursos sobre a plataforma Moodle (meu velho conhecido). O nome do curso é Real World Technologies: NetBeans GUI Builder, JRuby, JavaFX, and JavaME. É uma introdução rápida e bem prática sobre cada um desses temas. O curso é dividido em seções e no final de cada seção há um dever de casa para você submeter. Sim, é bem no estilo do Java Passion e não é à toa, o Sang Shin também está por trás disso.

Esses slides são a apresentação inicial do curso:

Algumas vantagens de se fazer esse curso:

  • O Preço. É de graça :-D
  • É Livre. São tecnologias de Software Livre como o Netbeans, o Java, JavaFX e JRuby. Além disso o próprio curso está disponível sob uma licença livre (Berkley).
  • São Novidades. são tecnologias novas como o JavaFX e JRuby, é bom se manter atualizado.
  • É Fácil. São tutoriais pela web que você pode fazer sozinho no seu computador e no final de cada seção você faz um dever de casa.
  • É Rápido. A duração estimada no curso é de 5 horas.
  • Tem Certificado. No final do curso, entregando todos os deveres de casa, você recebe um certificado que participou do curso.
  • Inglês. O curso é todo em inglês e é bom que você treina. ;)

Eu já estou fazendo.