To tentando fazer uma com que uma classe acesse a outra mas parece que tem algo errado

8 respostas
Hygor_Kovags

sou estudando do livro DEITEL - Java como programar 6º edição e to enfrentando algumas dificuldades ao executar os programas do livro em meu pc, eu to tentando fazer com que essa classe --->

package deitel45capitulos;
class GradeBookTest{
    public static void main (String args){

        GradeBook meuGradeBook = new GradeBook("CS 101");

        meuGradeBook.definirmedia();
    }
}
use essa -->
* To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package deitel45capitulos;
import java.util.Scanner;
/**
 *
 * @author Hygor
 */
public class GradeBook {
    private String courseName;
    public String getCourseName(){
        return courseName;
    }
    public void setCourseName(){

    }
    public void displayMessage(){
        System.out.printf("Bem vindo ao GradeBook para\n%s\n\n",getCourseName());

    }
    public void definirmedia(){
        Scanner input = new Scanner (System.in);
        int total;
        int numerodanota;
        int nota;
        int media;

        total = 0;
        numerodanota = 1;

      while (numerodanota <= 10){
          System.out.print("Digite a nota:");
          nota = input.nextInt();
          total = total + nota;
          numerodanota = numerodanota + 1;
      }
          media = total / 10;
          System.out.printf("\n o total das 10 notas e:",total);
          System.out.printf("\n\n a media das 10 notas e:",media);


    }
}

SO que eu enfrento dois erros ao executar a classe "GradeBookTest": cannot find symbol constructor, java.lang...(Se referindo quando eu tento dar um construtor ao meuGradeBook e quando eu tento executar a classe GradeBookTest sem colocar construtor,mesmo não dando erro diz que falta metodo principal...que que isso????

8 Respostas

WendersonLP

Olha mesmo você não criando um construtor, é criado um construtor default automaticamento,
no seu programa onde você cria um objeto da class, você instanciou o objeto com um construtor
de parâmetros que você não criou naquela class, então faça um construtor de parâmetros e um
default se quiser inicializar alguns dados.

kunigas
Quando você faz:
GradeBook meuGradeBook = new GradeBook("CS 101");
Está chamando o construtor da classe GradeBook. Nessa classe deveria ter alguma coisa do tipo:
package deitel45capitulos;
import java.util.Scanner;

public class GradeBook {
    ...
    public  GradeBook(String s){
        //Faz alguma coisa aqui.
    }
    ...
}

Provavelmente você esqueceu de copiar esse trecho do exemplo.

Hygor_Kovags

corrige ai pra mim porque eu não to entendendo nada onde vc quer chegar com isso???

o problema não é só o construtor… não sei se vcs repararam mas eu disse tbm que quando eu não declaro o contrutor,não da erro,tudo bem o programa ta certo,mas quando eu vou executar diz que não tem metodo principal e ai como é que fica??? (Nesse momento estou me refirindo a GradeBookTest).

kunigas

Hmm, dá mais informações de como você tá tentando executar, que IDE está usando, etc.

WendersonLP

olha faz isso que o seu programa deve da certo

public class GradeBook
{
      private String courseName;
      //Construtor default, mas inicializa o atributo
      public GradeBook()
      {
            courseName = "";
      }
      //Construtor de parâmetro, inicializa atributo
     //na criação do objeto
     public GradeBook( String cn )
     {
          courseName = cn;
     }
}
Hygor_Kovags

[quote]WendersonLP

  1. public class GradeBook
  2. {
  3. private String courseName;
    
  4. //Construtor default, mas inicializa o atributo
    
  5. public GradeBook()
    
  6. {
    
  7. courseName = "";
    
  8. }
    
  9. //Construtor de parâmetro, inicializa atributo
    
  10. //na criação do objeto
    
  11. public GradeBook( String cn )
    
  12. {
    
  13. courseName = cn;
    
  14. }
    
  15. }

Deu certo mas o que que vc fez pra dar certo???

WendersonLP

olha eu somente criei dois construtores
um que é construtor default, mas que inicializa a String courseName
e a segunda que na criação de um ou mais objetos você pode inicializar de
imediato o seu atributo,
somente isso

Hygor_Kovags

deu certo e consegui executar tbm…

Criado 16 de maio de 2009
Ultima resposta 16 de mai. de 2009
Respostas 8
Participantes 3