Oi pessoal!
Estou confuso com alguns mecanismos da programação JAVA.
Gostaria de saber a diferença entre CLASSES e OBJETOS em JAVA?
Porque ora instanciamos um objeto dentro de um programa e ora usamos uma referência a determinada classe apenas?
Quando eu uso o operador NEW eu estou instanciando um objeto como em:
BufferedImage buffImage = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB );
Quais as outras formas de instanciar um objeto o JAVA utiliza?
Quando eu uso um comando deste tipo:
Graphics2D gg = buffImage.createGraphics();
O que realmente acontece aqui?
Vi na documentação do JAVA que o método createGraphics da classe BufferedImage retorna um Graphics2D (Classe ou Objeto?), então a atribuição acima citada cria um objeto gg do tipo Graphics2D “e/ou” faz uma referência ao objeto buffImage?
Vejam o método createGraphics2D da classe BufferedImage da documentação do JAVA abaixo
/**
* Creates a Graphics2D
, which can be used to draw into
* this BufferedImage
.
* @return a Graphics2D
, used for drawing into this
* image.
*/
public Graphics2D createGraphics() {
GraphicsEnvironment env =
GraphicsEnvironment.getLocalGraphicsEnvironment();
return env.createGraphics(this);
}
Pergunto isso porque no código mais abaixo são executados vários métodos em “gg” para criar uma textura:
gg.setColor( Color.yellow ); // draw in yellow
gg.fillRect( 0, 0, 10, 10 ); // draw a filled rectangle
gg.setColor( Color.black ); // draw in black
gg.drawRect( 1, 1, 6, 6 ); // draw a rectangle
gg.setColor( Color.blue ); // draw in blue
gg.fillRect( 1, 1, 3, 3 ); // draw a filled rectangle
gg.setColor( Color.red ); // draw in red
gg.fillRect( 4, 4, 3, 3 ); // draw a filled rectangle
porém mais abaixo é criado um objeto TexturePaint, vejam código:
// paint buffImage onto the JFrame
g2d.setPaint(
new TexturePaint(
buffImage, new Rectangle( 10, 10 ) ) );
g2d.fill(
new RoundRectangle2D.Double(
155, 30, 75, 100, 50, 50 ) );
e o primeiro argumento usado no construtor de TexturePaint é o objeto buffImage e não gg?
O objeto buffImage e gg são o mesmo objeto, a mesma referência a memória?
Obrigado pela atenção de todos,
Druid®