martes, 17 de mayo de 2011


En programacion orientada a objetos la herencia es el mecanismo fundamental para implementar la reutilizaacion y extensibilidad del software. Atra vez de ella los diseñadores pueden construir nuevas clases partiendo de una jerarquia de clases ya existentes (comprobadas y verificadas) evitando con ello el rediseño, la modificacion y verificacion de la parte ya implementada. La herencia facilita la creacion de objetos apartir de otros ya existentes obteniendo caracteristicas (metodos yu atributos) similares a los ya existentes...
La herencia es uno de los mecanismos de la programacion orientada a objetos, por medio el cual una clase se deriva en otra, llamada entonces clase base o clase padre (a veces se le donima superclase pero no es muy comun)

Ejemplo de herencia en java:
_________________________________________________________________
public class Mamifero}
private int patas;
private string nombre;
public void imprimirPatas(){
JOptionPane.showMessageDialog(null," Tiene " + patas + "patas\n","Mamifero",JOptionPane.INFORMATION_MESSAGE);
}
public Mamifero(String nombre, int patas) {
this.nombre = nombre;
this.patas = patas;
}
}
public class Perro extends Mamifero{
public Perro(string nombre){
super(nombre, 4);
}
}
public class Gato extends Mamifero{
public Gato(string nombre){
super(nombre,4)
}
}
publi class CrearPerro{
public static void main(string [] args) }
Perro perrito = new Perro("canelita");
perrito.imprimirPatas(); /*Esta en la clase mamifero*/
}
}
_________________________________________________________________
Se declaran las clases mamiferos, gato y perro, haciendo que gato y perro sean unos mamiferos (derivados de esta clase) y se ve como a traves de ellos se nombra al animal pero asi tambien se accede a patas dandole el valor por defecto del numero de patas.

"CLASE ABSTRACTA"
La herencia permite que existan clases que nunca seran instancias directamente. En el ejemplo anterior, una clase "Perro" heredaria los atributos y metodos de la clase "Mamifero", asi como tambien "gato", "delfin" o cualquier otra subclase; pero, en ejecucion, no habria ningun objeto "mamifero" que no pertenezca a alguna de las subclases. En ese caso, a una clase se le conoceria como "Clase Abstracta" .
"HERENCIA Y OCULTACION DE INFORMACION
El diseñador puede definir que variables de instancia y metodos de los objetos de una clase son visibles. En C++ y java esto se consigue con las especificaciones private, protected y public. Solo las variables y metodos definidos como publicos en un objeto seran visibles por todos los objetos.
En cuanto a las subclases, que heradan las estructuras de las superclases, el diseñador puede controlar que miembros de las superclases son visibles en las subclases.
En el caso de java y C++ los especificadores de acceso (private, protected,) de los miembros de la superclase afectan tambien a la herencia.:
  • Private: ningun miembro privado de la superclase es visible en la subclase.
  • Protected: los miembros protegidos de la superclase son visible en la subclase, pero no visibles para el exterior.
  • Public: los miembros publicos de la superclase siguen siendo publicos en la subclase.
"ESTEREOTIPOS DE HERENCIA"
  • Herencia simple: Un objeto puede extender las caracteristicas de otro objeto y de ningun otro, es decir puede heredar atributos de un solo padre o de una sola clase.
  • Herencia multiple: Un objeto puede extender las caracteristicas de uno o mas objetos, es decir puede heredar atributos de varias clases.
"VENTAJAS"
  • Ayuda a la programadores ahorrar codigo y tiempo, ya que si tiene una clase lista es solo implentarla y listo todo el codigo de esta se resume a un solo llamado...
  • Los objetos pueden ser construidos de otros similares. Para ello es necesario que exista una clase base y una jerarquia(relacionamiento de clases)...
  • La clase derivada puede heredar codigo y datos de la clase base, añadiendo codigo o modificando codigo heredado...
  • Las clases que heredan propiedades de otra clase puede servir como clase base de otra...





Realizado por:
  • Flores Sobrevilla Leonardo David
  • Guadalupe Rosales Carlos

Métodos.

Como se dijo anteriormente, una Clase es un tipo definido por el usuario que describen Atributos y Métodos de los objetos que son creadas por una Clase. Un objeto contiene atributos que definen su estado o características que distinguen un objeto de otro, por otra parte, operaciones que especifican su comportamiento realizadas por Métodos.
Por consiguiente para determinar este comportamiento que realizan dichos objetos, es necesario crear los métodos que definan la acción de cada objeto de una clase.
Los Métodos son rutinas de codigos que entiende y maneja el estado de un objeto, en respuesta de una acción tomada dentro de su misma clase o desde otro objeto de otra clase.
La declaracion de un método consta de dos partes:
  • Cabecera del método.
  • Cuerpo del método.
La cabecera del método consta de una serie de modificadores, el tipo de retorno del método, la signatura y una clausula throws que lista de las excepciones lanzadas por el método. Un modificador es una palabra clave, que modifica el nivel de protección predeterminado del método.
Los modificadores de un método son los siguientes:
  1. Modificadores de acceso: que sirven para controlar el acceso desde otras clases, los miembros de una clase tienen cuatro posibles modificadores de acceso; private, package, protection y public.
  2. Abstract: es aquel cuyo cuerpo ha sido definido en una clase. El cuerpo se especifica como un punto y coma, tras la lista de parámetros. Una subclase sera responsable para proporcionar un cuerpo para este método.
  3. Static: un método static se invoca en nombre de una clase completa y no sobre un objeto específico instanciado a partir de su clase. Estos métodos se conocen como métodos de clase.
  4. Final: un método final no puede ser modificado por una subclase. Marcar un método Final significa que ninguna clase extendida puede redefinir el método para cambiar su comportamiento.
  5. Synchonized: un método synchonized posee semantica adicional relacionada con el control de hilos concurrentes dentro de un programa. Si un hilo invoca a un método synchonized sobre un objeto, se adquiere el bloqueo de ese objeto, se ejecuta el cuerpo del método y despues se libera el bloqueo del método.
  6. Native: los métodos nativos se declaran utilizando el modificador native. Como el método esta implementado en otro lenguaje, el cuerpo se espedifica con un punto y coma (;).
  7. Strictfp: si un método se declara en una clase declarada como strictfp, el método queda declarado implicitamente como strictfp.
Así tambien los Métodos tienen un tipo de retorno, primitivo o de referencia, si un método no devuelve ningún valor, en el lugar donde deberia el tipo de retorno se pone la palabra void. La signatura del método consta del nombre de la misma, asi como una lista de parámetros de las cuales se pueden asignar o quedar vacios, dejando entre parentesis un espacio en blanco ( ). Todos los métodos deben de tener un tipo de retorno y una asignatura, pero los modificadores y la clausula throws son opcionales.
El cuerpo del Método consta de las sentencias entre llaves { } las variables declaradas en el cuerpo del método son locales a dicho método, y por definicion solamente son accesibles dentro del mismo.
Ejemplo de declaracion de un Método.
Sintaxis:
nombre-método ([lista de parámetros]) ----- Cabecera del Método.
Cuerpo del Método.
{
declaración de variables locales;
sentencias;
[ return [ ( ]exprsión [ ] ; ]
}                               NO ESTA COMPLETO
Los métodos se invocan como operaciones sobre objetos, mediante referencias utilizando el operador punto ( . ). Toda aplicación java tiene un método denomido main, y solo uno. Este método es el punto de entrada a la aplicación, asi como tambien el punto de salida donde se ejecuta el programa.
A continuación se invocan dos Métodos en un programa de Java.
class COrdenador {
String Marca;
String Procesador;
String Pantalla;
boolean OrdenadorEncendido;
boolean Presentación;
void EncenderOrdenador( ) {
if (OrdenadorEncendido == true) // si está encendido...
System.out.println("El ordenador esta encendido. ");
else // si esta encendido, encenderla.
{
OrdenadorEncendido = true;
System.out.println("El ordenador se ha encendido. ");
}
}
void Estado( ) {
System.out.println("/nEstado del Ordenador: " +
"/nMarca " + Marca +
"/nProcesador " + Procesador +
"/nPantalla " + Pantalla + "/n");
if (OrdenadorEncendido == true) // Si el ordenador está encendido...
System.out.println("El ordenador está encendido. ");
else // si no está encendido...
System.out.println("El ordenador está apagado.");
}
public static void main (String args [ ] ) {
COrdenador MiOrdenador=new Ordenador ( );
MiOrdenador.Marca="Ast";
MiOrdenaor.Procesador="Intel Pentium";
MiOrdenador.Pantalla="TFT";
MiOrdenador.EncenderOrdenador( );
MiOrdenador.Estado( );
}
}
Como podemos observar, en este programa de la clase COrdenador se están invocando dos método que se llaman; EncenderOrdenador y Estado de la cual no consta de un tipo de retorno (la palabra reservada void indica que no devuelve ningun valor) y tampoco tiene una lista de parametros.
Los parentesis indican en Java que el identificador EncenderOrdenador se refiere a un método y no a un atributo.
Bibliografía:
Java 2 "2da Edición".
El Lenaguaje de Programación Java 3ra Edición
Autor:
  1. J. Ceballos Sierra.
  2. A. Ken, J. Gosling, D. Holmes.
Realizado por Edna Iveth De la Cruz Morales y Clicerio Ildefonso De la Cruz De la Cruz

"ATRIBUTOS"

Los atributos son las características principales que diferencian un objeto de otro. El color de una ventana windows la diferencia de otras, el D.N.I de una persona la diferencía de otra, el modelo de un ordenador le distingue entre otros etc.
Por ejemplo la clase ordenador puede incluir los siguientes atributos:
Marca: Toshiba, Mitac, Ast.
Procesador: Intel, AMD.
Pantalla: TFT, DSTN, STN.
Los atributos tambien pueden incluir informacion sobre el estado del objeto; por ejemplo, en el caso de un ordenador, si está encendido o apagado, si la presentación en pantalla está activa o inactiva, etc.
Dispositivo: encendido, apagado.
Presentación: activa, inactiva.
Todos los atributos están definidos en una clase por variables:

class Ordenador
{
String Marca;
String Procesador;
String Pantalla;
boolean OrdenadorEncendido;
boolean Presentación;
//...
}

Observe que se han definido cinco atributos: tres de ellos, Marca, Procesador, y Pantalla, pueden contener una cadena de caracteres (es un objeto de la clase String perteneciente a la biblioteca estándar). Los otros dos atributos, OrdenadorEncendido y Presentación, son del tipo boolean (un atributo del tipo boolean puede contener un valor true o false; verdadero o falso). Debe respetar las mayúsculas y las minúsculas.

En una clase cada atributo debe tener un único nombre. En cambio se puede utilizar el mismo nombre con atributos, en general como miembros, que pertenezcan a clases diferentes .
LOS MIEMBROS DE LA CLASE SE DENOMINAN ATRIBUTOS.

Los atributos definen el estado de un determinado objeto y constituyen la estructura interna de la clase.
Declaración de atributos (Sintáxis):
[=];

:publicprivateprotectedstatic.

:=byteshortlongintcharfloatdoublebooleanString

.

: Es el nombre de la variable o constante.

Ejemplo de atributos:

class Foo
{

public int x;

private float y=10000.0f;

private String name= "Fred Filinstone";

}

" CONTROL DE ACCESO A LOS MIEMBROS DE UNA CLASE"

El concepto de la clase incluye la idea de ocultación de los datos, que básicamente consiste en que no se puede acceder a los atributos directamente, sino hay que hacerlo a través de métodos de la clase.
De esta forma se consiguen dos objetivos importantes:
1.- Que el usuario no tenga acceso directo a la estructura de datos interna de la clase, para que no pueda generar código basado en esa estructura.
2.- Que si en un momento determinado alteramos la definición de la clase, excepto el prototípo de los métodos,todo el código escrito por el usuario basado en estos atributos no será retocado.

Un miembro de una clase declarado sin modificadores que indiquen el control de acceso, puede ser accedido por cualquier clase perteneciente al mismo paquete. Ninguna otra clase, o subclase, fuera de este paquete puede tener acceso a éstos miembros.

Los tipos de control de acceso pueden ser:
Acceso: (+)público, (-)privado, (#)protegido, (vacío)predeterminado.

Acceso público:

Un miembro declarado public (público) está accesible para cualquier otra clase o subclase que necesite utilizarla. La interfáz pública de una clase, o simplemente interfáz está formada por todos los miembros públicos de una clase. Asimismo los atributos static de la clase generalmente son declarados públicos. Sirva como ejemplo el atributo

piblic static final double PI.

Acceso privado:

Un miembro declarado private (privado) es accesible solamente por los métodos de su propia clase. Esto significa que no puede ser accedido por los metodos de cualquier otra clase, incluídas las subclases.

Acceso protegido:

Un miembro declarado protected (protegido) se comporta exactamente igual que uno privado para los metodos de cualquier otra clase.

" ATRIBUTOS STATIC "

Un atributo static no es un atributo especifico de un objeto, sino más bien es un atributo de la clase; esto es, un atributo, un atributo static del que solo hay una copia que comparten todos los objetos de la clase: Por ésta razón, un atributo static existe y puede ser utilizado aunque no exista ningún objeto de la clase.



ESCRITO POR BERNARDO CRUZ GERARDO Y MARIA DE LOURDES CRUZ CRUZ.

Bibliogafía consultada: Autor: Ceballos Sierra Francisco J.
Titulo del libro: Java 2: Curso de programación.
Segunda Edición.
No.pag. 255,256,289,291.

OBJETOS


OBJETOS



En programación orientado a objetos, un objetos se define como la unidad que en tiempo de ejecución realiza las tareas de un programa.

Estos objetos interactúa unos con otros en contraposición a la visión tradicional y la cual un programa es una colección de subrutinas, o simplemente una lista de instrucciones para el computador.

Cada objeto es capaz de recibir mensajes, procesar datos y emviar mensajes a otros objetos de manera similar a un servicio.

Un objeto es resultado de instanciación de una clase.

Los conceptos de clase y objeto son analogos a los de tipo de datos y variables, es decir, definida una clase podemos crear un objetos de esa clase igual que disponiendo de un determinado tipo de dato, podemos definir variables de dicho tipo: int a, b;


Un objeto en POO representa alguna entidad de la vida real, es decir, algunos de los objetos que pertenece al negocio con que estamos trabajando o al problema con el que estamos enfretando y con los que podemos interactuar.

Los objetos tienen caracteristicas fundamentales que nos permite conocerlos mediante la observación, identificación y el estudio posterior de su comportamiento; y estas caracteristicas son:

  • Entidad
  • Comportamiento
  • Estado

La identidad

La identidad es la propiedad que permite a un objeto diferenciarse de otros. Generalmente esta propiedad es tal, que da nombre al objeto. Ejemplo: El "verde" como un objeto concreto de una clase color, la propiedad que da identidad unica a este objeto es precisamente su "color" verde. Los objetos sirven para comparar si dos objetos son iguales o no.

Comportamiento

El comportamiento de un objeto esta directamente relacionado con su funcionalidad y determina las operaciones que este puede realizar o las que puede responder ante mensajes enviados por otro objeto. La funcionalidad de un objeto esta determinada primariamente por su responsabilidad.

Estado

El estado de un objeto que se refiere al conjunto de los valores de sus atributos en un instante de tienpo dado. El comportamiento de un objeto puede modificar el estado de este. Cuando una operación de un objeto modifica su estado se dice que esta tiene "efecto colateral".

Crear objetos

En java, se crea un objeto mediante la creación de objeto de una clase o, en otras palabras, ejemplarizando una clase. Para crear objetos se utiliza el operador new como el siguente ejemplo: Date hoy=new Date();

Esta sentencia crea un objeto Date.

En POO una instancia de programa es tratado como un conjunto dinámico de objetos interactuando entre si. Los objetos en la POO extiende la noción más general descrita en secciones anteriores para modelar un tipo muy especifico que esta definido fundamentalmente por:


  1. Atributos que representa los datos asociados al objeto, o lo que es lo mismo sus propiedades o carateristicas. Los atributos y sus valores en un momento dado, determina el estado de un objeto.

  2. Métodos que acceden a los atributos de una manera predefinida e implementa el comportamiento del objeto.

Loa atributos y métodos de un objeto estan definidos por una clase, auque en una instancia puede poseer atributos que no fueron definidos en una clase. Algo similar ocurre con los métodos, una instancia puede contener métodos que no este definidos en su clase de la misma manera una clase puede declarar ciertos métodos como "métodos de clase", y estos podrán estar o no estar presentes en la instancia.

En un lenguaje en el que cada objeto es creado apartir de una clase, un objeto es llamado una instancia de esa clase. Cada objeto pertece a un tipo de dato y dos objetos que pertenezna a la misma clase tendrá el mismo tipo de dato. Crear una instancia de una clase es entonces referido como instanciar la clase.

En casi todos los lenguajes de POO , el operador punto (.) es usado para referirse o "llamar" a un metodo particular de un objeto.

Composición

La composición es un tipo de relación que se establece entre dos objetos que tiene comunicación persistente. Se utiliza para expresar que un par de objetos tienen una relación de dependencia para llevar acabo sus funciones de modo que uno de los objetos involucrados está compuesto por el otro.

Uso

Un objeto usa a otro cuando puede emviar mensajes, por ejemplo, para requerir de este algun servicio. La composición puede verse como un caso particular de esta relación.

Delegación

En ocaciones para lograr flexibilidad de diseño, un objeto es implentado de forma tal que es delegue parte de su funcinalidad en otro objeto.

Objetos especializados


  • Singleton: un objeto del que solo puede existir una única instancia de su clase durante el tiempo de vida del programa.
  • Functor: un objeto puede ser utilizado como una función.

  • Objeto inmutable: un objeto creado con un estado fijo y que no puede variar en el tiempo de vida del mismo.
  • Objeto de primera clase: un objeto que puede ser utilizado sin restricciones.
  • Comtenedor: un objeto que contiene a otros objetos.
  • Fabrica de objetos: un objeto cuyo proposito es crear otros objetos.
  • Mataobjetos: un objeto apartir del cual se puede crear otros objetos.

  • Prototipo: un metaobjeto especializado a partir de cual se puede crear otros objetos copiandolo.
  • Objeto todopoderoso: un objeto que sabe mucho o hace mucho.

  • Antiobjeto: una metáfora computacional útil para conceptualizar y solucionar problemas complejos, usualmente con aproximaciones paralelas.

Escrito por: Octavio Cabrera Hernandez y Ana Karen Cruz Cruz

Bibliografia: hhttp://es.wikipedia.org/wiki/Objeto_(programaci%C3%B3n) Libro: Java 2 hhttp://www.programacion.com/articulo/tutorjava_nivel_basico_97/7#crearobjetos

lunes, 16 de mayo de 2011

** **ENCAPSULAMIENTO**(GABRIELA Y JUAN CARLOS)

TEMA : ENCAPSULAMIENTO



INTRODUCCION


***El encapsulamiento es una característica de la programación orientada a objetos es muy conveniente y nos permite (Si programamos bien) colocar en funcionamiento nuestro objeto en cualquier tipo de sistema, de una manera modular y escalable (algunas de las las de la ingenieria del software).



El encapsulamiento es el proceso por el cual los datos que se deben enviar a través de una red se deben colocar en paquetes que se puedan administrar y rastrear. consiste pues en ocultar los detalles de implementación de un objeto, pero a la vez se provee una pública por medio de sus operaciones permitidas por decir lo siguiente;


Hay muchos datos que no tiene porque conocerlo aquel que este usando la clase Persona; ya que son inherentes al objeto y solo controlan su funcionamiento interno; por ejemplo, cuando alguien te ve puede saber inmediatamente si eres hombre o mujer (propiedad) o puede hablarte y obtener una respuesta procesada (metodo); tambien puede conocer el color de tu cabello y ojos. En cambio, jamas sabra que cantidad de energia exacta tienes o cuantas neuronas te quedan, ni siquiera preguntandote ya que ninguna de tus propiedades externas visibles o funciones de comunicación al publico te permiten saber esos datos.


Considerando lo anterior también se define el encapsulado como la propiedad de los objetos de permitir el acceso a su estado únicamente a través de su interfaz o de relaciones preestablecidas con otros, el cual es un proceso de almacenar en una abstracción los elementos que constituyen su estructura y su comportamiento. La ocultación de información permite discernir entre qué partes de la abstracción están disponibles al resto de la aplicación y qué partes son internas a la abstracción. El encapsulamiento de variables y métodos en un componente de software ordenado es, todavía, una simple idea poderosa que provee dos principales beneficios a los desarrolladores de software: Modularidad esto es, el código fuente de un objeto puede ser escrito, así como darle mantenimiento, independientemente del código fuente de otros objetos. Así mismo, un objeto puede ser transferido alrededor del sistema sin alterar su estado y conducta.


El ocultamiento de la información, es decir, un objeto tiene una "interfaz publica" que otros objetos pueden utilizar para comunicarse con él. Pero el objeto puede mantener información y métodos privados que pueden ser cambiados en cualquier tiempo sin afectar a los otros objetos que dependan de ello.


La encapsulación da lugar a que las clases se dividan en dos partes:


Interface: captura la visión externa de una clase, abarcando la abstracción del comportamiento común a los ejemplos de esa clase.
Implementación: comprende la representación de la abstracción, así como los mecanismos que conducen al comportamiento deseado.




Una interface es una variante de una clase abstracta con la condición de que todos sus métodos deben ser asbtractos. Si la interface va a tener atributos, éstos deben llevar las palabras reservadas static final y con un valor inicial ya que funcionan como constantes por lo que, por convención, su nombre va en mayúsculas.



interface Nomina
{

public static final String EMPRESA = "Patito, S. A.";
public void detalleDeEmpleado(Nomina obj);
}



Una clase implementa una o más interfaces (separadas con comas ",") con la palabra reservada implements. Con el uso de interfaces se puede "simular" la herencia múltiple que Java no soporta.


class Empleado implements Nomina
{
...
}



La clase que implementa una interface tiene dos opciones:

1) Implementar todos los métodos de la interface.

2) Implementar sólo algunos de los métodos de la interface pero esa clase debe ser una clase abstracta (debe declararse con la palabra abstract).



Ocultamiento
Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer sólo los detalles que sean necesarios para el resto del sistema.
El ocultamiento permite 2 cosas: restringir y controlar el uso de la Clase. Restringir porque habrá cierto comportamiento privado de la Clase que no podrá ser accedido por otras Clases. Y controlar porque daremos ciertos mecanismos para modificar el estado de nuestra Clase y es en estos mecanismos dónde se validarán que algunas condiciones se cumplan. En Java el ocultamiento se logra usando las palabras reservadas: public, private y protected delante de las variables y métodos.


Ejemplo 1: De un televisor, el usuario conoce su apariencia y parte de su funcionamiento. Sólo le importa que funcionen el selector de canales, el video y el audio; no le interesa saber cómo funciona cada una de las partes internas del aparato, ese detalle sólo le interesan al fabricante y al técnico de servicio.
Ejemplo 2: De un animal no sólo es necesario conocer su apariencia; también se requiere conocer qué sabe hacer y cómo reacciona ante determinadas situaciones

Formas de encapsular



1. Estándar (Predeterminado)
2. Abierto : Hace que el miembro de la clase pueda ser accedido desde el exterior de la Clase y cualquier parte del programa.
3. Protegido : Solo es accesible desde la Clase y las clases que heredan (a cualquier nivel).
4. Semi cerrado : Solo es accesible desde la clase heredada
5. Cerrado : Solo es accesible desde la Clase.


-ejemplos:
Objetos: encapsulamiento
§ Porción visible: interfaz (protocolo)– Contrato público de comportamiento– Descripción de operaciones: información de entrada y de salida
§ Porción oculta: implementación– Estructura de datos para almacenar la información– Código que se ejecuta para realizar las operaciones.

CONCLUCION:

El encapsulamiento consiste en unir en la Clase las características y comportamientos, esto es, las variables y métodos. Es tener todo esto es una sola entidad. En los lenguajes estructurados esto era imposible. Es evidente que el encapsulamiento se logra gracias a la abstracción y el ocultamiento.
La utilidad del encapsulamiento va por la facilidad para manejar la complejida.

bibliografia: -Antonio J Martin Sierra Programador Java1 certificado.

-





ARCOS Y BALDOMERO (CLASE)

CLASE
1.-ES UN TIPO DEFINIDO POR EL USUARIO QUE DESCRIBEN LOS ATRIBUTOS Y METODOS DE LOS OBJETOS QUE SE CREAN APARTIR DE LA MISMA.
2.-TODA CLASE DESCRIBE ATRIBUTOS Y METODOS.
3.-LA DEFINICION DE UNA CLASE CONSTA DE DOS PARTES: EL NOMBRE DE LA CLASE Y EL CUERPO DE LA CLASE.
4.-EL NOMBRE DE LA CLASE VA PRECEDIDO POR LA PALABRA RESERVADA “CLASS” EL CUERPO DE LA CLASE CONSTA DE MODIFICADORES DE ACCSESO, ATRIBUTOS, MENSAJES Y METODOS.
5.-LAS CLASES PUEDEN INCLUIR EN SU DECLARACION MUCHOS METOSDOS O NO DECLARAR NINGUNO, ESTOS METODOS PUEDEN CLASIFICARSE EN METODOS DE DISTANCIA Y METODOS DE CLASE.
*ELEMENTOS BASICOS DE UNA CLASE EN SU ESTRUCTURA.
ü PAQUETE AL QUE PERTENECE LA CLASE
ü DEFINICION DE LA CLASE
ü VARIABLES INTERNAS
ü CONSTRUCTOR DE LA CLASE
ü PROPIEDADES
*AMBITO DE UNA CLASE:
EL AMBITO DE LA CLASE SE PUEDE DETERMINAR POR MEDIO DE LOS MODIFICADORES SIGUIENTES:
PUBLIC.-LA CLASE ES PÚBLICA Y POR LO TANTO ACCESIBLE PARA TODO EL MUNDO. SOLO PODEMOS TENER UNA CLASE PUBLIC POR UNIDAD DE COMPILACION, AUNQUE ES POSIBLE NO TENER NINGUNA.
NINGUNO.-LA CLASE ES “AMISTOSA”. SERA ACCESIBLE PARA LAS DEMAS CLASES DEL PACKAGE. SIN EMBARGO MIENTRAS TODASLAS CLASES CON LAS QUE ESTAMOS TRABAJANDO ESTEN EN EL MISMO DIRECTORIO PERTENECERAN AL MISMO PACKAGE Y POR ELLO SERAN COMO SI FUESEN PUBLICAS. COMO NUNCA TRABAJAREMOS EN VARIOS DIRECTORIOS ASUMIREMOS QUE LA AUSENCIA DE MODIFICADOR ES EQUIVALENTE A QUE LA CLASE SEA PUBLICA.
FINAL.-INDICARA QUE LA CLASE NO PUEDE “TENER HIJO”, NO SE PUEDE DERIVAR NINGUNA CLASE DE ELLA.
ABSTRACT.-SE TRATA DE UNA CLASE DE LA CUAL NO SE PUEDE INSTANCIAR NINGUN OBJETO.
*MIEMBROS DE UNA CLASE:
A) LOS ATRIBUTOS.- DEFINEN EL ESTADO DE UN DETERMINADO OBJETO Y CONSTITUYEN LA ESTRUCTURA INTERNA DE UNA CLASE.
B) LOS METODOS.- SON LAS OPERACIONES QUE DEFINEN DE LOS OBJETOS PERTENECIENTES A LA CLASE.
EJEMPLO DE METODOS:
Class thing
{
Private int x; //atributo
Public void setX( int x ) //metodo
}
X=15;
}
}
*ESPECIFICADORES DE ACCESO:
PARA CONTROLAR EL ACCESO JAVA PROVEE LAS PALABRAS CLAVE PRIVATE (PRIVADO), PROTECTED (PROTEGIDO) Y PUBLIC (PUBLICO), AUNQUE TAMBIEN ES POSIBLE OMITIRLAS (ACCESO PREDETERMINADO).
ACCESO PREDETERMINADO:
UN MIEMBRO SIN MODIFICADOR INDICADA QUE EL CONTROL PUEDE SER ACCEDIDO POR CUALQUIER CLASE PERTENECIENTE AL MISMO PAQUETE. NINGUNA OTRA CLASE, O SUBCLASE, FUERA DE ESTE PAQUETE PUEDE TENER ACCESO A ESTOS MIEMBROS.
ACCESO PÚBLICO:
UN MIEMBRO DECLARADO public (PUBLICO) ESTA ACCESIBLE PARA CUALQUIER OTRA CLASE O SUBCLASE QUE NECESITE UTILIZARLO. LA INTERFAZ PUBLICA DE UNA CLASE, O SIMPLEMENTE INTERFAZ, ESTA FORMADA POR TODOS LOS MIEMBROS PUBLICOS DE LA MISMA.
ACCESO PRIVADO:
UN MIEMBRO DECLARADO prívate (PRIVADO) ES ACCESIBLE SOLAMENTE POR LOS METODOS DE SU PROPIA CLASE. ESTO SIGNIFICA QUE NO PUEDE SER ACCESIDO POR LOS METODOS DE CUALQUIER OTRA CLASE, INCLUIDAS LAS SUBCLASES.
ACCESO PROTEGIDO:
UN MIEMBRO DECLARADO protected (PROTEGIDO) SE COMPORTA EXACTAMENTE IGUAL QUE UN PRIVADO PARA LOS METODOS DE CUALQUIER OTRA CLASE , EXCEPTO PARA LOS METODOS DE LAS CLASES DEL MISMO PAQUETE O DE SUS SUBCLASES CON INDEPENDENCIA DEL PAQUETE AL QUE PERTENEZCAN, PARA QUE SE COMPORTAN COMO UN MIEMBRO PUBLICO.
*NOTA: EL NOMBRE DE LA CLASE SIEMPRE SE INICIALIZA CON LA LETRA MAYUSCULA Y LAS DEMAS LETRAS MINUSCULAS.
EJEMPLO:
Public class Maestra{

Atributos

Constructores


Método

}


Los programas en java consta de varias piezaz llamadas clases. Estas clases incluyen piezas llamadas metodos, los cuales realizan tareas y devuelven informacion cuando completan esas tareas.


Dentro del enlace de una clase, los miembros de esta son accesibles para todosw los metodos de esa clase y pueden referenciarse directamente por su nombre. Fuera del enlace de una clase, los miembros de esta no pueden referenciarse por su nombre. Fuera del enlace de una clase, los miembros de esta no pueden referenciarse por su nombre. Los mimbros de una clase (como los miembros public) que son visibles pueden utilizarse solo a traves de unn "manejador": una referencia a un objeto de la clase, o el nombre mismo de la clase para los miembros static.


Hay dos paquetes que destacan por las clases de propositos general que incluyen: Java.io y java.lang.


El paquete java.io contiene las clases de objetos que proporcionan los metodod necesarios para escribir informacion en diversos dispositivos. El paquete java.lang contiene clases que se aplican al lenguaje mismo. Por ejemplo, clases especiales que encapsulan los tipos primitivos de datos, la clase System que proporciona los objetos para manipular la enmtrada /salida(EIS) estandar base para manipular cadenas de caracteres, estandar, clases para manipular cadenas de caracteres, una clase que proporciona los metodos correspondientes alas funciones matematicas de uso mas frecuente, una clase mas, una clase para analizar otras clases etc.


Una clase es un tipo definido por el usuario que describe los atributos y los metodios de los objetos que se crean apartir de de la misma. Una clase consta de dos partes, el nombre de la clase precedido por la palabra reservada class, y el cuerpo de la clase encerrado entre llaves. Esto es:


class nombre_clase


{


cuerpo de la clase


}


El cuerpo de la clase en general consta de modificadores de acceso (public, protected y private)

atributos, mensajes y metodos.


Todo en java forma parte de una clase, es una clase o describe como funciona una clase. El conocimiento de las clases es fundamental para poder entender los programas en Java.


Todas las acciones de los programas java se colocan dentro del bloque de una clase o un objeto. Un objeto es una instancia de una clase.

Clases anidadas: - Una clase anidada es un miembro mas de la clase que la contiene. Por ejemplo: en el codigo mostrado a continuacion, Fecha es una clase anidada:


public class (Persona


{


//Miembros de (Personas

private class (Fecha


{


//Miembros de (Fecha


}


//Otros miembros de (Personas


}


Una clase se debe definir dentro de otra solo cuando tenga sentido en el contexto de la clase que la incluye o cuando depende de la funcion que dempeña la clase que la incluye.


REFERENCIAS BIBLIOGRAFICAS:
*DEITEL,HARVEY M. JAVA.(COMO PROGRAMAR.INTRO AL DOO CON UML Y LOS PATRONES DE DISEÑO JBDC). pp 8, 9.
*FROUFE QUINTOS AGUSTIN "JAVA 2( MANUAL DE USUARIO Y TUTORIAL). pp 75, 76.
*CEBALLOS SIERRA FRANCISCO J. JAVA 2(CURSO DE PROGRAMACION ). pp 89, 253, 321, 322.

sábado, 14 de mayo de 2011

CLASES DERIVADAS (NATALY Y SURY)...

CLASES DERIVADAS


Cuando se crea un objeto de una clase derivada se crea implícitamente un objeto de la clase base que se inicializa con su constructor correspondiente.
Si en la creación del objeto se usa el constructor no-args, entonces se produce una llamada implícita al constructor no-args para la clase base.Pero si se usan otros constructores es necesario invocarlos explícitamente.En nuestro ejemplo dado que la clase método define un constructor, encestáremos también un constructor para la clase Ejecutivo, que podemos completar así:
class Ejecutivo extends Empleado {
int presupuesto;

Ejecutivo (String n, int s) {
super(n,s);
}
void asignarPresupuesto(int p) {
presupuesto = p;
}

public String toString() {
String s = super.toString();
s = s + " Presupuesto: " + presupuesto;
return s;
}
}

Obsérvese que el constructor de Ejecutivo invoca directamente al constructor de Empleado mediante super(argumentos).En caso de resultar necesariamente la invocación al constructor de la superclase debe ser la primera sentencia del constructor de la subclase.

La clase derivada heredará los miembros dato de la clase base y las funciones miembro,y tendrá un miembro dato más,eltitulo de la ventana de la ventana.
public class VentanaTitulo extends Ventan{

protected String titulo;
public Ventana Titulo(int x, int y, int w, int h, String nombre) {
super(x, y, w, h);
titulo=nombre;
{

extends es la palabra reservada que indica que la clase ventana Titulo derivada,o es una subclase, de la clase Ventana.La primera sentencia del constructor de la clase derivada es una llamada al constructor de la clase base mediante la palabra reservada super. La llamada
super(x,y,w,h);
Inicializa los cuatro miembros dato de la clase base Ventana:x,y,ancho,alto.
A continuacion, se inicializa los miembros dato de la clase derivada, y se realizan las tareas de inicializacion que sean necesarias.Si no se llama explícitamente al constructor de la clase base java lo realiza por nosotros,llamando al constructor por defecto si existe.la funcion miembro denominada desplazar cambia la posicion de la ventana,añadiendoles el desplazamiento.

public void desplazar(int dx, int dy){
x+=dx;
y+=dy;
{

.
Redefine la función miembro para mostrar una ventana con un titulo.
public void mostrar(){
super.mostrar();
System.out.println(“titulo : “+titulo);
}


En la clase derivada se define una función que tiene el mismo nombre y los mismos parámetros que la de la clase base.Se dice que redefinimos la función mostrar en la clase derivada.
La función miembro mostrar de la clase derivada Ventana Titulo hace una llamada ala función mostrar de la clase base Ventana,mediante:
super.mostrar();


De este modo aprovechamos el código ya escrito,y le añadimos el código que describe la nueva funcionalidad de la ventana por ejemplo, que muestre el titulo.
Si nos olvidamos de poner la palabra reservada super llamando a la función recursiva.
La función mostrar llamaría a mostrar indefinidamente.
public void mostrar(){ //¡ojo!, función recursiva
System.out.println(“titulo : “+titulo);
mostrar();
}

La función de la clase derivada Ventana Titulo,sera la siguiente.package ventana;
public class Ventana Titulo extends Ventana{
protected String titulo;
public Ventana Titulo(int x, int y, int w, int h, String nombre) {
super(x, y, w, h);
titulo=nombre;
}

public void mostrar(){
super.mostrar();
System.out.println(“titulo : “+titulo);
}
public void desplazar(int dx, int dy){
x+=dx;
y+=dy;
}
}

Objetos de la clase derivada creamos un objeto Ventana de la clase derivada Ventana Titulo ventana= new Ventana Titulo(0,0,20,30,"principal");

Mostramos la ventana con su titulo,llamando ala funcion mostrar,redefinida en la clase derivada
ventana.mostrar();

Desde el objeto ventana de la clase derivada llamamos alas funciones miembro definidas en dicha clase.
ventana.desplazar(4, 3);

Desde el objeto ventana de la clase derivada podemos llamar alas funciones miembros definidas en la clase base.
ventana.cambiarDimensiones(10, −5);

Para mostrar la nueva ventana desplazada y cambiada tamaño escribimos
ventana.mostrar();

NOTA:es un nuevo tipo de objeto definido por el usuario que tiene la propiedad de heredar atributos y métodos de otra clase definida previamente,denominada superclase.

SINTAXIS
classextends
{
//cuerpo de la clase

}





// BIBLIOGRAFIA







apuntes.rincondelvago.com/clases-derivadas.html







www.sc.ehu.es/sbweb/fisica/.../herencia.html






http://www.infosoftw.com/.../node31.html