Aiuto implementazione classi

di il
4 risposte

Aiuto implementazione classi

Mi aiutate a capire gli errori???
questa è la mia classe:


//main.java

import java.util.Scanner;

public class main

{
public static Aula setAula(Aula a1, Aula a2)
{
Scanner in = new Scanner(System.in);
Aula aula = null;
System.out.print("Aula1 o 2? " );
int numAula = in.nextInt();
if(numAula == 1)
aula = a1;
else
aula = a2;

return aula;
}

public static void main(String[] args)
{
Scanner in = new Scanner(System.in);

try
{
Aula a1 = new Aula(Integer.parseInt(args[0]));
Aula a2 = new Aula(Integer.parseInt(args[0]));

Aula aula = null; //aula generica

String menu = "1) Modifica capienza\n"
+ "2) Assegna Docente\n"
+ "3) Prenota\n"
+ "4) ordina alfabeticamente le prenotazioni\n"
+ "5) Stampa situazione aula\n"
+ "6) esci";

boolean esci = false;

while (!esci)
{
System.out.println(menu);
int opzione = in.nextInt();

switch(opzione)
{
case 1: //Modifica capienza
{
aula = setAula(a1, a2);
System.out.print("Nuova capienza? ");
int cap = in.nextInt();
aula.setCapienza(cap);
break;
}

case 2: //Assegna docente
{
aula = setAula(a1, a2);
System.out.print("Docente: nome? ");
String nomeDoc = in.next();
System.out.print("Docente: cognome? ");
String cognomeDoc = in.next();
System.out.print("Docente: insegnamento? ");
String insegnamento = in.next();
Docente doce = new Docente(nomeDoc,cognomeDoc, insegnamento);
aula.assegnaDocente(doce);
break;
}
case 3: //Prenota
{
aula = setAula(a1, a2);
if(aula.raggiuntaCapienza())
System.out.println("Raggiunta caienza, non si accettano piu ");
else // c'è posto
{
System.out.print("Prenotazione: nome? ");
String nome = in.next();
System.out.print("Prenotazione: cognome? ");
String cognome = in.next();
System.out.print("Prenotazione: email? ");
String email = in.next();
System.out.print("Prenotazione: studente (s) o esterno (e)? ");
String tipo = in.next();
Persona p = null;

if(tipo.equals("s"))
{
System.out.println("Prenotazione: matricola? ");
int matricola = in.nextInt();
p = new Studente(nome,cognome,email,matricola);
}
else //tipo equals ("e")
p= new Esterno(nome, cognome,email);
if(aula.prenota(p))
System.out.println("Prenotazione effettuata");
else
System.out.println("Persona gia prenotata");
}
break;
}

case 4: //ordina alfabeticamente le prenotazioni
{
aula = setAula(a1,a2);
aula.ordina();
break;
}

case 5: //stampa situazione aula
{
aula=setAula(a1, a2);
System.out.println(aula);
break;
}

case 6: //esci
{
esci = true;
break;
}
default:
{
System.out.println("Scelta non valida ");
break;
}
} //end switch
}//end while
}//end try

//se noon ci sono argomenti sulla linea di comando
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("Rilanciare il programma con le capienze delle due aule");
}

//se gli argomenti sulla linea di comandi non sono numeri interi
{
System.out.println("Il programma si aspetta due numeri interi");
}

System.out.println("\nFine esecuzione");

//end main
}
}

//end class




e questi sono gli errori

./Persona.java:14: missing method body, or declare abstract
public Persona(String n, String c);
^
./Persona.java:16: cannot find symbol
symbol : variable n
location: class Persona
nome = n;
^
./Persona.java:17: cannot find symbol
symbol : variable c
location: class Persona
cognome = c;
^
./Persona.java:23: cannot find symbol
symbol : variable e
location: class Persona
email = e;


in caso dovesse servire la classe PErsona eccola qui:

// persona.java

public abstract class Persona implements Comparable <Persona>

{
//CAMPI

private String nome;
private String cognome;
private String email;

//COSTRUTTORI

public Persona(String n, String c);
{
nome = n;
cognome = c;
}

public Persona(String n, String c, String e)
{
this(n,c); //usa il costruttore precedente
email = e;

}


//METODI
public String getNome()
{
return nome;
}

public String getCognome()
{
return cognome;
}

public void setEmail(String e)
{
email= e;

}

public String getEmail()
{
return email;
}

public boolean equals(Persona p)
{
return nome.equals(p.nome) && cognome.equals(p.cognome);
}

//riscrive il metodo equals della classe object

public boolean equals(Object o)
{
if (o instanceof Persona)
{
Persona p = (Persona) o;
return this.equals(p); //chiama il metodo equals(Persona) definito sopra
}
else return false;
}

public int compareTo(Persona altra)
{
String questaPersona = cognome + nome;
String altraPersona = altra.cognome + altra.nome;
return (questaPersona.compareTo(altraPersona));
}

public String toString()
{
String postaEl = "";
if(email != null)
postaEl = email;
return (nome + " " + cognome + " " + postaEl );
}
}

//end class


per favore mi aiutate????
grazie

4 Risposte

  • Re: Aiuto implementazione classi

    Persona è astratta.
    Non puoi istanziare una classe astratta
  • Re: Aiuto implementazione classi

    No, semplicemente hai messo il punto e virgola dopo il costruttore "Persona".
    Persona è astratta, è vero, ma lui istanzia Studente.
  • Re: Aiuto implementazione classi

    Ah cavoli...non avevo visto bene...
    le 17 sono sempre un orario critico
  • Re: Aiuto implementazione classi

    Ahaha purtroppo hai ragione! Fra l'altro è un errore subdolo quello del punto e virgola perché non te ne accorgi mai subito
Devi accedere o registrarti per scrivere nel forum
4 risposte