Java - CLASES ANIDADAS - BIBLIOTECA-LIBRO

 
Vista:

CLASES ANIDADAS - BIBLIOTECA-LIBRO

Publicado por Gabriel (3 intervenciones) el 12/03/2019 04:25:56
POR FAVOR ALGUIEN QUE ME PUEDA AYUDAR, YA LLEVO DIAS INTENTANDO SOLUCIONAR ESTE CÓDIGO...

ME PIDIERON HACER UNA CLASE CON ANIDAMIENTO...
"ANIDAMIENTO FORMAL BIBLIOTECA Y LIBRO"
NECESITO HACER EL CÓDIGO PARECIDO A ESTE QUE SE MUESTRA AQUÍ ABAJO

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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/*
 EJEMPLO QUE MUESTRA EL ANIDAMIENTO FORMAL DE CLASES INCLUYENDO ARREGLOS DE OBJS.
 */
package aniformal;
 
import java.io.IOException;
 
// CLASE EXTERNA
class Alumno
{
    private int grado;
    public long matri;
 
    // clase independiente
class Persona
{
  public String nomb;
  private int edad;
  public char sexo;
 
  //constructor
  public Persona(String n, int e, char s)
  {
      nomb=n;
      edad=e;
      sexo=s;
  }
 
  public void cifraedad(int clave)
  {
      edad=edad ^ clave;
  }
 
  public void exhibeinf(int clave)
  {
      int x;
      x=edad^clave;
      System.out.println("Datos...");
      System.out.printf("\n Nomb : %s \t Edad cifrada : %d \t Edad descifrada : %d \t Sexo : %c",nomb,edad,x,sexo);
 
  }
 
}
 
     // ANIDAMIENTO FORMAL
    public Persona misdatos;     // referencia a objetos de otra clase
 
    public Alumno(int g, long m,String n, int e, char s,int c)
    {
        grado=g;
        matri=m;
 
        misdatos=new Persona(n,e,s);   //crea objeto anidado
        misdatos.cifraedad(c);
 
   }
 
   public void exhibealumno(int c)
   {
       System.out.println("\nDatos de alumno...");
       System.out.printf("\n Grado : %d \t matricula :%d\n",grado,matri);
       misdatos.exhibeinf(c);     // datos personales de alumno
   }
 
}
 
 
/**
 *
 * @author SATELLITE
 */
public class Aniformal {
 
    /**
     * @param args the command line arguments
     */
 
    // con gestion de error en la cabecera
    public static void main(String[] args) throws IOException {
        // TODO code application logic here
 
        // INVESTIGAR LA MANERA DE DECLARAR REFERENCIAS A OBJETOS DE CLASES 
        // ANIDADAS O INTERNAS EN EL TEMA INNER O NESTED CLASS DEL TUTORIAL
        // DE LA PAGINA PRINCIPAL DE JAVA ...SI SE PUEDE!!!!!
 
       //         Persona perx;   ERROR
        //perx=new Persona("Solo es persona...",15,'h');   ERROR
 
       // perx.cifraedad(77);
        //perx.exhibeinf(77);
 
        Alumno alx;
 
        alx=new Alumno(4,7777,"Es alumno...", 20,'?',120);
        alx.exhibealumno(120);
 
        System.out.println("\nPulse Enter para continuar...");
        System.in.read();
 
         // Para el alumno alx también existe acceso a elementos públicos,
         // a traves de misdatos
         //alx.misdatos.
 
 
         // procesa arreglo de objetos de una dimension
         Alumno grupo[];        // para arr de referencias a objetos
         grupo=new Alumno[20];      // crea 20 referencias a objetos
         int g,e;
         long matr;
         String nomb="";
         char s;
         int []claves;
         claves=new int[20];
 
         //creacion de objetos
         for(int i=0;i<grupo.length;i++)
         {
             //solicitar y/o generar informacion de alumnos
             g=(int)(Math.random()*5+1);  //genera aleatorio entre 1 y 5
             e=(int)(Math.random()*15+40);  // 1 ---> 55
             matr=(long)(Math.random()*10000000+666666667);
             claves[i]=(int)(Math.random()*500+100);
             if ((i%2)==0)    // si residuo =O es mujer, sino es hombre
             {
                 s='F';
                 nomb="Karla... "+(i+1);
 
             }
             else
             {
                 s='M';
                 nomb="Juan Perez..."+(i+1);
             }
 
             //crea cada objeto
             grupo[i]=new Alumno(g, matr, nomb, e, s,claves[i]);
         }
 
         System.out.println("\n\nCONTENIDO DEL GRUPO DE ALUMNOS...");
         for (int i=0;i<grupo.length;i++)
         {
             System.out.println("\nAlumno No."+(i+1));
             grupo[i].exhibealumno(claves[i]);
         }
 
         //Agregar instrucciones para Liberar recursos del arreglo de objetos
 
    }
 
}
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