Construtor

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

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,

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!

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;
}

}

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 Janeiro",“28.970-000”,"jose@gmail.com”,“9909-9900”,“17/05/1980”,336);
Aluno a2 = new Aluno(“524020-2”,“Ana”,“Rua B”,155,“Centro”,“Cabo Frio”,“Rio de Janeiro",“28.940-000”,"ana@gmail.com”,“8801-9900”,“17/05/1980”,290);
Professor p1 = new Professor(“202020-20”,“Alessandro Cerqueira”,“Rua Java”,550,“Centro”,“Rio de Janeiro”,“Rio de Janeiro",“20.420-103”,"alessandro@gmail.com”,“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 Janeiro",“21.400-100”,"alcino@gmail.com”,“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");	
}

}

Olá cicicae,

Qual o erro que aparece na tela?