martes, 13 de mayo de 2014

en sus empieces, Php no era un dialecto de programación Orientado a Objetos o admisiblemente Oop que son sus siglas en sajón, con el anticipo de las tecnologías y con las comunicaciones traducciones Php fue agregando varias funcionalidades propias de la metodología Oop.

dividiremos este tutorial en las subsiguientes unidades, que son las que definen si un idioma es orientado a propósitos o no:

· Clases y Objetos

· Métodos y atributos

· Herencia de clases

· Constructores y destructores

· Encapsulamiento

clases y Objetos:

a diferencia de la programación ancestral, la programación guiada a propósitos se almohadilla en disciplinas y objetos.

una familia contiene plumazos o fincas y razonamientos que son las jerarquías. Esto es en extremo importante tenerlo claro. Método es equivalente de Función. Atributo es igual de Propiedad.

la Clase sería poco así como un modelo y a partir de ese modelo se crean objetos.

en Php definimos una calaña de la subsiguiente manera:

class Cliente   {   // Aquí va el edicto de nuestra clase   }

mediante las líneas de estatuto de por encima se define la raza “cliente” la cual utilizaremos para nuestro tutorial.

si admisiblemente este tutorial no está enfocado a puntualizar los ensimismamientos de la Programación Orientada a Objetos, es devoto blanquear que el prestigio de la disciplina no debe ser en plural, por este lugar nombramos “cliente” en punto de “clientes”.

métodos y Atributos

los razonamientos y los rasgos se definen “codifican” en el interior de la categoría. El plumazo de una calaña es una propiedad.

atributos:

el especie y la prolijidad en programación son asaz importantes. Por lo tanto, comenzaremos averiguar nuestra calidad de “arriba” hacia “abajo”. Lo original que se define en una categoría son los atributos.

por ejemplo: en nuestra subordinación de arquetipo “cliente” un plumazo seria “nombre”, “apellido”, “edad” etc.

si nuestro patrón afuera una talante “automovil”, los plumazos serian: “rueda”,”marca”,”modelo” etc. ¿más claro ahora?

muy acertadamente, sigamos delante definiendo los plumazos de nuestra ralea, para lo cual utilizaremos la voz escusada “private” o si trabajas con traducciones de Php inferiores a 5.0 deberás emplear “var”, por lo tango nuestra ralea se ribera de la subsiguiente manera:

class Cliente   {   // estos arrojos de debajo son los rasgos o fincas de nuestra clase   private $mnombre;   private $mapellido;   private $mdireccion;   private $mpais;   private $mtelefono;   private $medad;   private $mfechanacimiento;   }

en otras fidelidades, los atributos son aparentes o asequibles adentro la propia clase.

si seguimos los estándares de Programación Orientada a Objetos debemos concretar los carácteres como escasos. Es decir, que sean asequibles sólo desde en el interior de la talante misma, por lo tango utilizamos “private”. En otras palabras, ninguna otra aula y en ninguna otra parte de precepto se podrá alterar un trazo perteneciente a

 

métodos o Funciones:

un razonamiento es lo mismo que una gala, es una parcialidad de precepto adentro de la enseñanza que realiza una faena y puede expulsar un valor o no.

los auténticos procedimientos que definiremos en nuestra categoría serán los que asignan ánimos a nuestros carácteres. En este tanto siempre hay diferencia en la junta de programadores. La discusión está en si es mejor inventar un razonamiento para cada rasgo o perfectamente imaginar plumazos públicos y de esa forma evitamos la concreción de procedimientos unipersonales. Esto puede sonar ambiguo, lo veremos con un ejemplo:

para que puedas disfrutar la diferencia es necesitado hallar original la guisa que insume más estatuto para que luego las puedas coincidir. Entonces, volviendo a los usos, definiremos dos que se encargaran de entregarse y volver un esfuerzo a la heredad nombre.

métodos que controlan nuestros atributos.

agregamos el subsiguiente estatuto rápidamente posteriormente de nuestras propiedades.

function Setnombre($val)   {   $this->mnombre = $val;   }   function Getnombre()   {   return $this->mnombre ;   }

la condición “cliente” con los estilos quedaría de la subsiguiente manera:

class Cliente   {   // esto de debajo son los trazos o heredades de nuestra clase   private $mnombre;   private $mapellido;   private $mdireccion;   private $mpais;   private $mtelefono;   private $medad;   private $mfechanacimiento;   function Setnombre($val) //método que asigna una coraje a la finca nombre   {   $this->mnombre = $val;   }   function Getnombre() //método que retorna el coraje ofrecido a la finca nombre   {   return $this->mnombre ;   }   }

el razonamiento “setnombre” recibe un grado por parámetro y a través de la explotación de “$this” lo asignamos. Recuerda, “$this” se usa solo internamente de las clases.

el uso “getnombre” funciona de manera inversa y retorna el desafío de la finca, utilizamos “return” para devolverlo.

el ejemplo de por encima es el más recomendado, sin embargo requiere más líneas de edicto, lo que se traduce en más tiempo.

recién inmediatamente estaríamos en calidades de verificar evidencias con nuestra jaez. Luego, veremos la segunda forma de aplicar grados a los rasgos de la clase.

probando nuestra clase:

para testificar lo que hemos caido aprendiendo aun hoy créate una página php citación prueba.php y agrega el precepto siguiente:

require("classes/cliente.php");   //creamos objetivo para nuestro primer cliente   $auxcliente = new Cliente();   //asignamos un renombre a nuestro objetivo Cliente   $auxcliente->setnombre("ariel") ;   //creamos propósito para nuestro segundo cliente   $auxcliente2 = new Cliente();   //asignamos un prestigio a nuestro segundo efecto Cliente   $auxcliente2->setnombre("pedro") ;   //recuperamos el prestigio que asignamos por medio de el metodo Getnombre   echo "el renombre del primer cliente es: ".$auxcliente->getnombre()."<br>";   echo "el prestigio del segundo cliente es: ".$auxcliente2->getnombre()."<br>";

analizando un poco el estatuto, la primera línea lo que hace es encerrar el anaquel que tiene la clase “cliente”, una oportunidad incluida en “prueba.php” ahora podemos utilizarla.

paso 1 para emplear la clase:

lo exterior que hay que labrar para disfrutar la ralea es “crear una instancia” de la misma. Lo que nos da un efecto o individuo de esa cátedra, por ende: “$auxcliente = new Cliente();” nos crea un fin pulsado ““$auxcliente” de la colección “cliente”. Recuerden que es un fin y esta “vacío” en dialecto cotidiano.  Es un molde.

usando un territorio más bienintencionado, el cliente no tiene renombre, patronímico, teléfono etc por el momento.

paso 2,  asignar corajes a los atributos:

al albergar ahora nuestro efecto podemos asignarle un renombre al cliente, lo hacemos utilizando el razonamiento equivalente de la subsiguiente manera:

//asignamos un prestigio a nuestro objetivo Cliente   $auxcliente->setnombre("ariel") ;

ya tenemos un cliente, hoy creamos otro de la subsiguiente manera.

//creamos propósito para nuestro segundo cliente   $auxcliente2 = new Cliente();   //asignamos un renombre a nuestro segundo fin Cliente   $auxcliente2->setnombre("pedro") ;

la apariencia en al creamos nuestro segundo cliente es semejante al anterior, solo que hoy día utilizaremos un nuevo fin “$auxcliente2”. Recuerda, siempre que quieras alcanzar un nuevo objetivo tienes que exprimir “new Objeto()” en nuestro prototipo “new Cliente()”.

paso 3,  verificar funcionamiento de la clase:

una sucesión ofrendado el renombre a entreambos clientes comprobamos que efectivamente cada cliente tenga su prestigio y que cada cliente es un efecto distinto.

lo verificamos de la subsiguiente forma:

//recuperamos el renombre que asignamos a través de el sistema Getnombre   echo "el prestigio del primer cliente es: ".$auxcliente->getnombre()."<br>";   echo "el renombre del segundo cliente es: ".$auxcliente2->getnombre()."<br>";

el refluido será:

//el prestigio del primer cliente es: Ariel //el renombre del segundo cliente es: Pedro

retomando el clavo relacionado a si debemos esgrimir sistemas para controlar las heredades de nuestra ralea o no, debemos pleitear algunas variaciones en nuestra clase.

como habrás intentado la fase de entregarse un coste a la heredad “mnombre” fue utilizando el estilo “setnombre” y para restablecerse el coraje utilizamos el razonamiento “getnombre” que no son otra cosas que categorías públicas establecidas internamente de la clase.

existe una guisa no siempre enchufista de controlar los plumazos sin explotar procedimientos, esto es definiendo las fincas como públicas, para lo cual podemos usufructuar “var” o “public” en sucesión de “private”.

la delimitación de las haciendas quedaría así:

class Cliente   {   // esto de debajo son los plumazos o fincas de nuestra clase   public $mnombre;   public $mapellido;   public $mdireccion;   public $mpais;   public $mtelefono;   public $medad;   public $mfechanacimiento;   }

como habrás podido escrutar nuestra ciencia ahora no tiene los razonamientos “set” y “get” que se encargaban de las propiedades.

¿cómo controlamos las fincas sin los métodos?

dado que las haciendas se definieron como públicas es factible lograr a ellas desde cualquier parte del reglamento. Es decir, desde en el interior de la ralea por medio de la conveniencia de “$this” y desde afuera.

probaremos nuestro segundo exponente con las subsiguientes líneas de código:

require("classes2/cliente.php");   //creamos propósito para nuestro primer cliente   $auxcliente = new Cliente();   //asignamos un prestigio a nuestro fin Cliente   $auxcliente->mnombre = "ariel" ;   //creamos propósito para nuestro segundo cliente   $auxcliente2 = new Cliente();   //asignamos un renombre a nuestro segundo fin Cliente   $auxcliente2->mnombre = "pedro" ;   //recuperamos el prestigio que asignamos a través de el metodo Getnombre   echo "el prestigio del primer cliente es: ".$auxcliente->mnombre."<br>";   echo "el prestigio del segundo cliente es: ".$auxcliente2->mnombre."<br>";

dado que las haciendas son públicas asignamos un prestigio de la misma guisa que asignamos un esfuerzo a una variable común en Php.

$auxcliente->mnombre = "ariel" ;

lo mismo para desempolvar el coraje de la finca, accedemos bruscamente así “$auxcliente->mnombre”

todo enormemente perfectamente. Ahora, ¿cuál es la mejor forma?

esto es bastante concerniente y depende de la aplicación que estés desarrollando. Lo que si es cierto es que si utilizas el razonamiento más sencillo te estarías saliendo de los estándares de desarrollo de aplicaciones encaminadas a propósitos. Existen misiones que son altamente rígidas en estas metodologías y exigen a sus programadores la insistencia de estas menstruaciones para que el precepto manantial final sea uniforme.

este tutorial pretende ser lo más laboral plausible, por ende mostramos entreambas guisas. Depende del programador cual usar.

¿qué otro usufructo tienen los Métodos?

los razonamientos no son solo útiles para acelerar las heredades. De hecho esta es una de las ocupaciones fuera de importante que realizan los métodos.

podemos aprovechar un razonamiento para apreciar la permanencia de la cualquiera basada en la época de nacimiento.

agregamos lo subsiguiente a nuestra clase:

function Setfechanacimiento($val) //método que asigna una mérito a la finca Fecha de Nacimiento   {   $this->mfechanacimiento = $val;   }   function Getedad() //método que retorna el grado atribuido a la heredad edad   {   return $this->medad ;   }   function Calcularedad()  	{ 		$fecha_nacimiento = $this->mfechanacimiento;   		list($y, $m, $d) = explode("-", $fecha_nacimiento); 		$y_dif = date("y") - $y; 		$m_dif = date("m") - $m; 		$d_dif = date("d") - $d; 		if ((($d_dif < 0) && ($m_dif == 0)) || ($m_dif < 0)) 			$y_dif--;   		$this->medad = $y_dif;    		return $y_dif; 	}

la diligencia “calcularedad” tiene el labor de darnos la vida de un cliente descansado en la data de brote. Es sin vacilación un claro modelo de cómo podemos usufructuar los métodos.

vamos a catar el uso agregando el subsiguiente estatuto en una página Php en blanco:

require("classes/cliente.php");   //creamos objetivo para nuestro primer cliente   $auxcliente = new Cliente();   //asignamos un renombre a nuestro efecto Cliente   $auxcliente->setnombre("ariel") ;   //asignamos época de nacimiento   $auxcliente->setfechanacimiento("1979-11-19") ;   //calculamos edad   $auxcliente->calcularedad() ;   //recuperamos el prestigio que asignamos a través de el metodo Getnombre   echo "el Cliente: ".$auxcliente->getnombre().", tiene ".$auxcliente->getedad()." años&lt;br&gt;";

con esto último terminamos el capítulo relacionado a Métodos y Propiedades.

herencia de Clases

sin vacilación es una de las características más avanzadas en los estilos encauzados a objetivos, y Php enumeración con esta característica.

cuando hablamos de caudal nos referimos a estilos y fincas que se “importan” de otra calidad. Como la fidelidad lo dice, heredamos galas que ahora están hechas.

la cesión nos sirve para ahorrarnos compromiso y reutilizar cosas que ahora están hechas.

por ideal: si en nuestra filial tenemos clientes, abaceros y empleados. Todos tienen cosas en común, todos tienen prestigio, patronímicos, teléfonos, pueblo etc.

llevándolo al plano analítico, todos son cualquieras. Por lo tanto, podemos delimitar una subordinación “persona”, la cual contenga todos los plumazos y razonamientos comunes al cliente, abacero y empleado.

podemos aseverar que estas naturalezas heredaran de Persona los plumazos en común.

para empezar definimos la calidad Persona:

class Persona   {   // esto de debajo son los rasgos o haciendas de nuestra clase   private $mnombre;   private $mapellido;   private $mdireccion;   private $mpais;   private $mtelefono;   private $medad;   private $mfechanacimiento;   function Setnombre($val) //método que asigna una coste a la heredad nombre   {   $this->mnombre = $val;   }   function Getnombre() //método que retorna el arrojo atribuido a la finca nombre   {   return $this->mnombre ;   }   }

y nuestra familia “cliente” quedara así:

require("persona.php");   class Cliente extends Persona   {   }

a primera perspectiva parece vacía, sin procedimientos tampoco heredades. Pero, si  prestamos prudencia, vemos la fidelidad usada para heredar “extends” y a sarta “persona”. Esto, es decir quiere expresar que la ley Cliente hereda todas las haciendas y razonamientos de Persona.

para probar la renta de la donación utilizaremos otra clase reprensión “”empleado”.

require("persona.php");   class Empleado extends Persona   {   }

al heredar nos evitamos tener que detallar los razonamientos y heredades para cada una de las jaeces aparte, evitando así el fuero repetido y aprovechamos al máximo la reutilización, uno de los comienzos cardinales de esta metodología.

para comprobar que Cliente y Empleado heredaron utiliza los canones de la comida anterior.

constructores y Destructores

siempre que ejecutamos “$auxcliente = new Cliente();” decimos que construimos el efecto Cliente. Se puede suceder el trance que podríamos respetar obrar determinadas batallas en el mismo tiempo de génesis o institución del propósito. Para esto usamos el edificador, que no es más que un clase que se ejecuta automáticamente.

en Php5 el edificador se define con “__construct” en lecturas anteriores el edificador se define con una diligencia con el mismo renombre de la cátedra. Por ejemplo en nuestra categoría “cliente” el edificador se definiría de la subsiguiente manera:

//constructor de la clase   function __construct($val)   {   $this->mfechanacimiento = $val;   $this->calcularedad();   }

en el estereotipo utilizamos el edificador para peritar la vida automáticamente luego de instanciar el objeto.

//creamos fin para nuestro primer cliente   $auxcliente = new Cliente("1979-11-19");   echo "edad del cliente:”.$auxcliente->getedad()." años&lt;br&gt;";

el exterminador de una condición se utiliza para efectuar transacciones cuando se destruye el objetivo, en otras palabras cuando se elimina de la certificada. Esta funcionalidad es en extremo explotada en métodos de chat. Donde necesitamos recordar la almohadilla de apuntes siquiera adecuadamente el turista cierra la página.

encapsulamiento

es la superficie de los efectos de poseer otros propósitos interiormente de sí mismo. Un buen ejemplo podría ser que una ente tiene clientes. Por lo tanto, un fin cliente podría estar internamente del efecto empresa.

creamos nuestra categoría “empresa”

class Empresa   {   private $mcliente;   function Agregarcliente($uncliente) //método que agrega el cliente   {   $this->mcliente = $uncliente;   }   function Getcliente() //método que retorna el cliente   {   return $this->mcliente ;   }   }

en un anaquel de investigación agregamos el subsiguiente código:

require("classes/cliente.php");   require("classes/empresa.php");   $auxempresa = new Empresa();   //creamos fin para nuestro primer cliente   $auxcliente = new Cliente();   //asignamos un prestigio a nuestro fin Cliente   $auxcliente->setnombre("ariel") ;   //asignamos época de nacimiento   $auxcliente->setfechanacimiento("1979-11-19") ;   //calculamos edad   $auxcliente->calcularedad() ;   //agregamos el cliente en el interior de la empresa   $auxempresa->agregarcliente($auxcliente) ;   //recuperamos el renombre que asignamos por medio de el metodo Getnombre   echo "el Cliente: ".$auxempresa->getcliente()->getnombre().", tiene ".$auxempresa->getcliente()->getedad()." años&lt;br&gt;";

el razonamiento “agregarcliente” introduce el objetivo Cliente internamente del fin Empresa y “getcliente” nos lo devuelve.

por lo tanto lo siguiente:

$auxempresa->getcliente()->getnombre()

sería poco así en pseudocódigo: Empresa->cliente->nombre.

saludos para todos y espero que el tutorial les sea útil.

]]>



Este post se a creado automaticamente con autoblogger imperium descargalo Gratuito

0 comentarios:

Publicar un comentario

Famosos

#empleo (350) 10 (13) 500 millones (6) Academia (6) acuerdo empresarial (13) aeroespacial (9) aeronáutica (23) alestis-aeroespace (1) allplan (6) Alquiler de aulas (4) Análisis de elementos finitos (11) Android (8) animación (1) animaciones (14) arquitectos técnicos (7) arquitectura (35) Artículos (33) ASP.NET 2.0 (14) audiencia nacional (7) aulas tecnológicas (4) aumento de la rentabilidad (17) AutoCAD (8) automatizar pago (3) automoción (6) Avanzado (44) bases de datos (32) bbodb (1) becarios (1) betabeers (3) BIM (6) bitacoras (5) Blender (1) blog (3) Blogs (48) Bolsa de empleo (15) Bolsa de trabajo (9) Bono regalo (9) buffer (6) buongiorno (7) burlington english (7) C# (13) c++ (14) cableados estructurados (5) Cádiz (5) calzado (7) cambiar status (3) carnet de carretillero (342) carnet puente-grúa (342) carrito (4) Catia (7) CATIA V5 (16) CE3x (11) celebración (6) CentOS (39) CERMA (11) Certificación energética (2) Certificación Energética de Edificios (5) Certificación Energética de Edificios grandes y del sector terciario (7) Certificación Energética de Edificios Residenciales (6) cetec andalucía (31) clase (6) Clase gratuita sevilla (1) Clases particulares (5) CMS (28) colaboración empresarial (6) colaboraciones (6) Community Manager (4) complicados (14) Composites (1) compra online (4) configurar pc (11) consejos (10) CONVOCUM (6) córdoba (32) correo (15) css (5) curl (10) curso (11) Cursos (62) cursos técnicos (5) Decoración (1) deidos (2) delineantes (9) denuncia (7) desarrolladores (6) Desarrollo de Aplicaciones (7) Desarrollo de Aplicaciones con tecnología Android (2) desarrollo web (6) descuento (5) día de andalucía (5) dimensiones (7) Diseño (8) diseño 3D (12) Diseño de Interiores (11) Diseño de materiales compuestos (1) Diseño de Mecánica Industrial (7) Diseño Gráfico (8) Diseño Industrial (24) Diseño web (40) diseño y aplicaciones (7) diseño y programación (11) dispositivos móviles (7) dominio (2) Drupal (28) Ebooks (14) ecommerce (3) El look de la semana (2) email (5) empleo (5) Emprendedores (65) emprender (1) Emprendimiento verde (5) empresa (20) english for engineer (3) estafa (7) etiquetas básicas (2) Eventos (42) éxito (1) facebook (13) feedly (6) ferroviario (5) fibra óptica (14) fopen (7) formacion (6) Formación (418) formación para empresas (23) Formación Sevilla (18) fundamentos (5) Fundamentos de Fibra Óptica (5) gamers (1) Ganador sorteo (5) gdgdevfest (2) Gestión de stock y almacén (342) gmail (14) google (14) gratuito (5) Hibernate (14) historias de facebook (6) hotlinking (1) htaccess (1) html (5) ifttt (6) Industrial (5) informática (9) ingenieria (9) Ingeniería (19) Ingenieria de Software (14) ingeniería en informática (14) ingenieros (14) Ingenieros y Cádiz (4) Ingenieros y delineantes (19) Ingles para ingenieros (7) inicial (56) instalación (9) instalador (10) internet (42) Iphone (14) ipn (3) itc (5) J2EE (14) Java (29) Java Script (4) javascript (17) jefe de proyecto (5) jerez de la frontera (11) Joomla 1.5.x (7) jQuery (4) Juegos (19) lean manufacuring (20) Lenguajes (28) lenguajes de programacion (27) Libros (14) macosx (2) madrid (5) maltor (4) marketing online (28) Máster Catia V.5 (7) mejora de la producción (17) modelo (7) motivacion (10) móvil (1) MySql (38) Negocios por Internet (4) niños (14) oferta (5) Oferta de empleo (5) oferta de empleo. (1) Off-Topic (11) ofimática (5) online (7) Otros temas (39) outlook (1) pago (3) pagos (3) pagos recurrentes (4) Pascal (14) paypal (10) PCI (6) perfil (3) perseverancia (1) php (103) PHPClasses (6) PLSQL (13) plugins (14) posicionamiento (5) PostgreSQL (14) prácticas profesionales (9) premios (5) Prevención de incendios (6) problemas (7) Procesadores de Pago (3) programación (68) Programacion Internet (14) Programacion Logica (14) Programacion Web (13) programadores (8) proyectistas. (5) Python (42) Redes inalámbricas (7) redes sociales (20) Redes Wi-Fi: Fundamentos (7) refuerzo (5) router.php (7) Ruby on Rails (14) sef url (7) seguidores (3) seguridad (7) SEO (9) seoveinte (1) sesión (7) sesiones personalizadas (5) Sevilla (93) Sevilla Centro (14) shopping cart (4) Sistemas de Cableados Estructurados en edificios ICT (5) sistemas operativos (6) Skype (7) smtp (4) Social Media (19) software (14) software libre (1) sql import (6) startup (9) startup weekend (6) Struts (14) subscriciones (4) swf (7) sysmana (5) técnico (14) técnicos de la fabricación y el montaje (6) técnicos fabricación y montaje (17) Tecnología (23) tedx (4) Test de satisfacción (1) tienda virtual (4) Tips (76) Todas llevan (1) truco (3) trucos (3) tutorial (4) twitter (4) UML (27) unipimus (6) url amigables (7) vender por internet (3) venta online (7) virtuemart 2.0.6 (7) webmast (1) wifi y wimax (5) wordpress (41) wpodb (5) youtube (2) zapatería (7) Zapatop.com (7)