Construtores: Chamando método para exibir seus respectivos valores

7 respostas
hackum

Mais uma vez, estou com dúvida nos construtores para chamar o método e exibi-los.
Veja meu programa:

#1
public class GradeBook {
	
	
	private String courseName; //nome do curso que essa GradeBook representa
	private String nomeInstrut; // nome do instrutor que essa GradeBook representa
	
	//construtor
	public GradeBook(String nome, String instrut)
	{
		
		courseName = nome; //inicializa courseName
		instrut = nomeInstrut;
		
		
	}
	
	//método para configurar o nome do curso
	public void setCourseName(String nome)
	{
		
		
		courseName = nome; //armazena courseName
	 
	}
	 
	//método para configurar o nome do instrutor
	public void setnomeInstrut(String instrut)
	{
		
		nomeInstrut = instrut; // armazena nomeinstrut
		
	}
	
	//método que recupera o nome do curso
	public String getCourseName()
	{
		
		return courseName;
		
	}
	
	//método para recuperar o nome do instrutor
	public String getInstrut()
	{
		
		return nomeInstrut;
		
	}
	
	//exibe uma mensagem de boas-vindas para o usuário GradeBook
	public void displayMessage()
	{
		
		//exibe uma mensagem, chamando o método getCourseName
		System.out.printf("Bem vindo(a) a classe GradeBook!%s\n",getCourseName());
	    System.out.printf("Produtor do programa: %s\n",getInstrut());
	}
	
}

#2

public class GradeBookTest {
	
	
	//inicializa do programa
	public static void main(String args[])
	{
		
             //cria GradeBook
		    GradeBook GradeBook1 = new GradeBook("Classe GradeBook!", null);
		    GradeBook GradeBook2 = new GradeBook("Gustavo", null);
		    
		    System.out.printf("courseName: %s\n",GradeBook1.getCourseName());
		    System.out.printf("nomeInstrut: %s\n",GradeBook2.getInstrut());
	}
	
}

O que eu estou fazendo de errado ?

7 Respostas

tnaires

Você não precisa criar dois objetos e passar um valor pra cada um. Pode criar apenas um com os dois valores.

GradeBook gradeBook = new GradeBook("Classe GradeBook!", "Gustavo"); System.out.printf("courseName: %s\n", gradeBook.getCourseName()); System.out.printf("nomeInstrut: %s\n", gradeBook.getInstrut());Da forma como você criou os construtores, o nome do curso é o primeiro argumento e o nome do instrutor é o segundo.

hackum

Olá!

Quando vou inicializar o programa, o nomeInstrut é inicializa como null e o courseName, não.

Segue:

courseName: Classe GradeBook!
nomeInstrut: null

tnaires

Pra corrigir esse erro, você precisa fazer assim:

GradeBook GradeBook1 = new GradeBook("Classe GradeBook!", null); GradeBook GradeBook2 = new GradeBook(null, "Gustavo");Veja a segunda linha. Para não imprimir null, é preciso passar a string “Gustavo” para o segundo parâmetro no construtor.

P.S. - Mas minha pergunta ainda está no ar :wink:

tnaires

Ah, tem outro erro. Os parâmetros do construtor estão sendo passados de forma errada para os atributos da classe GradeBook.

public GradeBook(String nome, String instrut) { courseName = nome; nomeInstrut = instrut; // Aqui houve a troca. }

hackum

Ainda persiste o problema:

courseName: Classe GradeBook!
nomeInstrut: null

Não entendi. Qual pergunta sua ainda está no ar?

tnaires

Veja meu post anterior, há um problema no seu construtor.

Estou achando estranho o fato de você criar dois objetos GradeBook, quando poderia criar apenas um. Veja meu primeiro post neste tópico.

hackum

Distração minha. Obrigado por me ajudar tnaires!

Criado 25 de janeiro de 2010
Ultima resposta 25 de jan. de 2010
Respostas 7
Participantes 2