Acessar atributo direto da classe?

Pessoal boa tarde,

É possível atribuir um valor à um objeto diretamente na classe?

Tenho duas classes:

[code]public class Funcionario {

String nome, departamento, RG, email;
Double salario;
Boolean veioTrabalhar;
Data dtEntrada;


void recebeAumento (double quantidade){
	double novoSalario = this.salario + quantidade;
	this.salario = novoSalario;
}

double calculaGanhoAnual(){
	return this.salario * 12;		
}

void demite (){
	System.out.println("Funcionário demitido");
}

void mostra(){
	System.out.println("Nome: " + this.nome);
	System.out.println("Departamento: " + this.departamento);
	System.out.println("Data de entrada: " + this.dtEntrada.dia + "/" + this.dtEntrada.mes + "/"
			+ this.dtEntrada.ano);
	System.out.println("RG: " + this.RG);
	System.out.println("Email: " + this.email);
	System.out.println("Salário: " + this.salario);
}

}[/code]

e

[code]public class TestaFuncionario {

public static void main(String[] args) {
	
	Funcionario a = new Funcionario();


	Data dt = new Data();
	a.dtEntrada = dt;		
	
	Funcionario g = a;
	
	a.nome = "André Mendes";
	a.departamento = "Qualidade";
	a.dtEntrada.dia = 04;
	a.dtEntrada.mes = 01;
	a.dtEntrada.ano = 11;
	a.RG = "32458902735";
	a.email = "andre.mendes@banco.com.br";
	a.salario = 1000.00;
	
	if ( a == g ){
		System.out.println("Funcionários iguais");
	} else {
		System.out.println("Funcionários diferentes");
	}
	
	
	/*g.nome = "Luise Silva";
	g.departamento = "Vendas";
	g.dtEntrada = "16/07/12";
	g.RG = "12345678901";
	g.email = "gabrielle.honorato@banco.com.br";
	g.salario = 1300.00;*/
	
	
	System.out.println("O ganho anual do funcionário "+a.nome+" é: R$ "+a.calculaGanhoAnual());
	
	if (a.calculaGanhoAnual() >= 20000) {
		a.demite();
	} else {
		a.recebeAumento(667);
		System.out.print("O novo salário do funcionário "+a.nome+" é: R$ "+a.salario);
		System.out.println(" e ganho anual do funcionário "+a.nome+" agora é: R$ "+a.calculaGanhoAnual());
	}
	
	a.mostra();
	
}

[/code]

É possível fazer algo parecido com Funcionario.salario = 1234,00 na classe Funcionario?

Sim. Tendo como exemplo a variável salário, é só você declarar a mesma como sendo static. Assim, ela acaba se tornando uma variável de classe, não precisando instanciar nenhum objeto para poder utilizá-la.

Se eu fizer isso

Static Double salario;

Eu consigo?

Mas ainda assim ela pode ser instanciada em outro lugar?

Você poderá instanciar objetos dessa classe e acessar a variável salario. O lance é que ela terá o mesmo valor para todos os objetos que você vier a instanciar. Se você mudar o valor dessa variável através de um objeto, esse valor também mudará para os outros, já que ela é uma variável da classe e não desse objeto em específio, sacou?

Entendi! Acho que mais pra frente eu vou ver utilidade nisso, por que vendo agora, não parece muito interessante rs.

Obrigado!

Uma utilidade seria você criar uma variável dessas pra servir como contador de objetos instanciados. A cada objeto instanciado dessa classe você incrementa o valor da variável.

Ah sim, agora faz mais sentido. É até bom você ter falado isso por que eu vou precisa de algo parecido.

Obrigado denovo rs.