Ejemplo clases anidadas

package com.trifulcas.oop;

public class Asignatura {
	private String nombre;
	private int nota;
	public Asignatura(String nombre, int nota) {
		super();
		this.nombre = nombre;
		this.nota = nota;
	}
	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}
	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	/**
	 * @return the nota
	 */
	public int getNota() {
		return nota;
	}
	/**
	 * @param nota the nota to set
	 */
	public void setNota(int nota) {
		this.nota = nota;
	}
	@Override
	public String toString() {
		return "Asignatura [nombre=" + nombre + ", nota=" + nota + "]";
	}
	
}

package com.trifulcas.oop;

import java.util.ArrayList;

// La sintaxis de una clase es muy sencilla 'class'
public class Alumno {
	private String nombre;
	private String email;
	ArrayList<Asignatura> asignaturas;
	Alumno(String nombre){
		this.nombre=nombre;
		asignaturas=new ArrayList<>();
	}
	public void addAsignatura(Asignatura asignatura) {
		asignaturas.add(asignatura);
	}
	public void removeAsignatura(String nombre) {
		for (Asignatura asignatura:asignaturas) {
			if (asignatura.getNombre().equals(nombre)) {
				asignaturas.remove(asignatura);
			}
		}
	}
	public Asignatura mejorNota() {
		if (asignaturas.size()==0) {
			return null;
		}
		Asignatura mejor=asignaturas.get(0);
		for (Asignatura asignatura:asignaturas) {
			if (asignatura.getNota()>mejor.getNota()) {
				mejor=asignatura;
			}
		}
		return mejor;
	}
	/**
	 * @return the asignaturas
	 */
	public ArrayList<Asignatura> getAsignaturas() {
		return asignaturas;
	}
	/**
	 * @param asignaturas the asignaturas to set
	 */
	public void setAsignaturas(ArrayList<Asignatura> asignaturas) {
		this.asignaturas = asignaturas;
	}
	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}
	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	/**
	 * @return the email
	 */
	public String getEmail() {
		return email;
	}
	/**
	 * @param email the email to set
	 */
	public void setEmail(String email) {
		this.email = email;
	}
	@Override
	public String toString() {
		return "Alumno [nombre=" + nombre + ", email=" + email+",asignaturas="+asignaturas + "]";
	}
	
	
}

package com.trifulcas.oop;

import java.util.ArrayList;

public class Aula {
	private String nombre;
	private ArrayList<Alumno> alumnos;
	public Aula(String nombre) {
		super();
		this.nombre = nombre;
		alumnos=new ArrayList<>();
	}
	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}
	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	/**
	 * @return the alumnos
	 */
	public ArrayList<Alumno> getAlumnos() {
		return alumnos;
	}
	/**
	 * @param alumnos the alumnos to set
	 */
	public void setAlumnos(ArrayList<Alumno> alumnos) {
		this.alumnos = alumnos;
	}
	@Override
	public String toString() {
		return "Aula [nombre=" + nombre + ", alumnos=" + alumnos + "]";
	}
	
}

Asignatura js=new Asignatura("Javascript",5);
		Asignatura c=new Asignatura("C#",7);
		Asignatura java=new Asignatura("Java",8);
		Alumno ana=new Alumno("Ana");
		ana.addAsignatura(java);
		ana.addAsignatura(js);
		ana.addAsignatura(c);
		System.out.println(ana);
		System.out.println(ana.mejorNota());
		
		Aula thecorner=new Aula("TheCorner");
		thecorner.getAlumnos().add(ana);
		System.out.println(thecorner);

Tarea: crear una alumna llamada eva que tenga las siguientes asignaturas: java,7 : React,8 : HTML : 6 y añadirlo a thecorner

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos