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;
}
}
Mes: octubre 2016
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());
}
}
Tutoriales y ejercicios Java
Ejemplo clase persona
public class Persona {
public String nombre;
public int 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) {
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 toString(){
return "Nombre: "+nombre+" | Edad:"+edad;
}
}