Trabajo de Programación Orientada a Objetos

download Trabajo de Programación Orientada a Objetos

of 12

Transcript of Trabajo de Programación Orientada a Objetos

Trabajo de Programacin Orientada a Objetos (POO).Definir.1.- Objeto.2.-Clase.2.1.- Herencia2.2.- Polimorfismo.2.3.-Encapsulamiento.2.4.- Abstraccin.3.- Mtodos de una clase.4.- Instanciar una clase ( como se hace con ejemplo).5.- Programacin Orientada a Objetos ( concepto y ejemplos).6.- Javascript ( manejo de eventos ,Ejemplo onclick, onchange,..).7.- Variables POST,GET,SESSION,REQUEST, ventajas y desventajas .8.-Variables Publicas y Privadas (diferencias).9.-Esquema de Programacion de tres capas (Modelo-Vista-Controlador )10.- Diferencia de los programas compilados vs los Interpretados.11. Librera SQLi de Mysql.12. Submit ( aplicacin y funcionamiento).13. Tipos de Imput (html)

Definir1. Objeto.Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (mtodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa).Los objetos son entidades que tienen un determinado estado, comportamiento (mtodo) e identidad:El estado est compuesto de datos o informaciones; sern uno o varios atributos a los que se habrn asignado unos valores concretos (datos).El comportamiento est definido por los mtodos o mensajes a los que sabe responder dicho objeto, es decir, qu operaciones se pueden realizar con l.La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras palabras, es su identificador (concepto anlogo al de identificador de una variable o una constante).Un objeto contiene toda la informacin que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interaccin llamados mtodos, que favorecen la comunicacin entre ellos. Esta comunicacin favorece a su vez el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento.Los mtodos (comportamiento) y atributos (estado) estn estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de mtodos para poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo podra producir el hbito errneo de crear clases contenedoras de informacin por un lado y clases con mtodos que manejen a las primeras por el otro. De esta manera se estara realizando una programacin estructurada camuflada en un lenguaje de programacin orientado a objetos.

2. ClaseUna clase sirve para fabricar objetos partiendo de un modelo. Estos objetos tienen sus propios atributos y ciertos mtodos.Las clases se componen de elementos, llamados genricamente miembros, de varios tipos:Campos de datos: almacenan el estado de la clase por medio de variables, estructuras de datos e incluso otras clases.Los campos de datos se utilizan para contener datos que reflejan el estado de la clase. Los datos pueden estar almacenados en variables, o estructuras ms complejas, como structs, uniones e incluso otras clases.Habitualmente, las variables miembro son privadas al objeto (siguiendo las directrices de diseo del Principio de ocultacin) y su acceso se realiza mediante propiedades o mtodos que realizan comprobaciones adicionales.Mtodos: subrutinas de manipulacin de dichos datos. Los mtodos implementan la funcionalidad asociada al objeto. Los mtodos son el equivalente a las funciones en programacin estructurada. Se diferencian de ellos en que es posible acceder a las variables de la clase de forma implcita.Cuando se desea realizar una accin sobre un objeto, se dice que se le manda un mensaje invocando a un mtodo que realizar la accinCiertos lenguajes permiten un tercer tipo de miembro: las propiedades, a medio camino entre los campos y los mtodos. Las propiedades son un tipo especial de mtodos. Debido a que suele ser comn que las variables miembro sean privadas para controlar el acceso y mantener la coherencia, surge la necesidad de permitir consultar o modificar su valor mediante pares de mtodos: GetVariable y SetVariable.Los lenguajes orientados a objetos ms modernos (por ejemplo Java o C#) aaden la construccin de propiedad, que es una sintaxis simplificada para dichos mtodos:Utilizando un smil con el lenguaje, si las clases representan sustantivos, los campos de datos pueden ser sustantivos o adjetivos, y los mtodos son los verbos.

2.1. HerenciaLa herencia es un concepto muy importante en POO. Permite reutilizar el cdigo de una clase sin necesidad de volver a escribirlo. Una clase hija hereda de una clase madre, es decir, accede a todos los atributos y los mtodos pblicos de la clase madre.A travs de la reutilizacin los diseadores pueden crear nuevas clases partiendo de una clase o de una jerarqua de clases preexistente (ya comprobadas y verificadas) evitando con ello el rediseo, la modificacin y verificacin de la parte ya implementada. La herencia facilita la creacin de objetos a partir de otros ya existentes e implica que una subclase obtiene todo el comportamiento (mtodos) y eventualmente los atributos (variables) de su superclase.Para crear la clase Pez que hereda de la clase Animal, debe utilizar la palabra clave extends entre el nombre de la clase hija y el nombre de la clase madre.

2.2. Polimorfismo.El polimorfismo se refiere a la propiedad por la que es posible enviar mensajes sintcticamente iguales a objetos de tipos distintos. El nico requisito que deben cumplir los objetos que se utilizan de manera polimrfica es saber responder al mensaje que se les enva. En programacin orientada a objetos el polimorfismo se refiere a la posibilidad de definir clases diferentes que tienen mtodos o atributos denominados de forma idntica, pero que se comportan de manera distinta. El concepto de polimorfismo se puede aplicar tanto a funciones como a tipos de datos. As nacen los conceptos de funciones polimrficas y tipos polimrficos. Las primeras son aquellas funciones que pueden evaluarse o ser aplicadas a diferentes tipos de datos de forma indistinta; los tipos polimrficos, por su parte, son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no est especificado.Se puede clasificar el polimorfismo en dos grandes clases:Polimorfismo dinmico (o polimorfismo paramtrico) es aqul en el que el cdigo no incluye ningn tipo de especificacin sobre el tipo de datos sobre el que se trabaja. As, puede ser utilizado a todo tipo de datos compatible.Polimorfismo esttico (o polimorfismo ad hoc) es aqul en el que los tipos a los que se aplica el polimorfismo deben ser explcitos y declarados uno por uno antes de poder ser utilizados.

2.3 Encapsulamiento.Todos los atributos en POO deben estar ocultos de otras personas que utilizan sus clases. Si trabaja en equipo y crea la clase Animal, los otros programadores no van a poder cambiar directamente los atributos de su clase. De esta forma, los atributos color y peso se ocultan en otras clases; se declaran privadas. La clase Animal tiene mtodos para leer o escribir en estos atributos. Este es el principio de encapsulacin, que permite proteger el cdigo cuando trabaja en equipo. La clase Animal, que tiene como propiedades el color y el peso, dispone de un mtodo para modificar su color, un mtodo para leer el color, un mtodo para modificar su peso, un mtodo para leer su peso, as como otros mtodos tales como comer o moverse.El principio de encapsulacin requiere que todos los atributos sean privados. Por lo tanto, debe crear mtodos pblicos que permitan leer o escribir en sus atributos desde otra pgina PHP. Estos mtodos son accesos. Generalmente sus nombres van precedidos del prefijo get para leer el valor del atributo y set para escribir el valor del atributo.Cada objeto est aislado del exterior, es un mdulo natural, y la aplicacin entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados de un objeto contra su modificacin por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones.De esta forma el usuario de la clase puede obviar la implementacin de los mtodos y propiedades para concentrarse slo en cmo usarlos. Por otro lado se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas.

2.4. Abstraccin La abstraccin encarada desde el punto de vista de la programacin orientada a objetos expresa las caractersticas esenciales de un objeto, las cuales distinguen al objeto de los dems. Adems de distinguir entre los objetos provee lmites conceptuales. Entonces se puede decir que la encapsulacin separa las caractersticas esenciales de las no esenciales dentro de un objeto. Si un objeto tiene ms caractersticas de las necesarias los mismos resultarn difciles de usar, modificar, construir y comprender.A grandes rasgos, la abstraccin, permite que dispongamos de las caractersticas de un objeto que necesitemos. Si necesitamos el objeto Persona, podramos poner nombre, edad, direccin, estado civil, etc. Si lo necesitamos en un sistema administrativo, pero, si lo requerimos para el rea de biologa, dentro de sus atributos quiz tengamos, ADN, RND, Gen x1, Gen x2, etc., y los atributos antes mencionados no sean requeridos. En general, podemos decir que Persona cuenta con todos los atributos mencionados aqu, pero por el proceso de abstraccin excluimos todos aquellos que no tienen cabida en nuestro sistema. Se define como un mtodo por el cual se rescatan los datos relevantes y se ignoran los irrelevantes.

3 Mtodos de Una ClaseMtodo: Es la implementacin de un algoritmo que representa una operacin o funcin que un objeto realiza. El conjunto de los mtodos de un objeto determinan el comportamiento del objeto.Existen diferentes tipos de mtodos:Inicializador: se parecen a los mtodos en cuanto a que son bloques de cdigo, pero se diferencian de estos porque los inicializadores son bloques sin nombre y no reciben argumentos. Los inicializadores pueden ser de clase o de objeto.Los inicializadores de clase, tambin llamados estticos, se llaman automticamente al usar la clase por primera vez. Al contrario que los constructores, que se llaman por cada objeto que se crea, los inicializadores de clase slo se llaman una vez.Estos inicializadores se crean dentro de la propia clase, como mtodos sin nombre, sin argumentos y sin valor de retorno.nicamente se usa la palabra clave static seguida de una pareja de llaves con el cdigo de inicializacin encerrado.En una misma clase podemos meter tantos inicializadores estticos como necesitemos, y sern llamados en el mismo orden en que estn definidos. La gran ventaja que aportan es que en ellos se pueden usar excepciones mediante la sentencia try-catch.Por otra parte, los inicializadores de objeto no llevan la palabra clave static y son llamados al crear cada objeto. Se usan en las clases annimas, ya que al carecer de nombre no pueden tener constructores.Al declara los miembros de una clase, podemos inicializarlos junto con la declaracin para que tomen unos valores iniciales. El siguiente ejemplo de clase muestra este tipo de inicializacin:

// Cdigo 1public class Semana {static final int NUM_DIAS = 7;boolean empiezaEnDomingo = false; } Este mtodo sirve para el caso de variables de tipos primitivos, e incluso a veces para los objetos,

Setter: Un setter es un mtodo de una clase que sirve para asignarle un valor a un atributo de una clase.

Continuando con lo que se refiere al metodo setter, cuando creamos este tipo de mtodo estamos dando acceso a otros objetos o lugar de nuestra aplicacin a indicar el valor de un atributo de nuestra clase, un ejemplo de este.

class MiClase{ private $atrbibutoClase; private $otroAtributo; public function setAtributoClase($atrbibutoClase) { $this->atrbibutoClase = $atrbibutoClase; } public function setOtroAtributo($otroAtributo) { $this->otroAtributo = $otroAtributo; } }

Como podemos ver son metodos que asignan valor a cada atributo de nuestra clase MiClase, de tal manera que podamos trabajar con los datos de esta.

Hasta aca esta sencillo nuestro trabajo con los setter, pero que con los tipos de datos que estos pueden recibir??

En Java por ejemplo este tipo de mtodos se les indica el tipo de valor que reciben en el parmetro ya que java es exigente en cuanto a los tipos de datos que se le asignan a las variables y atributos.

Suponiendo que uno de los datos sea de tipo numerico quedaria de la siguiente manera.

como vemos hacemos una validacion y sino lanzamos una excepcion indicando que el tipo de dato no es el correcto para este atributo de nuestra clase.

Como vemos aunque son mtodos sencillos los setter en PHP tienen que tener un poco de lgica para hacer la validacin de tipo de datos del mismo.

Getter: los getter son los mtodos que retornan o muestran el valor de un atributo de nuestra clase. Entonces como quedaria nuestro getter??

public function getAtrbibutoClase(){ return $this->atrbibutoClase;}De esta manera al momento de tener una instancia de nuestro objeto MiClase solo con llamar a este mtodo obtendriamos el valor de el atributo especificado.

Estos mtodos de los que hablamos hoy son valiosamente tiles al momento de declarar nuestras clases ya que nos dan acceso a los atrbutos de la misma.

Mtodos Visualizadores: muestran el objeto (valores de los atributos o alguna representacin visual del objeto).

Mtodos Operadores: Realizan Clculos y generan resultados

Mtodos Constructores: Un constructor es una funcin que inicializa un objeto. Cuando creamos un objeto nuevo del tipo que sea, lo que hacemos en realidad es llamar al constructor pasndole argumentos.El constructor, como su nombre indica, sirve para construir un objeto del tipo clase. Cuando escribe new Animal(), por defecto llama al constructor de la clase Animal.

El constructor se designa __construct y no tiene return.El constructor toma como argumento los valores de sus atributos. Esto evita llamar los mtodos setColor() y setPeso().En PHP no se puede declarar dos constructores en la misma clase.

El Destructor: El destructor sirve para destruir el objeto con el fin de liberarlo de la memoria. Se llama automticamente al final del script PHP o cuando se destruye el objeto. Para destruir un objeto, puede utilizar la funcin unset(). Esta funcin toma como argumento el objeto que hay que destruir.

4. Instanciar una clase.

Es utilizar una clase y darle sus atributos para crear un objeto, partiendo de todos los atributos que contiene la clase.