Clase 6: Herencia en Java

				
					package clase6_herencia;

public class Persona {
    protected String nombre;
    protected int dni;

    public Persona(String unNombre, int unDni){
        this.nombre = unNombre;
        this.dni = unDni;
    }

    public void setNombre(String unNombre){
        this.nombre = unNombre;
    }

    public String getNombre(){
        return this.nombre;
    }

    public void setDni(int unDni){
        this.dni = unDni;
    }

    public int getDni(){
        return this.dni;
    }

    public String toString(){
        return "El nombre de la persona es " + this.nombre + " y su DNI es " + this.dni;
    }
}

				
			
				
					package clase6_herencia;

public class Alumno extends Persona {

    private String curso;

    public Alumno(String unNombre, int unDni){
        super(unNombre, unDni);
        this.curso = "Sin asignar";
    }

    public Alumno(String unNombre, int unDni, String unCurso){
        super(unNombre, unDni);
        this.curso = unCurso;
    }

    public void setCurso(String unCurso){
        this.curso = unCurso;
    }

    public String getCurso(){
        return this.curso;
    }

    public String toString(){
        if (this.curso.equals("Sin asignar")){
            return "El alumno " + this.nombre + " tiene DNI " + this.dni + " y no tiene curso asignado";
        } else {
            return "El alumno " + this.nombre + " tiene DNI " + this.dni + " y cursa " + this.curso;
        }
    }
}

				
			
				
					package clase6_herencia;

public class Profesor extends Persona {

    private String materia;

    public Profesor(){
        super("Sin asignar", 0);
        this.materia = "Sin asignar";
    }

    public Profesor(String unNombre, int unDni, String unaMateria){
        super(unNombre, unDni);
        this.materia = unaMateria;
    }

    public void setMateria(String unaMateria){
        this.materia = unaMateria;
    }

    public String getMateria(){
        return this.materia;
    }

    public String toString(){
        String ret ="";

        if (this.dni == 0){
            ret = "No hay informacion de este profesor";
        } else {
            ret = super.toString() +". Dicta " + this.materia;
        }

        return ret;
    }
}

				
			
				
					package clase6_herencia;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Colegio {

    public static void main(String args[]){

        List<Profesor> listaProfesores = new ArrayList<>();
        List<Alumno> listaAlumnos = new ArrayList<>();
        List<Persona> listaPersonas = new ArrayList<>();

        Persona profe1 = new Profesor();
        Persona profe2 = new Profesor("Juan Lopez", 123, "Quimica");

        listaPersonas.add(profe1);
        listaPersonas.add(profe2);

        Persona a1 = new Alumno("Ana Martinez", 123456);
        Persona a2 = new Alumno("Andres Gonzalez", 2222, "Informatica");

        listaPersonas.add(a1);
        listaPersonas.add(a2);

        if (listaPersonas.isEmpty() == false ) {
            System.out.println("****** LISTA PERSONAS ******");
            for (int i = 0; i < listaPersonas.size(); i++){
                System.out.println(listaPersonas.get(i));
            }
        } else {
            System.out.println("La lista se encuentra vacia...");
        }

        Profesor profeFisica = new Profesor("Analia Rowen", 9999, "Fisica");
        Profesor profeProgramacion = new Profesor("Joaquin Tun", 2323, "Programacion");
        listaProfesores.add(profeFisica);
        listaProfesores.add(profeProgramacion);

        System.out.println("**** PROFESORES *****");
        boolean encontrarNombre = false;

        for (int i = 0; i < listaProfesores.size(); i++) {
            Profesor profe = listaProfesores.get(i);
            System.out.println(profe.getNombre());
        }

        //foreach...
        for (Profesor profe : listaProfesores){
            if (profe.getNombre().equals("Analia Rowen")){
                System.out.println("El profesor/a se encuentra en la lista");
            }

            if (profe.getNombre().contains("Analia")){
                encontrarNombre = true;
            }
        }

        if (encontrarNombre == true){
            System.out.println("**** ENCONTRE EL NOMBRE BUSCADO **** ");
        } else {
            System.out.println("El nombre no esta en la lista!!");
        }

        Scanner input = new Scanner(System.in);

        System.out.println("Cuantos alumnos quiere ingresar?");
        int cantidad = input.nextInt();

        System.out.println("Ingrese " + cantidad +" alumnos");
        for (int i = 0 ; i < cantidad ; i++ ){
            System.out.println("Ingrese el nombre del alumno");
            String nombre = input.next();

            System.out.println("Ingrese el DNI del alumno");
            int dni = input.nextInt();

            System.out.println("Ingrese el curso del alumno");
            String curso = input.next();

            Alumno alumnoNuevo = new Alumno(nombre, dni, curso);
            listaAlumnos.add(alumnoNuevo);
            System.out.println("Se ha agregado a " + nombre + " al sistema");
        }

        for (Alumno estudiante : listaAlumnos){
            System.out.println(estudiante);
        }

    }
}