Java - Duda con Métodos y Case

   
Vista:

Duda con Métodos y Case

Publicado por Last (2 intervenciones) el 22/11/2015 03:19:05
Buenas!
Mi duda es la siguiente, como pueden observar éste es mi main, el problema es que no puedo llamar el método get.Cuenta.Cocteles, no sé exactamente que está mal, ya que la clase "cocteles" que es de donde lo estoy llamando, es exactamente igual que la clase banquetes, (El case 1) y éste si funciona, adjunto el Main y la clase cocteles por cualquier duda, agradecería que alguien me pudiera ayudar, de antemano pido disculpas si cometí algun error, soy nuevo en el foro.

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
import java.util.Scanner;
 
 
public class ProyecyoFinal {
 
 
    public static void main(String[] args) {
        int Opcionmenu =0;
 
        while ( Opcionmenu != 5){
        System.out.println("seleccione una opcion:");
        System.out.println("1.- servicio de banquete");
        System.out.println("2.- servicio de cocteleria");
        System.out.println("3.- localidades");
        System.out.println("4.- imprimir recibo");
        System.out.println("5.- salir");
 
        Scanner sc = new Scanner(System.in);
 
        Opcionmenu = sc.nextInt();
 
 
            switch(Opcionmenu){
 
                case 1: {banquete banquete1 = new banquete();
                        banquete1.Mostrarmenubanquete();
                        System.out.println("La cuenta hasta ahorita es de " + banquete1.getCuentaBanquete() +" Pesos");
                        break;
                }
 
 
                case 2: {cocteles coctel1 = new cocteles ();
                         coctel1.MostrarmenuCocteles();
                       ///  System.out.println("La cuenta hasta ahorita es de " +cocteles1.getCuentaCocteles() + " Pesos");
                         break;
                }


CLASE COCTELES

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
import java.util.Scanner;
 
public class cocteles {
 
    int HrsLicor=0;
    int HrsPreparados=0;
    int HrsRefresco=0;
 
 
 
 
    public void MostrarmenuCocteles(){
        int opcionCocteles=0;
        int CuentaCocteles = 0;
        int Horas;
        int CuentaCoctelesC = 0;
        int CuentaCoctelesL = 0;
        int CuentaCoctelesR = 0;
 
        while(opcionCocteles!=5){
        System.out.println("escoja elservicio que quiera para su fiesta (pueden ser varios)");
        System.out.println("1.- Cerveza............$300 Por hora");
        System.out.println("2.- Preparados.........$600 Por hora");
        System.out.println("3.- Refresco...........$200 Por hora");
        System.out.println("4.- Cuenta Cocteles");
        System.out.println("5.- salir");
        Scanner sc = new Scanner(System.in);
 
 
opcionCocteles = sc.nextInt();
 
        switch(opcionCocteles){
 
            case 1 :
            	System.out.println("¿Cuanto tiempo en horas desea este servicio?");
            	Horas = sc.nextInt();
            	CuentaCoctelesC = Horas * 300;
            	CuentaCocteles = CuentaCocteles + CuentaCoctelesC;
            	break;
 
            case 2 :
            	System.out.println("¿Cuántas tiempo en horas desea este servicio?");
            	Horas = sc.nextInt();
            	CuentaCoctelesL = Horas * 600;
            	CuentaCocteles = CuentaCocteles + CuentaCoctelesL;
            	break;
 
            case 3 :
            	System.out.println("¿Cuántas tiempo en horas desea este servicio?");
            	Horas = sc.nextInt();
            	CuentaCoctelesR = Horas * 200;
            	CuentaCocteles = CuentaCocteles + CuentaCoctelesR;
            	break;
            case 4 :
            	System.out.println("La cuenta de cocteles es " + CuentaCocteles);
 
        }
 
 
        }
 
 
 
    }
 
 
 public int getCuentaCocteles() {
  return CuentaCocteles;
 
}
 }
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
Imágen de perfil de Lawliet

Duda con Métodos y Case

Publicado por Lawliet (243 intervenciones) el 22/11/2015 04:36:39
Hola...

Tu variable CuentaCocteles la tienes declarada como variable local en el método MostrarmenuCocteles, además pude detectar algunos errores de sintaxis en el código, te paso el código corregido para que lo intentes.

Main.java
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
public static void main(String[] args) {
	int Opcionmenu = 0;
	while ( Opcionmenu != 5){
		System.out.println("seleccione una opcion:");
		System.out.println("1.- servicio de banquete");
		System.out.println("2.- servicio de cocteleria");
		System.out.println("3.- localidades");
		System.out.println("4.- imprimir recibo");
		System.out.println("5.- salir");
 
		Scanner sc = new Scanner(System.in);
		Opcionmenu = sc.nextInt();
		switch(Opcionmenu){
			case 1 :
				banquete banquete1 = new banquete();
				banquete1.Mostrarmenubanquete();
				System.out.println("La cuenta hasta ahorita es de " + banquete1.getCuentaBanquete() +" Pesos");
			break;
			case 2:
				cocteles coctel1 = new cocteles();
				coctel1.MostrarmenuCocteles();
			break;
		}
	}
}

cocteles.java
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
public class cocteles {
	int HrsLicor=0;
	int HrsPreparados=0;
	int HrsRefresco=0;
	int CuentaCocteles = 0;
 
	public void MostrarmenuCocteles(){
		int opcionCocteles=0;
		int Horas;
		int CuentaCoctelesC = 0;
		int CuentaCoctelesL = 0;
		int CuentaCoctelesR = 0;
 
		while(opcionCocteles!=5){
			System.out.println("escoja elservicio que quiera para su fiesta (pueden ser varios)");
			System.out.println("1.- Cerveza............$300 Por hora");
			System.out.println("2.- Preparados.........$600 Por hora");
			System.out.println("3.- Refresco...........$200 Por hora");
			System.out.println("4.- Cuenta Cocteles");
			System.out.println("5.- salir");
			Scanner sc = new Scanner(System.in);
			opcionCocteles = sc.nextInt();
			switch(opcionCocteles){
				case 1 :
					System.out.println("¿Cuanto tiempo en horas desea este servicio?");
					Horas = sc.nextInt();
					CuentaCoctelesC = Horas * 300;
					CuentaCocteles = CuentaCocteles + CuentaCoctelesC;
				break;
				case 2 :
					System.out.println("¿Cuántas tiempo en horas desea este servicio?");
					Horas = sc.nextInt();
					CuentaCoctelesL = Horas * 600;
					CuentaCocteles = CuentaCocteles + CuentaCoctelesL;
				break;
				case 3 :
					System.out.println("¿Cuántas tiempo en horas desea este servicio?");
					Horas = sc.nextInt();
					CuentaCoctelesR = Horas * 200;
					CuentaCocteles = CuentaCocteles + CuentaCoctelesR;
				break;
				case 4 :
					System.out.println("La cuenta de cocteles es " + CuentaCocteles);
				break;
			}
		}
	}
 
	public int getCuentaCocteles() {
		return CuentaCocteles;
	}
}

Te doy unos consejos de buenas prácticas de Java enfocados a la convención de nombres cuando declaramos un método, una variable o creamos una clase.

Clases: Los nombres deben ser sustantivos con la primera letra de cada palabra en mayúscula si es que tiene más de una palabra; es decir, UpperCamelCase.
*Ejemplo Uno: public class Empleado
*Ejemplo Dos: public class ClaseEmpleadoResturante

Métodos: Los nombres deben ser verbos, si el nombre tiene varias palabras entonces la primera letra en minúscula y la primera letra de las palabras siguientes en mayúsculas; es decir, lowerCamelCase.
*Ejemplo Uno: public int sumar()
*Ejemplo Dos: public void crearArchivo()

Variables: Las variables locales, variables de instancia y variables de clase también se escriben en lowerCamelCase.
*Ejemplo Uno: int total
*Ejemplo Dos: int totalFinal

También existen las Constantes pero ese sería otro tema aparte.

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Duda con Métodos y Case

Publicado por Last (2 intervenciones) el 22/11/2015 04:49:11
Muchísimas gracias Sir Lawliet, muy completa tu respuesta y útil! se agradecen todos los consejos, a ponerlos en práctica!
Un saludo
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
Imágen de perfil de Lawliet

Duda con Métodos y Case

Publicado por Lawliet (243 intervenciones) el 22/11/2015 05:11:51
Hola...

No es nada, los foros son hechos para ayudar y aprender, aunque en mi humilde opinión, si el ejercicio es para el instituto lo de las convenciones de los nombres es algo que el profesor debió enseñarles desde el inicio, pero supongo que el tiene su método de enseñanza.

Incluso déjame decirte que existen aplicaciones que analizan el código y si no cumplen con estas convenciones te los marca como advertencia. Saco esto a tema por que la empresa donde trabajo implementa estas herramientas para ver la calidad de nuestro código ^^.

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!
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