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; } }
Validación marca con array
public void setMarca(String marca) { for (String m : VALID_BRANDS) { if (marca.equals(m)) { this.marca = marca; return; } } }
String vs StringBuffer vs StringBuilder
Cambio validación marca
public void setMarca(String marca) { if (marca.equals("Sony") || marca.equals("Zenith") || marca.equals("Hitachi") || marca.equals("RCA")){ this.marca = marca; } }
Test Referencias y debug
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()); } }