Oi pessoal, tenho um problema com meu código pois não consigo ter acessar o objeto e gostaria de ajuda.
Aluno.java
public class Aluno {
//Atributos
private String nome;
private long matricula;
private String endereco;
public Aluno() {
System.out.println("Um aluno criado");//Testa o construtor
}
public Aluno(String n, long m, String e){
this.nome=n;
this.endereco=e;
this.matricula=m;
}
//Metodos
public String getNome(String nome){
return nome;
}
public void setNome(String nome){
this.nome = nome;
System.out.println("Set usado");//Testa o método set
}
}
Main.java
public class Main {
public static void main(String[] args) {
Aluno a = new Aluno();
a.setNome(“Fulano”);
System.out.println(a.getNome());//Nesta linha da erro [color=red] cannot be applied to ()[/color]
}
}
de ja agradeço.
coloca seus códigos com tag [code]
Aluno.java
[code]
public class Aluno {
//Atributos
private String nome;
private long matricula;
private String endereco;
public Aluno() {
System.out.println("Um aluno criado");//Testa o construtor
}
public Aluno(String n, long m, String e){
this.nome=n;
this.endereco=e;
this.matricula=m;
}
//Metodos
public String getNome(String nome){ //#1 <==!! aqui esta o problema
return nome;
}
public void setNome(String nome){
this.nome = nome;
System.out.println("Set usado");//Testa o método set
}
}[/code]
Main.java
[code]public class Main {
public static void main(String[] args) {
Aluno a = new Aluno();
a.setNome(“Fulano”);
System.out.println(a.getNome());//Nesta linha da erro cannot be applied to ()
}
}[/code]
lendo o erro, getNome() não pode ser aplicado a () pq vc colocou no método como argumento uma string
altere o método getNome(String nome) conforma abaixo, no #1
public String getNome(){ //#1
return nome;
}
Olha, o método get serve para retornar algum valor, se tiver algum parâmetro de entrada no método, então você tem que fazer alguma operação com ele e mostrar o resultado. Por exemplo: Quando queremos realizar alguma pesquisa simplesmente teremos um método get que vai retornar uma lista de objetos. Mas o parâmetro de entrada vai ser do mesmo tipo da minha classe.
public void setNome(String nome){
}//Método que vai setar o parâmetro de entrada ao atributo nome da sua classe
public String getNome(){
}//Já o método getNome vai retornar uma string contendo o nome que você definiu no método setNome, repito se houver algum parâmetro de entrada no método getNome, significa que você terá que fazer alguma operação com ele.
O método get não recebe parâmetro, apenas retorna a variável, ou o objeto
PS: Se vc usar eclipse
Aperte Ctrl + 3 e digite ggas que é a abreviação de Generate Getters And Setters e selecione todos os getters e setters, que ele faz automaticamente…
O netbeans também faz, mas não sei qual é o atalho…
Boa noite a todos.
[quote=pedroroxd]PS: Se vc usar eclipse
Aperte Ctrl + 3 e digite ggas que é a abreviação de Generate Getters And Setters e selecione todos os getters e setters, que ele faz automaticamente…
O netbeans também faz, mas não sei qual é o atalho…[/quote]
No NetBeans basta voce clicar com o botão direito do mouse em cima da variável (atributo) e na caixa popup escolher [color=blue]“Refatorar -> Encapsular campos” [/color]
[quote=discorpio]Boa noite a todos.
[quote=pedroroxd]PS: Se vc usar eclipse
Aperte Ctrl + 3 e digite ggas que é a abreviação de Generate Getters And Setters e selecione todos os getters e setters, que ele faz automaticamente…
O netbeans também faz, mas não sei qual é o atalho…[/quote]
No NetBeans basta voce clicar com o botão direito do mouse em cima da variável (atributo) e na caixa popup escolher [color=blue]“Refatorar -> Encapsular campos” [/color][/quote]
No NetBeans você também pode clicar com o direito dentro do código, em uma linha vazia, ir em “Gerar código” e em “Getters e setters”. 
Obrigado, bom para exclarecer para o amigo dacruzaraujo…
Mas eu não uso netbeans =D
Olá, sou eu de novo.
A via de regras de encapsulamento, realmente deve se evitar que o método get receba algum parâmetro, pois em Ingles, o verbo [color=blue]Get[/color], significa obter, pegar, apanhar e vários outros significados similares, voltando a regra de encapsulamento, ele realmente [color=blue]foi feito com o objetivo de apanhar valores de atributos encapsulados[/color] e não de atribuir valores aos atributos encapsulados, função este atribuída ao método Set, portanto não é aconselhável misturar as funções. [color=blue]Contudo, nada impede que o método Get receba algum parâmetro,[/color] desde que este parâmetro recebido seja processado e manipulado dentro do método Get, a fim de obter outro resultado diferente do que foi recebido.
Olá, denovo aqui.
[quote=Trebloc]
No NetBeans você também pode clicar com o direito dentro do código, em uma linha vazia, ir em “Gerar código” e em “Getters e setters”. ;)[/quote]
Obrigado Trebloc, por lembrar.
Na versão 6.8 do NetBeans que estou usando o [color=blue]“Gerar código”[/color] foi substituído por [color=blue]“Inserir código”[/color], porém eu prefiro utilizar o “Refatorar -> Encapsular campos”.
Bom, nada impede o método get de receber parâmetro e o set de retornar algo…
Mas por convenção não é usado…
Tanto que quando vc manda a IDE fazer isso para você, o get retorna e o set seta…
Agora se vc quiser fazer isso pode, mas mude o nome do método (não deixe get)…
Pessoal obrigado pelas dicas, pricipalmente ao Lavieri, foi só escrever o método sem o argumento.
Um abraço