Vistas de página en total

jueves, 31 de marzo de 2011

EJERCICIO HERENCIA

Analizamos el ejercicio



creacion del main
Obtemos el Resultado

ELEMPLO DE OPERADOR THIS

class Perro{


private $nombre;
private $edad;
private $comida;


// constructor se ejecuta al momento de invocar la clase Perro.
public function __construct() {
$this->nombre = 'Cachupín';
echo 'Un nuevo perrito a venido al mundo ';
}




// métodos
public function SetComida($dato){
$this->comida = $dato;
}


public function DarNombre($dato){
$this->nombre = $dato;
echo 'A su amo, se le ha ocurrido darle el nombre de '.$dato.'';
}


public function Comer(){
echo $this->nombre.' está comiendo un rico plato de '.$this->comida;
}


}


$cachupin = new Perro();
$cachupin->DarNombre('Destructor');
$cachupin->Setcomida('Dog Show');
$cachupin->Comer();


si te fijas, "this" hace referencia a algún elemento de la clase. sea método/función propiedad/variable.

OPERADOR THIS

La palabra clave this se refiere al objeto de contexto (comúnmente conocido como el objeto actual [current object]). En general, en un método, this se refiere a la invocación del objeto.


this[.Nombrepropiedad] this es sólo de lectura




el this , es cuando en un mismo objeto quiere usar variables o metodos del mismo ej.

tiene el metodo sumar() ....

para utiliizarlo en la misma clase pone ,

sumar() ,,,,,,,o su equivalente this.sumar();

tambien le sirve cuando quiere pasar como atributo el objeto,ej.

Agregar(this) ;



El objeto de contexto puede ser considerado como un parámetro oculto que es pasado a una función. Existen 4 maneras en las cuales this puede ser pasado:
Como consecuencia de este ser "pasado" a las funciones, esto no es fija para una función. Eso significa que una función no tiene un "propietario" o "padre", incluso si se trata de un método. En otras palabras, un método no está vinculado al objeto de que se trata de un método de.

Para ilustrar el concepto de unión, considere lo siguiente:

Como era de esperar, estas salidas de "Toyota".

Esta inesperada salida "no es un coche "en lugar de "Toyota". Desde la barra () no es una llamada al método, el objeto de contexto no se pasa. esto, entonces por defecto en el objeto global, que es la ventana en un entorno de explorador. El objeto global, a su vez, también tiene una propiedad llamada marca con el valor "no es un coche". Si no tienen una propiedad denominada marca "indefinido"habría sido generan a su lugar.

Esto indica que la barra no está vinculado en modo alguno a foo. Por el contrario, la función a que se refiere el bar y foo.getBrand no está vinculada a su "objeto principal", foo. Un objeto puede tener una propiedad se refiere a la función, pero esa función no pertenece a ese objeto. La distinción entre los métodos y las funciones se realiza sólo cuando se les llama: llama al método pasar el "objeto principal" de este tipo, mientras que las llamadas a funciones pasar el objeto global de este tipo.

En concreto, esto en la función no es alimentada automáticamente por foo. En cambio este es suministrado por la llamada de función. Es decir, en el foo.getBrand expresión (), foo es pasado, ya que a la función a que se refiere por foo.getBrand. Todos los siguientes son equivalentes:

Esta falta de método de unión que se pretende. Permite que los métodos como "compartida" o "movido" de objeto a objeto. Continuando con el ejemplo anterior:




Ejemplo: El uso de este en un controlador de eventos
Supongamos que una función llamada validar valida la propiedad de un objeto de valor, teniendo en cuenta el objeto y los valores altos y bajos:



Supongamos que una función llamada validar valida la propiedad de un objeto de valor, teniendo en cuenta el objeto y los valores altos y bajos:
Usted puede llamar a validar en el controlador de cada elemento del formulario onChange caso, usando esto para pasar el elemento de formulario, como en el ejemplo siguiente:



HERENCIA

La Herencia es el mecanismo por el que se crean nuevos objetos definidos en términos de objetos ya existentes. Por ejemplo, si se tiene la clase Ave, se puede crear la subclase Pato, que es una especialización de Ave.
    class Pato extends Ave {
        int numero_de_patas;
        }
La palabra clave extends se usa para generar una subclase (especialización) de un objeto. Una Pato es una subclase de Ave. Cualquier cosa que contenga la definición de Ave será copiada a la clase Pato, además, en Pato se pueden definir sus propios métodos y variables de instancia. Se dice que Pato deriva o hereda de Ave.
Además, se pueden sustituir los métodos proporcionados por la clase base. Utilizando nuestro anterior ejemplo de MiClase, aquí hay un ejemplo de una clase derivada sustituyendo a la función Suma_a_i():
    import MiClase;
    public class MiNuevaClase extends MiClase {
        public void Suma_a_i( int j ) {
            i = i + ( j/2 );
            }
        }
Ahora cuando se crea una instancia de MiNuevaClase, el valor de i también se inicializa a 10, pero la llamada al método Suma_a_i() produce un resultado diferente:
    MiNuevaClase mnc;
    mnc = new MiNuevaClase();
    mnc.Suma_a_i( 10 );
En Java no se puede hacer herencia múltiple. Por ejemplo, de la clase aparato con motor y de la clase animal no se puede derivar nada, sería como obtener el objeto toro mecánico a partir de una máquina motorizada (aparato con motor) y un toro (aminal). En realidad, lo que se pretende es copiar los métodos, es decir, pasar la funcionalidad del toro de verdad al toro mecánico, con lo cual no sería necesaria la herencia múltiple sino simplemente la compartición de funcionalidad que se encuentra implementada en Java a través de interfaces.

domingo, 13 de marzo de 2011

EJERCICIO DOS


COMO FUNCIONA TRY-CATCH

La instrucción try-catch consta de un bloque try seguido de una o más cláusulas catch, las cuales especifican controladores para diferentes excepciones El bloque try contiene el código protegido que puede causar la excepción. Este bloque se ejecuta hasta que se produce una excepción o hasta completarse satisfactoriamente La cláusula catch se puede utilizar sin argumentos, en cuyo caso captura cualquier tipo de excepción y se conoce como cláusula catch general. También puede aceptar un argumento de objeto derivado de System.Exception, en cuyo caso trata una excepción específica 
Si desea volver a producir la excepción que está siendo actualmente controlada por una cláusula catch sin parámetros, use la instrucción throw sin argumentos