Java - NOVATO. Crear un atributo que referencie a un objeto

 
Vista:
sin imagen de perfil

NOVATO. Crear un atributo que referencie a un objeto

Publicado por pedro (1 intervención) el 07/03/2022 22:25:01
Buenas noches a todos.

Estoy empezando a la vejez a programar con Java y se me plantea una duda con una tarea que me han puesto en el curso. Os copio el enunciado.

1
2
3
4
5
6
Creamos una clase de objeto llamada “Movil” con los siguientes atributos:
........
.........
• sistemaOperativo: objeto So: con los atributos tipo de tipo texto y versión de tipo entero, ejemplo: Android, 12
• camaraFrontal: objeto Cam: con los atributos: resolución y número de cámaras de tipo entero y estabilizador de tipo verdadero y falso.
• camaraTrasera: objeto Cam: con los atributos: resolución y número de cámaras de tipo entero y estabilizador de tipo verdadero y falso.

¿¿Cómo reflejo esto en el código?? Estoy empezando y salirme de los atributos primitivos me está liando. ¿¿Cómo creo luego los constructores?? Algún ejemplo de código me vendría genial

Gracias
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 Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

NOVATO. Crear un atributo que referencie a un objeto

Publicado por Billy Joel (876 intervenciones) el 08/03/2022 16:58:42
Primero debes entender algo, una clase tiene atributos que son representados en un objeto.
Creo que es un poco confuso pero lo vas a entender con el ejemplo de la clase Cam.

Está fácil, te piden 3 clases, Movil, So y Cam. Yo lo desarrollaría en orden inverso, primero Cam, So y al final So.

Bueno la clase Cam
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
public class Cam {
 
    private int resolucion;
    private int numeroCamaras;
    private boolean estabilizador;
 
    public Cam(int resolucion, int numeroCamaras, boolean estabilizador) {
        this.resolucion = resolucion;
        this.numeroCamaras = numeroCamaras;
        this.estabilizador = estabilizador;
    }
 
    @Override
    public String toString() {
        return "Resolución: " + resolucion + "; Número de cámaras: " + numeroCamaras + "; Estabilizador: " + estabilizador;
    }
 
    /**
     * @return the resolucion
     */
    public int getResolucion() {
        return resolucion;
    }
 
    /**
     * @param resolucion the resolucion to set
     */
    public void setResolucion(int resolucion) {
        this.resolucion = resolucion;
    }
 
    /**
     * @return the numeroCamaras
     */
    public int getNumeroCamaras() {
        return numeroCamaras;
    }
 
    /**
     * @param numeroCamaras the numeroCamaras to set
     */
    public void setNumeroCamaras(int numeroCamaras) {
        this.numeroCamaras = numeroCamaras;
    }
 
    /**
     * @return the estabilizador
     */
    public boolean isEstabilizador() {
        return estabilizador;
    }
 
    /**
     * @param estabilizador the estabilizador to set
     */
    public void setEstabilizador(boolean estabilizador) {
        this.estabilizador = estabilizador;
    }
}

Entonces la clase So (Sistema Operativo)
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
public class So {
 
    private String tipo;
    private int version;
 
    public So(String tipo, int version) {
        this.tipo = tipo;
        this.version = version;
    }
 
    @Override
    public String toString() {
        return tipo + ", " + version;
    }
 
    /**
     * @return the tipo
     */
    public String getTipo() {
        return tipo;
    }
 
    /**
     * @param tipo the tipo to set
     */
    public void setTipo(String tipo) {
        this.tipo = tipo;
    }
 
    /**
     * @return the version
     */
    public int getVersion() {
        return version;
    }
 
    /**
     * @param version the version to set
     */
    public void setVersion(int version) {
        this.version = version;
    }
}

Estas dos clases le suelen llamar beans...

Al final la clase Movil que le he agregado un atributo adicional, String modelo
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
public class Movil {
 
    private String modelo;
    private So sistemaOperativo;
    private Cam camaraFrontal;
    private Cam camaraTrasera;
 
    public Movil(String modelo, So sistemaOperativo, Cam camaraFrontal, Cam camaraTrasera) {
        this.sistemaOperativo = sistemaOperativo;
        this.camaraFrontal = camaraFrontal;
        this.camaraTrasera = camaraTrasera;
    }
 
    @Override
    public String toString() {
        return "Modelo " + getModelo() + "; " + sistemaOperativo + "; " + camaraFrontal + "; " + camaraTrasera;
    }
 
    /**
     * @return the sistemaOperativo
     */
    public So getSistemaOperativo() {
        return sistemaOperativo;
    }
 
    /**
     * @param sistemaOperativo the sistemaOperativo to set
     */
    public void setSistemaOperativo(So sistemaOperativo) {
        this.sistemaOperativo = sistemaOperativo;
    }
 
    /**
     * @return the camaraFrontal
     */
    public Cam getCamaraFrontal() {
        return camaraFrontal;
    }
 
    /**
     * @param camaraFrontal the camaraFrontal to set
     */
    public void setCamaraFrontal(Cam camaraFrontal) {
        this.camaraFrontal = camaraFrontal;
    }
 
    /**
     * @return the camaraTrasera
     */
    public Cam getCamaraTrasera() {
        return camaraTrasera;
    }
 
    /**
     * @param camaraTrasera the camaraTrasera to set
     */
    public void setCamaraTrasera(Cam camaraTrasera) {
        this.camaraTrasera = camaraTrasera;
    }
 
    /**
     * @return the modelo
     */
    public String getModelo() {
        return modelo;
    }
 
    /**
     * @param modelo the modelo to set
     */
    public void setModelo(String modelo) {
        this.modelo = modelo;
    }
}

Digamos que quieres instanciar/crear un objeto de la clase Movil
1
2
3
4
5
6
Movil s3 = new Movil("Samsung SIII",
        new So("Android", 8),
        new Cam(3, 1, false),
        new Cam(8, 1, true));
 
System.out.println(s3);

Saludos,
Billy Joel
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