Filtro CPL Polarizado ventajas

Ejemplo de pseudoanidamiento de clases en Java

Ejemplo de pseudoanidamiento de clases en Java
Pseudoanidamiento de clases en Java
Clases anidadas en Java
Ejemplo de clases anidadas en Java

Les comparto un ejemplo de clases anidadas en Java
El pseudoanidamiento se lleva a cabo con clase Libro y Librería

package pseudo;

import java.io.IOException;
import java.util.Scanner;
import java.util.Vector;

//CLASE INDEPENDIENTE
class Libro {

    public String titulo;
    private String autor;
    private String editorial;
    private String genero;
    public int precio;

//Constructor
    public Libro(String t, String a, String edi, String gen, int prec) {
        titulo = t;
        autor = a;
        editorial = edi;
        genero = gen;
        precio = prec;

    }

    public void exhibeinfolbr() {

        System.out.println("\nInformación del libro: ");
        System.out.printf("\nTitulo : %s \t Autor : %s \t Editorial : %s \t Genero : %s Precio :%d", titulo, autor, editorial, genero, precio);

    }

    public String getTitulo() {
        return titulo;
    }

}

class Libreria {

    public String NombLib;
    public int secciones;
    private String telefono;
    public String tipopago;

//Seudoanidamiento
    public Libro datoslib = null; //Referenciando a objetos de otra clase
    public Vector<Libro> libros = new Vector<Libro>();

    public Libreria(String nl, int sec, String telef, String p, String t, String a, String edi, String gen, int prec) {
        NombLib = nl;
        secciones = sec;
        telefono = telef;
        tipopago = p;

        datoslib = new Libro(t, a, edi, gen, prec);//Creando objeto anidado
        libros.add(datoslib);

    }

    public void Exhibeinfolibreria() {
        System.out.println("\nDatos del la libreria...");
        System.out.printf("\n Nombre de Libreria : %s \t Secciones : %d \t Telefono : %s Tipo de pago : %s \n", NombLib, secciones, telefono, tipopago);
        System.out.println("Total de libros:" + libros.size() + "\n");
    }

    public String getNombreLib() {
        return NombLib;
    }

    public void agregarLibro(String t, String a, String edi, String gen, int prec) {
        datoslib = new Libro(t, a, edi, gen, prec);//Creando objeto anidado
        libros.add(datoslib);//se agrega el nuevo libro al arreglo
    }

    public void mostrarTitulosLibros() {
        System.out.println("\nLibros disponibles");
        for (int i = 0; i < libros.size(); i++) {
            System.out.println(i + ")" + libros.get(i).getTitulo());//mandamos a llamar get titulo de cada libro
        }
        System.out.println("");
    }

    public void buscaLibro(String titulo) {
        for (int i = 0; i < libros.size(); i++) {//recorremos el arreglo en busca del libro
            if (titulo.equals(libros.get(i).getTitulo())) {//si el titulo es igual al que se busca
                libros.get(i).exhibeinfolbr();//se muestra informacion del libro
            } else {
                System.out.println("No se encontro el libro\n");
            }
        }
    }

    public void eliminaLibro(int libroEliminar) {
        libros.remove(libroEliminar);//quitamos el libro del arreglo en el indice indicado    
    }

}

/**
 *
 * @author Higinio
 */
//CLASE PRINCIPAL
public class SeudoLibreria {

    Scanner teclado = new Scanner(System.in);

    public static void main(String[] args) throws IOException {
        Scanner cadenas = new Scanner(System.in);//para leer cadenas
        Scanner enteros = new Scanner(System.in);//para leer enteros
        Vector<Libreria> librerias = new Vector();//se crea arreglo de librerias

        Libreria libreria = null;//se inicializa en null

        //variables para la libreria y el libro
        String nl;
        int sec;
        String telef;
        String tpaago, t, a, edi, gen;
        int prec;

        //variable para control de nuevo libro y buscar libro
        int oplibro = 0;

        //variable para buscar el libro
        String buscarT = "";

        //variable para control de menu
        int opcion = 0;
        do {
            System.out.println("%%%%%%%%%% MENU %%%%%%%%%"
                    + "\n1) Agregar libreria"
                    + "\n2) Agregar libro"
                    + "\n3) Buscar Libro"
                    + "\n4) Eliminar libro"
                    + "\n5) Mostrar todos los titulos de libros"
                    + "\n6) Mostrar información de todas librerias"
                    + "\n7) SALIR\n>");

            opcion = enteros.nextInt();

            switch (opcion) {
                case 1://en caso de agregar libreria
                    System.out.println("Para agregar una Librería debe agregar al menos un libro");
                    System.out.print("Datos para la nueva LIBRERIA:\nNombre:");
                    nl = cadenas.nextLine();
                    System.out.print("Numero de secciones:");
                    sec = enteros.nextInt();
                    System.out.print("Telefono:");
                    telef = cadenas.nextLine();
                    System.out.print("Tipo de pago disponible:");//tarjeta, en efectivo, etc
                    tpaago = cadenas.nextLine();
                    System.out.print("Datos para el nuevo LIBRO:\nTitulo:");
                    t = cadenas.nextLine();
                    System.out.print("Autor:");
                    a = cadenas.nextLine();
                    System.out.print("Editorial:");
                    edi = cadenas.nextLine();
                    System.out.print("Genero:");
                    gen = cadenas.nextLine();
                    System.out.print("Precio:");
                    prec = enteros.nextInt();

                    libreria = new Libreria(nl, sec, telef, tpaago, t, a, edi, gen, prec);//se crea nueva libreria
                    librerias.add(libreria);//se agrega la nueva libreria al arreglo
                    System.out.println("Se agrego la nueva libreria y el nuevo  libro!");
                    break;
                case 2://en caso de agregar libro
                    if (!librerias.isEmpty()) {//si el arreglo tiene al menos una libreria
                        System.out.println("Librerias disponibles\n"
                                + "Seleccione la libreria en donde quiera agregar el nuevo libro>");
                        for (int i = 0; i < librerias.size(); i++) {
                            System.out.println(i + ") Libreria " + librerias.get(i).getNombreLib());
                        }
                        System.out.print(">");
                        oplibro = enteros.nextInt();
                        System.out.print("Datos para el nuevo LIBRO:\nTitulo:");
                        t = cadenas.nextLine();
                        System.out.print("Autor:");
                        a = cadenas.nextLine();
                        System.out.print("Editorial:");
                        edi = cadenas.nextLine();
                        System.out.print("Genero:");
                        gen = cadenas.nextLine();
                        System.out.print("Precio:");
                        prec = enteros.nextInt();

                        librerias.get(oplibro).agregarLibro(t, a, edi, gen, prec);//se agrega el libro en la libreria indicada
                        System.out.println("Se agrego el nuevo libro!");
                    } else {
                        System.out.println("Primero agregue una libreria! y un libro!");
                    }
                    break;
                case 3://En caso de buscar libro
                    if (!librerias.isEmpty()) {//si al menos hay una libreria en donde buscar
                        System.out.println("Librerias disponibles\n"
                                + "Seleccione la libreria en donde quiera buscar el libro\n"
                                + "El libro se buscará por titulo");
                        for (int i = 0; i < librerias.size(); i++) {
                            System.out.println(i + ") Libreria " + librerias.get(i).getNombreLib());
                        }
                        System.out.print(">");
                        oplibro = enteros.nextInt();
                        System.out.print("Ingrese el titulo a buscar>");
                        buscarT = cadenas.nextLine();
                        librerias.get(oplibro).buscaLibro(buscarT);//se manda a buscar en el arreglo de librerias indicado por el usuario y se pasa la cadena
                    } else {
                        System.out.println("Primero agregue una libreria! y un libro!");
                    }
                    break;
                case 4://en caso de eliminar libro
                    if (!librerias.isEmpty()) {//si al menos hay una libreria en donde buscar para eliminar
                        System.out.println("Librerias disponibles\n"
                                + "Seleccione la libreria en donde quiera eliminar el libro\n"
                                + "El libro se eliminara por indice");
                        for (int i = 0; i < librerias.size(); i++) {
                            System.out.println(i + ") Libreria " + librerias.get(i).getNombreLib());
                        }
                        System.out.print(">");
                        oplibro = enteros.nextInt();
                        librerias.get(oplibro).mostrarTitulosLibros();//mostramos los titulos de los libros
                        System.out.print("Ingrese el indice del libro:");
                        int op = enteros.nextInt();
                        librerias.get(oplibro).eliminaLibro(op);//se elimina el libro que indico el usuario
                    } else {
                        System.out.println("Primero agregue una libreria! y un libro!\n");
                    }
                    break;
                case 5://en caso de mostrar todos los libros
                    if (!librerias.isEmpty()) {//si al menos hay una libreria en donde buscar para mostrar
                        for (int i = 0; i < librerias.size(); i++) {
                            librerias.get(i).mostrarTitulosLibros();
                        }
                    } else {
                        System.out.println("Primero agregue una libreria! y un libro!\n");
                    }
                    break;
                case 6://en caso de mostrar todas las librerias
                    if (!librerias.isEmpty()) {//si al menos hay una libreria
                        for (int i = 0; i < librerias.size(); i++) {
                            librerias.get(i).Exhibeinfolibreria();
                        }
                    } else {
                        System.out.println("Primero agregue una libreria! y un libro!\n");
                    }
                    break;
                default://opcion por default
                    System.out.println("Seleccione una opción valida!!!\n");
                    break;
            }

        } while (opcion != 7);//mientras la opcion no sea 7, si es 7 entonces salimos

    }

}


El link de descarga del proyecto
Descargar

Cualquier duda1 dejen su comentario.

Comentarios