martes, 11 de marzo de 2014

en sus orígenes, Php no era un verbo de programación Orientado a Objetos o acertadamente Oop que son sus siglas en sajón, con el desarrollo de las tecnologías y con las novedades lecturas 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 argot 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 dirigida a propósitos se semilla en estofas y objetos.

una dependencia contiene plumazos o heredades y razonamientos que son las actuaciones. Esto es en extremo importante tenerlo claro. Método es correspondiente de Función. Atributo es parecido de Propiedad.

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

en Php definimos una categoría de la subsiguiente manera:

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

mediante las líneas de reglamento de en lo alto se define la categoría “cliente” la cual utilizaremos para nuestro tutorial.

si perfectamente este tutorial no está enfocado a puntualizar los conocimientos de la Programación Orientada a Objetos, es agradable concretar que el prestigio de la ralea no debe ser en plural, por este lugar nombramos “cliente” en enclave de “clientes”.

métodos y Atributos

los razonamientos y los rasgos se definen “codifican” interiormente de la función. El carácter de una calidad es una propiedad.

atributos:

el ordenamiento y la prolijidad en programación son en extremo importantes. Por lo tanto, comenzaremos averiguar nuestra casta de “arriba” hacia “abajo”. Lo frontal que se define en una clase son los atributos.

por ejemplo: en nuestra aula de canon “cliente” un trazo seria “nombre”, “apellido”, “edad” etc.

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

muy aceptablemente, sigamos delante definiendo los caracteres de nuestra variedad, para lo cual utilizaremos la voz aislada “private” o si trabajas con traducciones de Php inferiores a 5.0 deberás servirse “var”, por lo tango nuestra colección se orilla de la subsiguiente manera:

class Cliente   {   // estos títulos de debajo son los rasgos 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 franqueables adentro la propia clase.

si seguimos los estándares de Programación Orientada a Objetos debemos fijar los carácteres como oficiosos. Es decir, que sean naturales únicamente desde internamente de la variedad misma, por lo tango utilizamos “private”. En otras palabras, ninguna otra clase y en ninguna otra parte de precepto se podrá trastornar un trazo perteneciente a

 

métodos o Funciones:

un uso es lo mismo que una diligencia, es una parte de precepto en el interior de la clase que realiza una profesión y puede reponer un precio o no.

los antiguos sistemas que definiremos en nuestra clase serán los que asignan denuedos a nuestros caracteres. En este aspecto siempre hay divergencia en la hermandad de programadores. La discusión está en si es mejor producir un razonamiento para cada carácter o aceptablemente concebir caracteres públicos y de esa suerte evitamos la concreción de razonamientos unipersonales. Esto puede sonar brumoso, lo veremos con un ejemplo:

para que puedas observar la diferencia es ineludible sentir auténtico la circunstancia que insume más precepto para que luego las puedas concomitar. Entonces, volviendo a los usos, definiremos dos que se encargaran de entregarse y volver un arrojo a la finca nombre.

métodos que controlan nuestros atributos.

agregamos el subsiguiente precepto ya seguidamente de nuestras propiedades.

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

la variedad “cliente” con los procedimientos quedaría de la subsiguiente manera:

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

el uso “setnombre” recibe un grado por parámetro y por medio de la conveniencia de “$this” lo asignamos. Recuerda, “$this” se usa solo adentro de las clases.

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

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

recién ya estaríamos en calañas de efectuar evidencias con nuestra variedad. Luego, veremos la segunda forma de designar esfuerzos a los trazos de la clase.

probando nuestra clase:

para demostrar lo que hemos entrado aprendiendo inclusive inmediatamente créate una página php señal prueba.php y agrega el reglamento siguiente:

require("classes/cliente.php");   //creamos propósito para nuestro primer cliente   $auxcliente = new Cliente();   //asignamos un prestigio a nuestro fin Cliente   $auxcliente->setnombre("ariel") ;   //creamos efecto para nuestro segundo cliente   $auxcliente2 = new Cliente();   //asignamos un prestigio a nuestro segundo propósito 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 entrometer el clasificador que tiene la disertación “cliente”, una sucesión incluida en “prueba.php” inmediatamente podemos utilizarla.

paso 1 para disfrutar la clase:

lo antiguo que hay que trabajar para poseer la categoría es “crear una instancia” de la misma. Lo que nos da un efecto o ejemplo de esa jaez, por ende: “$auxcliente = new Cliente();” nos crea un fin convocado ““$auxcliente” de la clase “cliente”. Recuerden que es un fin y esta “vacío” en lexicón cotidiano.  Es un molde.

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

paso 2,  asignar cojones a los atributos:

al poseer ahora nuestro objetivo podemos asignarle un prestigio 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, hoy 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 fase en al creamos nuestro segundo cliente es equiparable al inicial, solo que ya utilizaremos un nuevo objetivo “$auxcliente2”. Recuerda, siempre que quieras percibir un nuevo fin tienes que disfrutar “new Objeto()” en nuestro canon “new Cliente()”.

paso 3,  verificar funcionamiento de la clase:

una sucesión adjudicado el renombre a ambos clientes comprobamos que en realidad cada cliente tenga su prestigio y que cada cliente es un fin distinto.

lo verificamos de la subsiguiente forma:

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

el redundado será:

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

retomando el quid relacionado a si debemos llevarse razonamientos para controlar las fincas de nuestra naturaleza o no, debemos acudir algunas alteraciones en nuestra clase.

como habrás notado la manera de gratificar un importe a la heredad “mnombre” fue utilizando el razonamiento “setnombre” y para restablecerse el coraje utilizamos el razonamiento “getnombre” que no son otra cosas que jerarquías públicas constreñidas internamente de la clase.

existe una manera no siempre advertida de controlar los carácteres sin usufructuar razonamientos, esto es definiendo las heredades como públicas, para lo cual podemos usufructuar “var” o “public” en sucesión de “private”.

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

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

como habrás podido hallar nuestra categoría inmediatamente no tiene los estilos “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 exequible obtener a ellas desde cualquier parte del estatuto. Es decir, desde interiormente de la condición a través de la conveniencia de “$this” y desde afuera.

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

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

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

$auxcliente->mnombre = "ariel" ;

lo mismo para recobrar el arrojo de la heredad, accedemos bruscamente así “$auxcliente->mnombre”

todo asaz proporcionadamente. Ahora, ¿cuál es la mejor forma?

esto es en extremo referente y depende de la aplicación que estés desarrollando. Lo que si es cierto es que si utilizas el uso más sencillo te estarías saliendo de los estándares de florecimiento de aplicaciones dirigidas a objetivos. Existen colectividades que son bastante rígidas en estas metodologías y exigen a sus programadores la insistencia de estas técnicas para que el estatuto raíz final sea uniforme.

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

¿qué otro método tienen los Métodos?

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

podemos explotar un razonamiento para determinar la edad de la cabeza basada en la época de nacimiento.

agregamos lo subsiguiente a nuestra clase:

function Setfechanacimiento($val) //método que asigna una brío a la finca Fecha de Nacimiento   {   $this->mfechanacimiento = $val;   }   function Getedad() //método que retorna el coste brindado a la hacienda 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 representación “calcularedad” tiene el labor de darnos la perduración de un cliente cimentado en la data de brote. Es sin vacilación un claro canon de cómo podemos exprimir los métodos.

vamos a confirmar el razonamiento agregando el subsiguiente fuero en una página Php en blanco:

require("classes/cliente.php");   //creamos objetivo para nuestro primer cliente   $auxcliente = new Cliente();   //asignamos un prestigio a nuestro objetivo 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 incertidumbre es una de las características más adelantadas en los vocabularios dirigidos a objetivos, y Php relación con esta característica.

cuando hablamos de cesión nos referimos a procedimientos y heredades que se “importan” de otra jaez. Como la voz lo dice, heredamos clases que ahora están hechas.

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

por modelo: si en nuestra entidad tenemos clientes, suministradores y empleados. Todos tienen cosas en común, todos tienen renombre, patronímicos, teléfonos, paraje etc.

llevándolo al plano analítico, todos son habitantes. Por lo tanto, podemos especificar una calidad “persona”, la cual contenga todos los rasgos y estilos comunes al cliente, suministrador y empleado.

podemos aseverar que estas categorías heredaran de Persona los caracteres en común.

para principiar definimos la aula 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 alcance a la heredad nombre   {   $this->mnombre = $val;   }   function Getnombre() //método que retorna el grado facilitado a la finca nombre   {   return $this->mnombre ;   }   }

y nuestra calidad “cliente” quedara así:

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

a primera mirada parece vacía, sin razonamientos tampoco heredades. Pero, si  prestamos prudencia, vemos la fidelidad usada para heredar “extends” y a cadeneta “persona”. Esto, es decir quiere articular que la ralea Cliente hereda todas las fincas y razonamientos de Persona.

para ejemplificar la conveniencia de la riqueza utilizaremos otra condición convocatoria “”empleado”.

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

al heredar nos evitamos tener que detallar los procedimientos y heredades para cada una de las funciones separadamente, evitando así el estatuto doblado y aprovechamos al máximo la reutilización, uno de los albores cardinales de esta metodología.

para testificar que Cliente y Empleado heredaron utiliza los arquetipos de la comida anterior.

constructores y Destructores

siempre que ejecutamos “$auxcliente = new Cliente();” decimos que construimos el propósito Cliente. Se puede arrear el azar que podríamos bienquistar proceder determinadas batallas en el mismo plazo de génesis o institución del objetivo. Para esto usamos el edificador, que no es más que un clasificación que se ejecuta automáticamente.

en Php5 el edificante se define con “__construct” en lecturas anteriores el edificante se define con una interpretación con el mismo prestigio de la calidad. Por ejemplo en nuestra aula “cliente” el edificante se definiría de la subsiguiente manera:

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

en el molde utilizamos el edificador para valorar la época automáticamente a posteriori de instanciar el objeto.

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

el aniquilador de una categoría se utiliza para ejecutar importaciones cuando se destruye el propósito, en otras palabras cuando se elimina de la reminiscencia. Esta funcionalidad es asaz aprovechada en procedimientos de chat. Donde necesitamos refrescar la pata de numeros siquiera correctamente el turista cierra la página.

encapsulamiento

es la inteligencia de los efectos de sujetar otros objetivos en el interior de sí mismo. Un buen arquetipo podría ser que una filial tiene clientes. Por lo tanto, un efecto cliente podría estar internamente del fin 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 estante de experimientació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 renombre a nuestro efecto Cliente   $auxcliente->setnombre("ariel") ;   //asignamos época de nacimiento   $auxcliente->setfechanacimiento("1979-11-19") ;   //calculamos edad   $auxcliente->calcularedad() ;   //agregamos el cliente adentro de la empresa   $auxempresa->agregarcliente($auxcliente) ;   //recuperamos el prestigio 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 fin Cliente internamente del objetivo Empresa y “getcliente” nos lo devuelve.

por lo acierto 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)