Netbeans - Estoy en la clase Main y quiero llamar a un metodo de otra clase para un print

 
Vista:

Estoy en la clase Main y quiero llamar a un metodo de otra clase para un print

Publicado por Jose (1 intervención) el 25/06/2018 23:23:10
Hola!

Necesito una manito de urgencia cualquier ayudar sera agradecida y bienvenida.

Tengo la clase main:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public class PrimerParcial2018TurnoNoche {
    public static void main(String[] args) {
 
        Scanner sc = new Scanner(System.in);
        System.out.println("Ingrese la cantidad de pacientes");
        int cantidadpacientes = sc.nextInt();
        Odontologia odo = new Odontologia(cantidadpacientes);
 
        for(int i=0;i<cantidadpacientes;i++)
        {
        System.out.println("Paciente nro "+i);
         System.out.println("Ingrese el nombre del paciente");
         String nombre = sc.next();
          System.out.println("Ingrese el DNI");
          String dni = sc.next();
           System.out.println("Ingrese la edad");
           int edad= sc.nextInt();
           System.out.println("Ingrese 1 si posee obra social y 0 sino");
           int obra =sc.nextInt();
           boolean obrasocial = false;
           if(obra==1) obrasocial=true;
           System.out.println("Ingrese la cantidad de turnos");
           int turnos = sc.nextInt();
 
           Paciente p = new Paciente(nombre,dni,edad,obrasocial,turnos);
 
           for(int t =0;t<turnos;t++)
           {
               System.out.println("Turno nro"+t);
             System.out.println("Ingrese el tipo de trabajo 1-Limpieza de caries 2-Ortodoncia 3-Tratamiento de conducto");
            int tipodetrabajo = sc.nextInt();
 
             System.out.println("Ingrese el monto del trabajo");
             float montodetrabajo = sc.nextFloat();
            System.out.println("Ingrese 1 si el paciente asistio y 0 sino");
           int asis = sc.nextInt();
           boolean asistio=false;
          if(asis==1)asistio=true;
 
           Turno tu = new Turno(tipodetrabajo,montodetrabajo,asistio);
 
           p.agregarTurno(tu);}
           odo.agregarPaciente(p);
 
        }
System . out . println ( " Suma de todas las deudas : $" + p.sumaDineroPerdidoPorInasistencias());
    }
}


Luego tengo la clase Odontologia:

1
2
3
4
5
6
7
8
9
10
11
12
public class Odontologia {
    private Paciente[]pacientes;
 
 
    public Odontologia(int cantidadpacientes) {
    pacientes=new Paciente[cantidadpacientes];}
 
    public void agregarPaciente(Paciente p)
    {for (int i=0;i<pacientes.length;i++)
    {if(pacientes[i]==null)
    {pacientes[i]=p;
    break;}}}


Luego la clase Paciente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
public class Paciente {
    private String nombre;
    private String dni;
    private int edad;
    private boolean obrasocial;
    private Turno[]turnos;
 
    public Paciente() {
    }
 
    public Paciente(String nombre, String dni, int edad, boolean obrasocial,int cantidadturnos) {
        this.nombre = nombre;
        this.dni = dni;
        this.edad = edad;
        this.obrasocial = obrasocial;
        turnos = new Turno[cantidadturnos];
 
 
    }
 
public int cantidadTiposdetrabajo (int tipodetrabajo ) {
int c = 0;
for ( Turno t : turnos ) {
if (t != null && t. getTipodetrabajo () == tipodetrabajo ) {
c ++;
}
}
return c;
}
    public void agregarTurno (Turno t)
    {for(int i=0;i<turnos.length;i++)
    {if(turnos[i]==null)
    {turnos[i]=t;
    break;}}}
 
      public float sumaDineroPerdidoPorInasistencias () {
float acPrecio = 0;
for ( Turno t : turnos) {
if (t != null && t. isAsistio () == false) {
acPrecio += t. getMontodetrabajo ();
}
}
return acPrecio ;
}
    public String getNombre() {
        return nombre;
    }
 
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
 
    public String getDni() {
        return dni;
    }
 
    public void setDni(String dni) {
        this.dni = dni;
    }
 
    public int getEdad() {
        return edad;
    }
 
    public void setEdad(int edad) {
        this.edad = edad;
    }
 
    public boolean isObrasocial() {
        return obrasocial;
    }
 
    public void setObrasocial(boolean obrasocial) {
        this.obrasocial = obrasocial;
    }
 
    @Override
    public String toString() {
        return "Paciente{" + "nombre=" + nombre + ", dni=" + dni + ", edad=" + edad + ", obrasocial=" + obrasocial + '}';
    }
 
 
}


Y por ultimo la clase Turno:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class Turno {
    private int tipodetrabajo;
    private float montodetrabajo;
    private boolean asistio;
 
    public Turno() {
    }
 
    public Turno(int tipodetrabajo, float montodetrabajo, boolean asistio) {
        this.tipodetrabajo = tipodetrabajo;
        this.montodetrabajo = montodetrabajo;
        this.asistio = asistio;
 
 
    }
 
    public int getTipodetrabajo() {
        return tipodetrabajo;
    }
 
    public void setTipodetrabajo(int tipodetrabajo) {
        this.tipodetrabajo = tipodetrabajo;
    }
 
    public float getMontodetrabajo() {
        return montodetrabajo;
    }
 
    public void setMontodetrabajo(float montodetrabajo) {
        this.montodetrabajo = montodetrabajo;
    }
 
    public boolean isAsistio() {
        return asistio;
    }
 
    public void setAsistio(boolean asistio) {
        this.asistio = asistio;
    }
 
    @Override
    public String toString() {
        return "Turno{" + "tipodetrabajo=" + tipodetrabajo + ", montodetrabajo=" + montodetrabajo + ", asistio=" + asistio + '}';
    }
 
}


Ahora bien, vamos al problema:

Me sale el siguiente error en la clase Main:

2dwc0a9


Es decir, necesito poder llamar de alguna manera el metodo de la clase Paciente. Hay alguna manera de que pueda hacer si sin tener que modificar ninguna linea de las de mas de arriba?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Estoy en la clase Main y quiero llamar a un metodo de otra clase para un print

Publicado por Elsa (1 intervención) el 06/08/2018 06:24:30
Hola
Por lo que pude ver, te falta importar Scanner..
Import java.util.Scanner; en tu main, eso como primer error que vi, luego declaras de manera redundante los constructores, cuando estas definiendo los atributos de tu clase, eso te pasa en la clase paciente y turno, yo que tu saco esa definición de clase donde incluyes a los atributos y me quedo solo con el constructor por defecto y el sobrecargado que luego utilizas... lo demas lo veo bien...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar