Java - Ayuda con setters

 
Vista:

Ayuda con setters

Publicado por Luis Santillan (2 intervenciones) el 18/01/2018 19:36:46
Tengo mis 2 clases, Radio y Mainn, pero los metodos de la clase Radio parecen no funcionar como deberian y no se por que


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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
public class Radio {
 
	//declarar atributos
	private boolean encendido;
	private double frecuencia;
	private boolean banda; //1 es FM y 0 es AM
	private int volumen;
 
	//constructor default
	public Radio() {
		encendido = false;
		frecuencia = 535;
		banda = false;
		volumen = 0;
	}
 
	//constructor
	public Radio(boolean on, boolean fm, int v, double hz) {
		encendido = on;
		frecuencia = hz;
		banda = fm;
		volumen = v;
	}
 
	//getters
	public boolean getEncendido() {
		return encendido;
	}
 
	public double getFrecuencia() {
		return frecuencia;
	}
 
	public boolean getBanda() {
		return banda;
	}
 
	public int getVolumen() {
		return volumen;
	}
 
	//setters
	public void setEncendido(boolean on) {
		this.encendido = on;
	}
 
	public void setFrecuencia(double hz, boolean fm) {
		this.frecuencia = hz;
	}
 
	public void setBanda(boolean fm) {
		this.banda = fm;
	}
 
	public void setVolumen(int v) {
			this.volumen = v;
	}
 
 
	public void subeVolumen() {
		if(encendido == true) {
			if(volumen != 30) {
				volumen++;
			}else {
				System.out.println("No se puede bajar mas el volumen");
			}
		} else {
			System.out.println("No esta encendido el dispositivo");
		}
	}
 
	public void bajaVolumen() {
		if(encendido == true) {
			if(volumen != 0) {
				volumen++;
			}else {
				System.out.println("No se puede bajar mas el volumen");
			}
		} else {
			System.out.println("No esta encendido el dispositivo");
		}
	}
 
	public void subeFrecuencia() {
		if(encendido == true) {
			if(banda == false && frecuencia != 1605) {
				frecuencia = frecuencia + 10;
			} else if(banda == true && frecuencia != 108.1) {
				frecuencia = frecuencia + 0.2;
			} else {
			System.out.println("No se puede subir mas la frecuencia");
			}
		} else {
			System.out.println("No esta encendido el dispositivo");
		}
	}
 
	public void bajaFrecuencia() {
		if(encendido == true) {
			if(banda == false && frecuencia != 535) {
				frecuencia = frecuencia - 10;
			} else if(banda == true && frecuencia != 88.1) {
				frecuencia = frecuencia - 0.2;
			} else {
			System.out.println("No se puede bajar mas la frecuencia");
			}
		} else {
			System.out.println("No esta encendido el dispositivo");
		}
	}
 
	public void cambiaBanda(boolean on) {
		if(on==true) {
			encendido = false;
		}else {
			encendido = true;
		}
	}
 
}



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
84
85
86
87
88
89
90
91
92
93
import java.util.Scanner;
 
public class Main {
 
	public static void main(String[] args) {
		boolean encendido, banda;
		double frecuencia;
		int volumen, opcion,opcion2;
		Scanner keyboard = new Scanner(System.in);
 
		do {
			System.out.println("Dime 1-encendido  0-apagado");
			opcion = keyboard.nextInt();
		} while(opcion != 0 && opcion != 1);
		encendido = (opcion==1);
 
		do {
			System.out.println("Dime 1-FM  0-AM");
			opcion = keyboard.nextInt();
		} while(opcion != 0 && opcion != 1);
		banda = (opcion==1);
 
		if(banda == true) {
			do {
				System.out.println("Que frecuencia?(88.1-108.1 para FM)");
				frecuencia = keyboard.nextDouble();
			}while(frecuencia < 88.1 || frecuencia > 108.1);
		}else {
			do {
				System.out.println("Que frecuencia?(535-1605 para AM)");
				frecuencia = keyboard.nextDouble();
			}while(frecuencia < 535 || frecuencia > 1605);
		}
 
		do {
		System.out.println("Que volumen?(Entre 0 y 30)");
		volumen = keyboard.nextInt();
		} while(volumen < 0 || volumen > 30);
 
		Radio miRadio = new Radio(encendido,banda,volumen,frecuencia);
 
		do {
			System.out.println("Menu");
			System.out.println("1. Encender");
			System.out.println("2. Apagar");
			System.out.println("3. Subir Volumen");
			System.out.println("4. Bajar Volumen");
			System.out.println("5. Cambiar de Banda");
			System.out.println("6. Subir frecuencia");
			System.out.println("7. Bajar frecuencia");
			System.out.println("8. Salir");
			opcion2 = keyboard.nextInt();
 
			switch(opcion2) {
				case 1:
					miRadio.setEncendido(true);
					break;
				case 2:
					miRadio.setEncendido(false);
					break;
				case 3:
					miRadio.subeVolumen();
					break;
				case 4:
					miRadio.bajaVolumen();
					break;
				case 5:
					miRadio.cambiaBanda(banda);
					break;
				case 6:
					miRadio.subeFrecuencia();
					break;
				case 7:
					miRadio.bajaFrecuencia();
					break;
			}
 
 
		}while(opcion2 !=8);
 
		System.out.println("Los atributos del radio por el momento son:");
		System.out.println("Encendido: " +encendido);
		if(banda == true) {
			System.out.println("Banda: FM");
			System.out.println("Frecuencia: " + frecuencia + "MHz");
		}else {
			System.out.println("Banda: AM");
			System.out.println("Frecuencia: " + frecuencia + "kHz");
		}
		System.out.println("Volumen: " +volumen);
		keyboard.close();
	}
}
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

Ayuda con setters

Publicado por Ramón (6 intervenciones) el 18/01/2018 23:18:11
Dejando a un lado posibles errores en las condiciones de los if, supongo que te refieres a los valores que te devuelve el programa cuando termina la ejecución y no te da los valores que debería porque no estás utilizando las variables de instancia del objeto miRadio, sino las variables que definiste para la clase Main. Es decir, no estás utilizando los gets de la clase Radio.
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