Clase ColorTelevision

package com.entertaiment;

public class ColorTelevision extends Television {

 public ColorTelevision(String proveedor) {
 super(proveedor);
 
 }
 public ColorTelevision(String proveedor, int color) {
 super(proveedor);
 colorTv=color;
 }
 private int colorTv;
 
 public ColorTelevision(String marca, int volumen, String proveedor) {
 super(marca, volumen, proveedor);
 // TODO Auto-generated constructor stub
 }

 public String getMarca(){
 return super.getMarca()+" TV!";
 }
 public String toString(){
 return super.toString()+" | "+colorTv;
 }

}

Clase equipo (Composición)

public class Equipo {
 private Persona jefe;
 private Persona coordinador;
 private Persona[] miembros = new Persona[3];

 public Equipo(String jefe, String coordinador, String emp1, String emp2, String emp3) {
 this.jefe = new Persona(jefe);
 this.coordinador = new Persona(coordinador);
 this.miembros[0] = new Persona(emp1);
 this.miembros[1] = new Persona(emp2);
 this.miembros[2] = new Persona(emp3);
 }

 /**
 * @return the jefe
 */
 public Persona getJefe() {
 return jefe;
 }

 /**
 * @param jefe
 * the jefe to set
 */
 public void setJefe(Persona jefe) {
 this.jefe = jefe;
 }

 public void setJefe(String jefe) {
 this.jefe = new Persona(jefe);
 }

 /**
 * @return the coordinador
 */
 public Persona getCoordinador() {
 return coordinador;
 }

 /**
 * @param coordinador
 * the coordinador to set
 */
 public void setCoordinador(Persona coordinador) {
 this.coordinador = coordinador;
 }

 /**
 * @return the miembros
 */
 public Persona[] getMiembros() {
 return miembros;
 }

 /**
 * @param miembros
 * the miembros to set
 */
 public void setMiembros(Persona[] miembros) {
 this.miembros = miembros;
 }

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

 if (jefe != null) {
 res += "Jefe: "+jefe.toString()+ "\n";
 }
 if (coordinador != null) {
 res += "Coordinador:"+ coordinador.toString()+ "\n";
 }
 for (Persona m : miembros) {
 if (m != null) {
 res += m.toString()+ " | ";
 }
 }
 return res;

 }
}

Clase Television v 4.0

public class Television {
 private String marca = "";
 private int volumen = 6;
 private String proveedor;
 private String modelo;
 /**
 * @return the modelo
 */
 public String getModelo() {
 return modelo;
 }

 /**
 * @param modelo the modelo to set
 */
 public void setModelo(String modelo) {
 if (modelo.startsWith("TV") || modelo.indexOf("LG")>=0 || modelo.matches("[A-Za-z]{4}[0-9]{3}")){
 this.modelo = modelo; 
 }
 
 }

 public static final int MIN_VOLUME = 0;
 public static final int MAX_VOLUME = 100;
 public static final String[] VALID_BRANDS = { "Sony", "Zenith", "Hitachi", "RCA" };

 public Television(String marca, int volumen, String proveedor) {
 setMarca(marca);
 setVolumen(volumen);
 setProveedor(proveedor);
 }

 public Television(String proveedor) {

 this("LG", 6, proveedor);
 }

 /**
 * @return the proveedor
 */
 public String getProveedor() {
 return proveedor;
 }

 /**
 * @param proveedor
 * the proveedor to set
 */
 private void setProveedor(String proveedor) {
 this.proveedor = proveedor;
 }

 /**
 * @return the marca
 */
 public String getMarca() {
 return marca;
 }

 /**
 * @param marca
 * the marca to set
 */
 public void setMarca(String marca) {
 for (String m : VALID_BRANDS) {
 if (marca.equals(m)) {
 this.marca = marca;
 return;
 }
 }

 }

 /**
 * @return the volumen
 */
 public int getVolumen() {
 return volumen;
 }

 /**
 * @param volumen
 * the volumen to set
 */
 public void setVolumen(int volumen) {
 volumen = Math.min(volumen, Television.MAX_VOLUME);
 volumen = Math.max(volumen, Television.MIN_VOLUME);
 this.volumen = volumen;
 }
 public String toString(){
 return marca+"|"+modelo+"|"+volumen+"|"+proveedor;
 }

}

Test Referencias y debug

testref

public class TestRefTest {

 public static void main(String[] args) {
 TestRef c1=new TestRef();
 TestRef c2=new TestRef();
 c1.numero=3;
 c1.texto="c1";
 c2.numero=30;
 c2.texto="c2";
 
 System.out.println(c1.toString());
 System.out.println(c2.toString());
 TestRef c3=c1;
 System.out.println(c3.toString());
 c3.texto="c3";
 System.out.println(c1.toString());
 System.out.println(c1==c3);
 c3.cambiar2(c1);
 System.out.println(c1.toString());
 c3.texto="c2";
 System.out.println(c1==c3);
 //Destruir objetos
 c1=null;
 c3=null;
 for(int i=0;i<10;i++){
 System.out.println(i);
 }
 
 }

}

La clase:

public class TestRef {
 public int numero;
 public String texto;
 public String toString(){
 return numero+"|"+texto;
 }
 public void cambiar(TestRef c){
 c=null;
 }
 public void cambiar2(TestRef c){
 c.texto="CAMBIADO";
 }
}

Television con métodos estáticos

public class Television {
 private String marca="LG";
 private int volumen=6;
 private String proveedor;
 public static final int MIN_VOLUME = 0;
 public static final int MAX_VOLUME = 100;
 
 public Television(String marca, int volumen, String proveedor){
 setMarca(marca);
 setVolumen(volumen);
 setProveedor(proveedor);
 }
 public Television(String proveedor){
 this("LG",6, proveedor);
 }
 
 /**
 * @return the proveedor
 */
 public String getProveedor() {
 return proveedor;
 }
 /**
 * @param proveedor the proveedor to set
 */
 private void setProveedor(String proveedor) {
 this.proveedor = proveedor;
 }
 /**
 * @return the marca
 */
 public String getMarca() {
 return marca;
 }
 

 /**
 * @param marca the marca to set
 */
 public void setMarca(String marca) {
 this.marca = marca;
 }
 /**
 * @return the volumen
 */
 public int getVolumen() {
 return volumen;
 }
 /**
 * @param volumen the volumen to set
 */
 public void setVolumen(int volumen) {
 volumen=Math.min(volumen, Television.MAX_VOLUME);
 volumen=Math.max(volumen, Television.MIN_VOLUME);
 this.volumen = volumen;
 }
 

}

Ejemplo de uso:

public class TelevisionTest {
 public static void main(String[] args) {
 Television tv1=new Television("ww",4,"Miro");
 tv1.setVolumen(-5);
 tv1.setMarca("Sony");
 
 System.out.println(tv1.getVolumen());
 System.out.println(tv1.getMarca());
 Television tv2=new Television("Mediamarkt");
 tv2.setVolumen(1335);
 System.out.println(tv2.getVolumen());
 System.out.println(tv2 .getMarca());
 }
}

Clase personas con constructores

public class Persona {
 private String nombre;
 private int edad;
 
 public Persona(String nombre){
 this(nombre,18);
 }
 public Persona(String nombre,int edad){
 setNombre(nombre);
 setEdad(edad);
 }
 /**
 * @return the nombre
 */
 public String getNombre() {
 return nombre;
 }
 /**
 * Ponemos el nombre que le pasamos
 * @param nombre que tiene que ser, por supuesto, una cadena
 */
 public void setNombre(String nombre) {
 if (nombre.length()<2){
 nombre="Desconocido";
 }
 
 this.nombre = nombre;
 }
 /**
 * @return the edad
 */
 public int getEdad() {
 return edad;
 }
 /**
 * @param edad the edad to set
 */
 public void setEdad(int edad) {
 
 if(edad<18){
 edad=18;
 }
 
 this.edad = edad;
 }
 public String muestra(){
 return nombre+" tiene "+edad+" años";
 }
 public String muestra(String tipo){
 if (tipo.equals("Edad")){
 return muestra(1);
 }
 else{
 return muestra(0);
 }
 }
 public String muestra(int tipo){
 if (tipo==0){
 return "Se llama "+nombre;
 }
 else{
 return "Tiene "+edad+" años";
 }
 }
 public String toString(){
 return "Nombre: "+nombre+" | Edad:"+edad;
 }
}
 



Television con private

public class Television {
 private String marca="LG";
 private int volumen=6;
 /**
 * @return the marca
 */
 public String getMarca() {
 return marca;
 }
 /**
 * @param marca the marca to set
 */
 public void setMarca(String marca) {
 this.marca = marca;
 }
 /**
 * @return the volumen
 */
 public int getVolumen() {
 return volumen;
 }
 /**
 * @param volumen the volumen to set
 */
 public void setVolumen(int volumen) {
 this.volumen = volumen;
 }
 

}
public class TelevisionTest {
	public static void main(String[] args) {
	Television tv1=new Television();
	tv1.setVolumen(5);
	tv1.setMarca("Sony");
	System.out.println(tv1.getVolumen());
	System.out.println(tv1.getMarca());
	Television tv2=new Television();
	tv2.setVolumen(15);
	System.out.println(tv2.getVolumen());
	System.out.println(tv2 .getMarca());
	}
}