Construtor

5 respostas
C

Ola! Sou iniciante em Java.
Estou fazendo um trabalho de faculdade e estou com dúvidas no método construtor.
Tenho uma super-classe Pessoa e 2 sub-classes Aluno e Professor, não sei como fazer o construtor de Aluno e Professor, está dando um erro “Implicit super constructor Pessoa() is undefined. Must explicitly invoke another constructor”…

Também não estou conseguindo referenciar da classe Aluno a matricula e o nome do Aluno, que está declarada na classe Pessoa, ta dando erro “The field Pessoa.matricula is not visible”.

Obrigada,
Cintia

5 Respostas

C

Olá cicicae,

Coloque aqui como está o(s) construtor(es) da classe Pessoa e o(s) construtor(es) de Aluno e Professor que tá(ão) dando erro, assim eu posso explicar melhor o problema que você tá tendo.

Mas, adiantando, o seus construtores de Aluno e Professor estão sem uma linha “super” neles, e pelo jeito, você não criou um construtor padrão para a classe Pessoa. Com o seu código, eu acho que eu explico melhor :wink:

Você deve ter declarado a variável “matricula” com a visibilidade “private”. Se é privado da classe Pessoa, nem Aluno nem Professor podem utilizar essa variável. Se você quer que essa propriedade seja também disponível para as classes que herdam dela, declare-a como “protected”. Dê uma lida no tutorial da Sun se quiser aprender mais sobre visibilidade.

Até mais,

L

Tenta seguir esse molde:

public class Pessoa {
	private String nome;
	private int idade;
	
	
	
	public Pessoa(String nome, int idade) {
		this.nome = nome;
		this.idade = idade;
	}
	public int getIdade() {
		return idade;
	}
	public void setIdade(int idade) {
		this.idade = idade;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	
}
public class Aluno extends Pessoa{
	private int matricula;

	
	
	public Aluno(String nome, int idade, int matricula) {
		super(nome, idade);
		this.matricula = matricula;
	}

	public int getMatricula() {
		return matricula;
	}

	public void setMatricula(int matricula) {
		this.matricula = matricula;
	}
	
	
}

E um exemplo de uso do nome e idade:

public class Teste {
	public static void main(String[] args){
		
		Aluno aluno = new Aluno ("Nome",20,4587);
		
		String nome = aluno.getNome();
		int idade = aluno.getIdade();
		
		System.out.println(nome);
		System.out.println(idade);
	}
}

Espero que isso te ajude!

Abraços!

C

Poxa gente! Nem sei como agradecer, so pelas dicas que vcs me deram já consegui colocar o programa pra rodar, mas não ta rodando legal nao, ele ainda ta com erro na execução…
Ai vai os códigos!

Classe Pessoa

package dominio;

public class Pessoa {

String matricula;

String nome;

private String rua;

private int numero;

private String bairro;

private String cidade;

private String estado;

private String cep;

private String email;

private String telefone;

private String datanasc;
//Construtor
public Pessoa(String matricula, String nome, String rua, int numero, String bairro, String cidade, String estado, String cep, String email, String telefone, String datanasc)
{
    this.matricula = matricula;
	this.nome = nome;
    this.rua = rua;
    this.numero = numero;
    this.bairro = bairro;
    this.cidade = cidade;
    this.estado = estado;
    this.cep = cep;
    this.email = email;
    this.telefone = telefone;
    this.datanasc = datanasc;
}

//Get
public String getMatricula()
{
    return this.matricula;
}
public String getNome() 
{
    return this.nome;
}
public String getRua() 
{
    return this.rua;
}
public int getNumero() 
{
    return this.numero;
}
public String getBairro() 
{
    return this.bairro;
}
public String getCidade() 
{
    return this.cidade;
}
public String getEstado() 
{
    return this.estado;
}
public String getCep() 
{
    return this.cep;
}
public String getEmail() 
{
    return this.email;
}
public String getTelefone() 
{
    return this.telefone;
}
public String getDataNasc() 
{
    return this.datanasc;
}

//Set
public void setMatricula(String matricula) 
{
    this.matricula = matricula;
}
public void setNome(String nome) 
{
    this.nome = nome;
}
public void setRua(String rua) 
{
    this.rua = rua;
}
public void setNumero(int numero) 
{
    this.numero = numero;
}
public void setBairro(String bairro) 
{
    this.bairro = bairro;
}
public void setCidade(String cidade) 
{
    this.cidade = cidade;
}
public void setEstado(String estado) 
{
    this.estado = estado;
}
public void setCep(String cep) 
{
    this.cep = cep;
}
public void setEmail(String email) 
{
    this.email = email;
}
public void setTelefone(String telefone) 
{
    this.telefone = telefone;
}
public void setDataNasc(String datanasc) 
{
    this.datanasc = datanasc;
}

}

Classe Aluno

package dominio;

public class Aluno extends Pessoa

{

private float valorMensal;

private Disciplina[] listaDisciplina;

private int numDisciplina;
//Construtor de Aluno
public Aluno(String matricula, String nome, String rua, int numero, String bairro, String cidade, String estado, String cep, String email, String telefone, String datanasc, float valorMensal)
{
	super(matricula, nome, rua, numero, bairro, cidade, estado, cep, email, telefone, datanasc);
	this.valorMensal = valorMensal;
    this.listaDisciplina = new Disciplina[10];
    this.numDisciplina = 0;
}

//Get
public float getValorMensal()
{
	return this.valorMensal;
}

//Set
public void setValorMensal(float valorMensal)
{
	this.valorMensal = valorMensal;
}

//Adicionar Disciplina
public void adicionarDisciplina(Disciplina novo)
{
    this.listaDisciplina[this.numDisciplina] = novo;
    this.numDisciplina++;
}

//Remover Disciplina
public void removerDisciplina(Disciplina ex)
{
    int pos;
    for (pos = 0; pos < this.numDisciplina; pos++)
    {
        if (this.listaDisciplina[pos] == ex)
        {
            this.listaDisciplina[pos] = this.listaDisciplina[this.numDisciplina - 1];
            this.listaDisciplina[--this.numDisciplina] = null;
        }
    }
}

//ToString Alunos-Disciplinas
public String toString()
{
	String resultado = "[Alunos] " + this.matricula + this.nome + "\nDisciplinas do Aluno:\n";
	for(int i = 0; i < this.numDisciplina; i++)
	{
		resultado += this.listaDisciplina[i] + "\n";
	}
	return resultado;
}

}

Classe Professor

package dominio;

public class Professor extends Pessoa

{

private String dataAdmissao;

private float valorHoraAula;

private Disciplina[] listaDisciplina;

private int numDisciplina;
//Construtor
public Professor(String matricula, String nome, String rua, int numero, String bairro, String cidade, String estado, String cep, String email, String telefone, String datanasc, String dataAdmissao, float valorHoraAula)
{
	super(matricula, nome, rua, numero, bairro, cidade, estado, cep, email, telefone, datanasc);
	this.dataAdmissao = dataAdmissao;
    this.valorHoraAula = valorHoraAula;
    this.listaDisciplina = new Disciplina[10];
    this.numDisciplina = 0;
}

//Get
public String getDataAdmissao()
{
	return this.dataAdmissao;
}
public float getValorHoraAula()
{
	return this.valorHoraAula;
}

//Set
public void setDataAdmissao(String dataAdmissao)
{
	this.dataAdmissao = dataAdmissao;
}
public void setValorHoraAula(float valorHoraAula)
{
	this.valorHoraAula = valorHoraAula;
}

//Adicionar Disciplina
public void adicionarDisciplina(Disciplina novo)
{
    this.listaDisciplina[this.numDisciplina] = novo;
    this.numDisciplina++;
}

//Remover Disciplina
public void removerDisciplina(Disciplina ex)
{
    int pos;
    for (pos = 0; pos < this.numDisciplina; pos++)
    {
        if (this.listaDisciplina[pos] == ex)
        {
            this.listaDisciplina[pos] = this.listaDisciplina[this.numDisciplina - 1];
            this.listaDisciplina[--this.numDisciplina] = null;
        }
    }
}

//ToString Professor-Disciplina
public String toString()
{
	String resultado = "[Professor] " + this.matricula + this.nome + "\nDisciplinas do Professor:\n";
	for(int i = 0; i < this.numDisciplina; i++)
	{
		resultado += this.listaDisciplina[i] + "\n";
	}
	return resultado;
}

}

Classe Turma

package dominio;

public class Turma

{

private String codTurma;

private String periodo;

private Aluno[] listaAluno;

private int numAluno;
//Construtor
public Turma(String codTurma, String periodo)
{
    this.codTurma = codTurma;
    this.periodo = periodo;
    this.listaAluno = new Aluno[60];
    this.numAluno = 0;
}

//Get
public String getCodTurma()
{
	return this.codTurma;
}
public String getPeriodo()
{
	return this.periodo;
}

//Set
public void setCodTurma(String codTurma)
{
	this.codTurma = codTurma;
}
public void setPeriodo(String periodo)
{
	this.periodo = periodo;
}

//Adicionar Aluno
public void adicionarAluno(Aluno novo)
{
    this.listaAluno[this.numAluno] = novo;
    this.numAluno++;
}

//Remover Aluno
public void removerAluno(Aluno ex)
{
    int pos;
    for (pos = 0; pos < this.numAluno; pos++)
    {
        if (this.listaAluno[pos] == ex)
        {
            this.listaAluno[pos] = this.listaAluno[this.numAluno - 1];
            this.listaAluno[--this.numAluno] = null;
        }
    }
}
  
//ToString Turma-Alunos
public String toString()
{
	String resultado = "[Turma] " + this.codTurma + this.periodo + "\nAlunos da Turma:\n";
	for(int i = 0; i < this.numAluno; i++)
	{
		resultado += this.listaAluno[i] + "\n";
	}
	return resultado;
}

}

Classe Curso

package dominio;

public class Curso

{

private String codCurso;

private String nomeCurso;

private Disciplina[] listaDisciplina;

private int numDisciplina;
//Construtor
public Curso(String codCurso, String nomeCurso)
{
    this.codCurso = codCurso;
    this.nomeCurso = nomeCurso;
    this.listaDisciplina = new Disciplina[60];
    this.numDisciplina = 0;
}

//Get
public String getCodCurso()
{
	return this.codCurso;
}
public String getNomeCurso()
{
	return this.nomeCurso;
}

//Set
public void setCodCurso(String codCurso)
{
	this.codCurso = codCurso;
}
public void setNomeCurso(String nomeCurso)
{
	this.nomeCurso = nomeCurso;
}

//Adicionar Disciplina
public void adicionarDisciplina(Disciplina novo)
{
    this.listaDisciplina[this.numDisciplina] = novo;
    this.numDisciplina++;
}

//Remover Disciplina
public void removerDisciplina(Disciplina ex)
{
    int pos;
    for (pos = 0; pos < this.numDisciplina; pos++)
    {
        if (this.listaDisciplina[pos] == ex)
        {
            this.listaDisciplina[pos] = this.listaDisciplina[this.numDisciplina - 1];
            this.listaDisciplina[--this.numDisciplina] = null;
        }
    }
}

//ToString Curso-Disciplina
public String toString()
{
	String resultado = "[Curso] " + this.codCurso + this.nomeCurso + "\nDisciplinas do Curso:\n";
	for(int i = 0; i < this.numDisciplina; i++)
	{
		resultado += this.listaDisciplina[i] + "\n";
	}
	return resultado;
}

}

Classe Disciplina

package dominio;

public class Disciplina

{

private String codDiscip;

private String nomeDiscip;
//Construtor
public Disciplina(String codDiscip, String nomeDiscip)
{
    this.codDiscip = codDiscip;
    this.nomeDiscip = nomeDiscip;
}

//Get
public String getCodDiscip()
{
	return this.codDiscip;
}
public String getNomeDiscip()
{
	return this.nomeDiscip;
}

//Set
public void setCodDiscip(String codDiscip)
{
	this.codDiscip = codDiscip;
}
public void setNomeDiscip(String nomeDiscip)
{
	this.nomeDiscip = nomeDiscip;
}

}

C

Ops! Esqueci da classe Programa

package controle;

import dominio.Aluno;

import dominio.Professor;

import dominio.Curso;

import dominio.Disciplina;

import dominio.Turma;
public class Programa

{

public static void main(String[] args)

{

Aluno a1 = new Aluno(530352-1,José,Rua A,23,Centro,Araruama,Rio de <a href="mailto:Janeiro%22,%2228.970-000%22,%[email removido]">Janeiro",“28.970-000”,"[email removido]</a>,9909-9900,17/05/1980,336);

Aluno a2 = new Aluno(524020-2,Ana,Rua B,155,Centro,Cabo Frio,Rio de <a href="mailto:Janeiro%22,%2228.940-000%22,%[email removido]">Janeiro",“28.940-000”,"[email removido]</a>,8801-9900,17/05/1980,290);

Professor p1 = new Professor(202020-20,Alessandro Cerqueira,Rua Java,550,Centro,Rio de Janeiro,Rio de <a href="mailto:Janeiro%22,%2220.420-103%22,%[email removido]">Janeiro",“20.420-103”,"[email removido]</a>,9258-9505,17/05/1977,10/01/2000,60);

Professor p2 = new Professor(505050-20,Alcino Dias,Rua Beira Mar,10,Centro,Rio de Janeiro,Rio de <a href="mailto:Janeiro%22,%2221.400-100%22,%[email removido]">Janeiro",“21.400-100”,"[email removido]</a>,8145-9505,02/08/1960,01/06/1999,80);

Curso c1 = new Curso(53, Sistemas de Informação);

Curso c2 = new Curso(83, Direito);

Disciplina d1 = new Disciplina(250,SIG);

Disciplina d2 = new Disciplina(365,Penal I);

Turma t1 = new Turma(20,6º Período);

Turma t2 = new Turma(30,2º Período);

t1.adicionarAluno(a1);

t2.adicionarAluno(a2);

p1.adicionarDisciplina(d1);

p2.adicionarDisciplina(d2);

c1.adicionarDisciplina(d1);

c2.adicionarDisciplina(d2);
System.out.println(t1 + "\n\n\n");	
}

}

C

Olá cicicae,

Qual o erro que aparece na tela?

Criado 29 de junho de 2006
Ultima resposta 29 de jun. de 2006
Respostas 5
Participantes 3