miércoles, 7 de mayo de 2014

en sus premières, Php no era un lexicón de programación Orientado a Objetos o perfectamente Oop que son sus abreviaturas en británico, con el desarrollo de las tecnologías y con las notas lecturas Php fue agregando varias funcionalidades propias de la metodología Oop.

dividiremos este tutorial en las subsiguientes áreas, que son las que definen si un idioma es orientado a objetivos 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 tradicional, la programación encauzada a objetivos se peana en talantes y objetos.

una aula contiene plumazos o heredades y razonamientos que son las interpretaciones. Esto es enormemente importante tenerlo claro. Método es parecido de Función. Atributo es semejante de Propiedad.

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

en Php definimos una variedad de la subsiguiente manera:

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

mediante las líneas de estatuto de hacia lo alto se define la condición “cliente” la cual utilizaremos para nuestro tutorial.

si admisiblemente este tutorial no está enfocado a concretar los conocimientos de la Programación Orientada a Objetos, es excelente disolver que el prestigio de la clasificación no debe ser en plural, por este argumento nombramos “cliente” en sitio de “clientes”.

métodos y Atributos

los estilos y los carácteres se definen “codifican” adentro de la ley. El carácter de una calidad es una propiedad.

atributos:

el mandato y la prolijidad en programación son altamente importantes. Por lo tanto, comenzaremos leer nuestra cátedra de “arriba” hacia “abajo”. Lo frontal que se define en una condición son los atributos.

por ejemplo: en nuestra clase de patrón “cliente” un trazo seria “nombre”, “apellido”, “edad” etc.

si nuestro ejemplo afuera una calaña “automovil”, los trazos serian: “rueda”,”marca”,”modelo” etc. ¿más claro ahora?

muy aceptablemente, sigamos delante definiendo los carácteres de nuestra talante, para lo cual utilizaremos la fidelidad misteriosa “private” o si trabajas con traducciones de Php inferiores a 5.0 deberás servirse “var”, por lo tango nuestra categoría se ribera de la subsiguiente manera:

class Cliente   {   // estos ánimos de debajo son los carácteres o haciendas de nuestra clase   private $mnombre;   private $mapellido;   private $mdireccion;   private $mpais;   private $mtelefono;   private $medad;   private $mfechanacimiento;   }

en otras voces, los atributos son patentes o asequibles en el interior la propia clase.

si seguimos los estándares de Programación Orientada a Objetos debemos detallar los trazos como carentes. Es decir, que sean naturales exclusivamente desde interiormente de la condición misma, por lo tango utilizamos “private”. En otras palabras, ninguna otra categoría y en ninguna otra parte de fuero se podrá permutar un carácter perteneciente a

 

métodos o Funciones:

un estilo es lo mismo que una recital, es una parte de estatuto interiormente de la categoría que realiza una misión y puede tener arcadas un precio o no.

los frontales sistemas que definiremos en nuestra categoría serán los que asignan arrojos a nuestros rasgos. En este calado siempre hay diferencia en la agrupación de programadores. La discusión está en si es mejor idear un razonamiento para cada rasgo o perfectamente originar caracteres públicos y de esa tradición evitamos la observación de estilos unipersonales. Esto puede sonar oscuro, lo veremos con un ejemplo:

para que puedas contemplar la diferencia es requerido gozar delantero la manera que insume más precepto para que luego las puedas cotejar. Entonces, volviendo a los razonamientos, definiremos dos que se encargaran de atribuir y volver un atrevimiento a la heredad nombre.

métodos que controlan nuestros atributos.

agregamos el subsiguiente fuero al instante luego de nuestras propiedades.

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

la calidad “cliente” con los razonamientos quedaría de la subsiguiente manera:

class Cliente   {   // esto de debajo son los rasgos o fincas 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 calibre a la hacienda nombre   {   $this->mnombre = $val;   }   function Getnombre() //método que retorna el importe concedido a la finca nombre   {   return $this->mnombre ;   }   }

el estilo “setnombre” recibe un ánimo por parámetro y a través de la conveniencia de “$this” lo asignamos. Recuerda, “$this” se usa solo interiormente de las clases.

el procedimiento “getnombre” funciona de suerte inversa y retorna el atrevimiento de la finca, utilizamos “return” para devolverlo.

el prototipo de hacia lo alto es el más recomendado, luego requiere más líneas de precepto, lo que se traduce en más tiempo.

recién hoy día estaríamos en estipulaciones de hacer experiencias con nuestra ralea. Luego, veremos la segunda guisa de adjudicar denuedos a los plumazos de la clase.

probando nuestra clase:

para fundarse lo que hemos correspondido aprendiendo inclusive hoy en día créate una página php llamada prueba.php y agrega el estatuto siguiente:

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

analizando un poco el precepto, la primera línea lo que hace es entreverar el clasificador que tiene la ralea “cliente”, una ocasión incluida en “prueba.php” inmediatamente podemos utilizarla.

paso 1 para exprimir la clase:

lo auténtico que hay que realizar para disfrutar la variedad es “crear una instancia” de la misma. Lo que nos da un objetivo o prototipo de esa categoría, por ende: “$auxcliente = new Cliente();” nos crea un objetivo seducido ““$auxcliente” de la clase “cliente”. Recuerden que es un efecto y esta “vacío” en glosario cotidiano.  Es un molde.

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

paso 2,  asignar méritos a los atributos:

al mantener ahora nuestro fin podemos asignarle un renombre al cliente, lo hacemos utilizando el estilo igual de la subsiguiente manera:

//asignamos un renombre a nuestro propósito Cliente   $auxcliente->setnombre("ariel") ;

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

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

la guisa en al creamos nuestro segundo cliente es equivalente al exterior, solo que inmediatamente utilizaremos un nuevo propósito “$auxcliente2”. Recuerda, siempre que quieras ganar un nuevo fin tienes que usar “new Objeto()” en nuestro arquetipo “new Cliente()”.

paso 3,  verificar funcionamiento de la clase:

una ocasión entregado el prestigio a entreambos clientes comprobamos que en verdad cada cliente tenga su renombre y que cada cliente es un propósito distinto.

lo verificamos de la subsiguiente forma:

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

el salido será:

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

retomando el evento relacionado a si debemos aprovechar estilos para controlar las heredades de nuestra aula o no, debemos acogerse algunas variaciones en nuestra clase.

como habrás distinguido la faceta de adscribirse un alcance a la heredad “mnombre” fue utilizando el uso “setnombre” y para volver en si el valor utilizamos el uso “getnombre” que no son otra cosas que recitales públicas establecidas en el interior de la clase.

existe una guisa no siempre enchufista de controlar los carácteres sin usufructuar sistemas, esto es definiendo las fincas como públicas, para lo cual podemos usar “var” o “public” en ocasión de “private”.

la aclaración de las fincas quedaría así:

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

como habrás podido cotorrear nuestra ley inmediatamente no tiene los sistemas “set” y “get” que se encargaban de las propiedades.

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

dado que las fincas se definieron como públicas es factible ceder a ellas desde cualquier parte del fuero. Es decir, desde internamente de la condición a través de la explotación de “$this” y desde afuera.

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

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

dado que las heredades son públicas asignamos un renombre de la misma forma que asignamos un atrevimiento a una variable común en Php.

$auxcliente->mnombre = "ariel" ;

lo mismo para reponerse el arrojo de la hacienda, accedemos a bocajarro así “$auxcliente->mnombre”

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

esto es asaz tocante y depende de la diligencia 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 florecimiento de laboriosidades encarriladas a propósitos. Existen entes que son altamente rígidas en estas metodologías y exigen a sus programadores la diligencia de estas menstruaciones para que el estatuto raíz final sea uniforme.

este tutorial pretende ser lo más laboral opcional, por ende mostramos ambas circunstancias. Depende del programador cual usar.

¿qué otro procedimiento tienen los Métodos?

los procedimientos no son solo útiles para guiar las fincas. De hecho esta es una de las faenas a excepción de importante que realizan los métodos.

podemos servirse un razonamiento para evaluar la edad de la cualquiera basada en la data de nacimiento.

agregamos lo subsiguiente a nuestra clase:

function Setfechanacimiento($val) //método que asigna una coste a la hacienda Fecha de Nacimiento   {   $this->mfechanacimiento = $val;   }   function Getedad() //método que retorna el prestigio aplicado 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 categoría “calcularedad” tiene el labor de darnos la antigüedad de un cliente asentado en la data de belén. Es sin envidia un claro arquetipo de cómo podemos usufructuar los métodos.

vamos a verificar el razonamiento agregando el subsiguiente estatuto en una página Php en blanco:

require("classes/cliente.php");   //creamos fin para nuestro primer cliente   $auxcliente = new Cliente();   //asignamos un prestigio 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 sospecha es una de las características más acentuadas en los argots encaminados a objetivos, y Php nota con esta característica.

cuando hablamos de hacienda nos referimos a razonamientos y fincas que se “importan” de otra clase. Como la voz lo dice, heredamos interpretaciones que inmediatamente están hechas.

la fortuna nos sirve para ahorrarnos labor y reutilizar cosas que ahora están hechas.

por molde: si en nuestra oficina tenemos clientes, vendedores y empleados. Todos tienen cosas en común, todos tienen prestigio, patronímicos, teléfonos, país etc.

llevándolo al plano analítico, todos son personas. Por lo tanto, podemos puntualizar una calaña “persona”, la cual contenga todos los rasgos y razonamientos comunes al cliente, lonjista y empleado.

podemos asegurar que estas aulas heredaran de Persona los trazos en común.

para abrir definimos la talante Persona:

class Persona   {   // esto de debajo son los carácteres o fincas 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 esfuerzo a la finca nombre   {   $this->mnombre = $val;   }   function Getnombre() //método que retorna el coste atribuido a la heredad nombre   {   return $this->mnombre ;   }   }

y nuestra raza “cliente” quedara así:

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

a primera traza parece vacía, sin estilos siquiera haciendas. Pero, si  prestamos consideración, vemos la voz usada para heredar “extends” y a cadeneta “persona”. Esto, es decir quiere hablar que la categoría Cliente hereda todas las heredades y sistemas de Persona.

para probar la conveniencia de la caudal utilizaremos otra ralea llamada “”empleado”.

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

al heredar nos evitamos tener que determinar los sistemas y haciendas para cada una de las categorías separadamente, evitando así el fuero reduplicado y aprovechamos al máximo la reutilización, uno de los postulados esenciales de esta metodología.

para demostrar que Cliente y Empleado heredaron utiliza los ejemplos de la división anterior.

constructores y Destructores

siempre que ejecutamos “$auxcliente = new Cliente();” decimos que construimos el fin Cliente. Se puede adivinar el evento que podríamos distinguir efectuar determinadas batallas en el mismo santiamén de tierra o erección del objetivo. Para esto usamos el edificante, que no es más que un calidad que se ejecuta automáticamente.

en Php5 el edificador se define con “__construct” en traducciones anteriores el edificador se define con una interpretación con el mismo prestigio de la ciencia. Por ejemplo en nuestra jaez “cliente” el edificador se definiría de la subsiguiente manera:

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

en el canon utilizamos el edificante para tantear la vida automáticamente a posteriori de instanciar el objeto.

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

el devastador de una estofa se utiliza para ejecutar operaciones cuando se destruye el fin, en otras palabras cuando se elimina de la rememoración. Esta funcionalidad es altamente aprovechada en sistemas de chat. Donde necesitamos recuperar la colchoneta de documentos tampoco proporcionadamente el turista cierra la página.

encapsulamiento

es la facultad de los propósitos de ahorrar otros fines adentro de sí mismo. Un buen modelo podría ser que una administración tiene clientes. Por lo tanto, un objetivo cliente podría estar en el interior del efecto empresa.

creamos nuestra clase “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 archivador de evidencia agregamos el subsiguiente código:

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

el sistema “agregarcliente” introduce el objetivo Cliente en el interior del objetivo 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)