Television[] tls={new Television("Miro"), new ColorTelevision("MediaMarkt",5)}; for(Television t:tls){ System.out.println(t); }
Categoría: Sin categoría
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; } }
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"; } }
Examen CMS y CakePHP
Examen recuperación PHP acceso a datos
Autenticación cakePHP 5
Ponemos las siguientes funciones en el UsuariosController:
public function login() { if ($this->request->is('post')) { $passwordHasher = new BlowfishPasswordHasher(); if ($this->Auth->login()) { return $this->redirect($this->Auth->redirectUrl()); } $this->Session->setFlash(__('Invalid username or password, try again')); } } public function logout() { return $this->redirect($this->Auth->logout()); }
Model Callbacks
Son los siguientes:
- beforeFind()
- afterFind()
- beforeValidate()
- afterValidate()
- beforeSave()
- afterSave()
- beforeDelete()
- afterDelete()
Y pueden verse aquí:
Controller callbacks
Retrollamadas (“Callbacks”)
Los controladores de CakePHP vienen con retrollamas (callbacks) empotradas que puedes usar para insertar lógica justo antes o después de que las acciones del controlador sean llevadas a cabo.
beforeFilter()
Esta función se ejecuta antes de toda acción en el controlador. Es un lugar práctico para comprobar una sesión activa o inspeccionar los permisos del usuario.
beforeRender()
Llamada tras la lógica de acción del controlador, pero antes de que la vista es renderizada. Este callback no es utilizado a menudo, pero puedes necesitarlo si estás llamando a render() manualmente antes del final de una acción dada.
afterFilter()
Llamada tras toda acción del controlador.
afterRender()
Llamada tras haber sido renderizada una acción.