miércoles, 20 de julio de 2011

DIFERENCIA JAVA Y JACASCRIPT



"RAZONE ESTAS DOS DIFERENCIAS"


JAVA:FUE CREADO POR SUN .ES UN LENGUAJE COMPLETO
QUE PERMITE REALIZAR TODO TIPO DE APLICACIONES.


JAVASCRIPT:FUE CREADO POR NETSCAPE, ES UN CODIGO
QUE ESTA INMERSO EN UNA PAGINA WEB.
SU FINALIDAD ES MEJORAR EL DINAMISMO DE LAS PAGINAS WEB.

viernes, 20 de mayo de 2011

EDUARDO INES INOCENCIO  Y MIRIAM MONSERRATH MAR


CONSTRUCTORES

El constructor de una clase es un método estándar para inicializar los objetos de esa clase. Es una función que se ejecuta siempre al crear un objeto. Los constructores de una clase tienen siempre el nombre de la clase y no tiene ningún valor devuelto (ni siquiera void). Si el usuario no declara un constructor el sistema (En este caso Java) siempre crea un constructor por defecto sin argumentos. En el momento en el que el usuario define un constructor el constructor del sistema se elimina y es sustituido por el, o los, constructores definidos (al tratarse de un método más el constructor puede sobrecargarse).

Para inicializar un objeto basta con llamar a su constructor después de la palabra reservada new y asignarlo a una referencia declarada previamente.Un constructor es un método que se ejecuta cada vez que se crea un objeto, el propósito de este procedimiento es el de inicializar los datos del objeto. El nombre del constructor siempre es igual al nombre de la clase.
Se invoca automáticamente cuando new crea un objeto de esa clase.

• Los constructores se declaran en el momento de definir la clase.
class A {
   int x, y;
   A() { x=0; y=0; } // el constructor
   }

 A a= new  A();
 a.Print(); // 0 0
• El constructor puede tener parámetros. En este caso, se deben colocar los argumentos respectivos al crear el objeto:
class A {
   int x, y;
   A(int ix, int iy)
   { x=ix; y=iy; } // el constructor
   …
 }

 A a= new A(1,2);
 a.Print(); // 1 2

 a= new A(); // error, hay que colocar
             // los argumentos
 a.A(1,2);   // error, no se puede
             // invocar el constructor
• Se pueden colocar varios constructores. Durante la creación de un objeto, se invoca aquel que calza con los argumentos dados:
class A {
   int x, y;
   A() { x=0; y= 0; }
   A(int ix, int iy)
   { x=ix; y=iy; }
   A(A from)
   { x= from.x; y= from.y; }
}
A a1= new A();
 a1.Print();    // 0 0
 A a2= new A(1,2);
 a2.Print();    // 1 2
 A a3= new A(a2);
 a3.Print();    // 1 2





En resumen es un método de clase que sirve para realizar ciertas operaciones necesarias al dejar de existir un objeto, por ejemplo, cerrar conexiones de una comunicación, cerrar ficheros, etc.


jueves, 19 de mayo de 2011

LA CLASE BASE

LA CLASE BASE

        "LA CLASE BASE"

           La funcionalidad de una clase existente se puede extender al crear una nueva clase que se deriva de ella. La clase derivada hereda las propiedades de la clase base y es posible agregar o reemplazar métodos y propiedades según sea necesario.
         En Java existe una clase base que es la raíz de la jerarquía y de la cual heredan todas aunque no se diga explicitamente mediante la clausula extends. Esta clase base se llama Object y contiene algunos métodos básicos.  Los métodos declarados por la clase Object son los siguientes:

public class Object { 
    public final Class getClass() { . . . } 
    public String toString() { . . . } 
    public boolean equals(Object obj) { . . . } 
    public int hashCode() { . . . } 
    protected Object clone() throws CloneNotSupportedException { . . . } 
    public final void wait() throws IllegalMonitorStateException,
                                      InterruptedException { . . .   public final void wait(long millis) throws
                                            IllegalMonitorStateException, 

                                                  InterruptedException {. . .}
    public final void wait(long millis, int nanos) throws 
                    
                                                IllegalMonitorStateException, 
                                   InterruptedException { . . . } 
    public final void notify() throw IllegalMonitorStateException { . . . }
    public final void notifyAll() throws    
                                    IllegalMonitorStateException { . . . } 
    protected void finalize() throws Throwable { . . . }     
}


          Como puede verse toString es un método de Object, que puede ser redefinido en las clases derivadas. Los métodos wait, notify y notifyAll tienen que ver con la gestión de threads de la JVM. El método finalize ya se ha comentado al hablar del recolector de basura.

            Se puede tener acceso a los miembros de clase base en una subclase incluso cuando los miembros de base se reemplazan en la superclase utilizando la palabra clave base. Por ejemplo, puede crear una clase derivada que contenga un método con la misma firma que la clase base. Si se precede ese método con la palabra clave new, se indica que se trata de un método totalmente nuevo que pertenece a la clase derivada. También se podría proporcionar un método para tener acceso al método original de la clase base con la palabra clave base.


*Seleccionar los constructores

            Los objetos de clase base siempre se construyen antes que cualquier clase derivada. De esta forma, el constructor de la clase base se ejecuta antes que el constructor de la clase derivada. Si la clase base tiene más de un constructor, la clase derivada puede decidir a qué constructor se va a llamar.

*La clase base object
      La clase Object es la clase raíz de la cual derivan todas las clases. Esta derivación es implícita. La clase Object define una serie de funciones miembro que heredan todas las clases.

*Ejemplos de clases bases:
     En este ejemplo, primero definimos una clase base y una extensión de la clase. La clase base describe una verdura general, si es comestible o no y cuál es su color. La subclase Espinaca añade un método para cocinarla y otro para averiguar si es cocinada.



<?php
// clase base con propiedades y métodos miembro
class Verdura {

   var 
$comestible;
   var 
$color;

   function 
Verdura($comestible$color="verde"
   {
       
$this->comestible $comestible;
       
$this->color $color;
   }

   function 
es_comestible() 
   {
       return 
$this->comestible;
   }

   function 
qué_color() 
   {
       return 
$this->color;
   }
   
// fin de la clase Verdura

// extender la clase base
class Espinaca extends Verdura {

   var 
$concinada false;

   function 
Espinaca() 
   {
       
$this->Verdura(true"verde");
   }

   function 
cocinarla() 
   {
       
$this->concinada true;
   }

   function 
está_cocinada() 
   {
       return 
$this->concinada;
   }
   
// fin de la clase Espinaca
Este codigo esta en php


      Entonces instanciamos 2 objetos de estas clases e imprimimos la información sobre ellos, incluida su clase padre. También definimos algunas funciones de utilidad, prinpipalmente para tener una impresión agradable de las varaibles.



        Herencia es el mecanismo de deducir o derivar una nueva clase de otra clase ya existente. Se dice que una clase derivada hereda la descripción de una clase base. A la clase base se le denomina superclase y a la clases derivada se le llama subclase.





    Una clase puede ser derivada de una clase existente utilizando el siguiente formato en Java:

import paquetes;
/++++++++ CLASE BASE +++++++++++++
class Base
{







//Conjunto de instrucciones ;
}
//Funciones miembro de la subclase

public Tipo Metodo_miembro (Parametros)



{
nombre= nombreEstudiante;
examen= new double [NUM_EXA];
calificaciones= "*****";
}

public Base( Parametros)
{

//Definición de datos miembros
protected tipo datomiembro_n;
public tipo datomiembro_m;
private tipo datomiembro_p;
}


         Ejemplo de Herencia:

import java.io.*;
//*************Clase BASE ***************
class Estudiante
{
protected int NUM_EXA =3;
protected String nombre;
protected double[] examen;
protected String calificaciones;


public Estudiante()
{
     nombre= "Sin Nombre";
}

public Estudiante(String nombreEstudiante)
{
     nombre= nombreEstudiante;
     examen= new double [NUM_EXA];
     calificaciones= "*****";
}

public String obtenCalificaciones()
{
     return calificaciones;
}

public String obtenNombre()
{
     return nombre;

}
public void asignaNombre (String nuevoNombre)
{
     nombre= nuevoNombre;

}
public void imprimeCalifExamen()
{

for(int i=0; i< NUM_EXA; i++)
{
     System.out.print( examen[i]+" ");

}
}
public double obtenCalifExamen(int numExam)
{

return examen[numExam -1];
}
public void asignaCalifExamen(int numExam, double califExamen)
{

examen[numExam -1]=califExamen;
}
}


CONCLUSIÓN DEL TEMA: "LA CLASE BASE"


n

         La clase ya existente se le llama superclase,  clase base , o clase padre

n


En la clase derivada podemos redefinir (override, o sobremontar) métodos, lo cual corresponde a reimplementar un método de la clase base en la clase derivada. 
n


Si aún deseamos acceder la método de la clase base, lo podemos hacer utilizando la palabra super como referencia al padre. 
n


Notar que también usamos esta palabra reservada para invocar constructores de la clase base. 





TRABAJO REALIZADO POR: 


ROSAURA NUÑEZ GUZMAN 




ERIKA MARTINEZ JUAREZ


"PROGRAMACIÓN ORIENTADA A OBJETOS"

MARISOL ZAMORA ROSAS (10500426)


CLASES ABSTRACTAS



Los métodos abstractos son los que están declarados en una clase, pero no se ha definido en la clase el código de esos métodos.


Las clases abstractas presentan un nivel de "abstracción" tan elevado que no sirven para instanciar objetos de ellas.Re presentan los escalones más elevados de algunas jerarqías de clases y solo sirven para derivr otras clases,en las que se van implementado detalles y concreencias, hasta que finalmente presentan un nivel de definicónes suficientes que permite instanciar objetos concretos.Se suelen utilizar en aquellos casos en que se quiere que unaseria de clases mantengan una cierta caracteristica o interfaz común. Por esta razón a veces se dice que ellas que son pura interfaz.



Una clase abstracta es la que tiene al menos una función virtual pura.



Nota: Recordemos que las clases que tienen al menos una función virtual se denominan clases polimórficas.Resulta por lo tanto, que todas las clases abstractas son también polimórficas,pero no necesariamente a la inversa.





REGLAS DE USO:


  1. Una clase abstrata solo puede ser usada como clase base para otras clases, pero no pueden ser instanciada para crear un objeto.
  2. Una clase abstracta no puede ser utilizada como argumento o como retorno de una función.
  3. Si puede declararse punteros-a-clase abstracta




EJEMPLO






Cuando pensamosen una clase como un tipo,asumimos que los programas crearán objetos de ese tipo. Sin embargo, hay asos en que es útil definir clases para las cuales no se desea iniciar objetos. Tales clases son llamadas clases abstractas.




El propósito de una clase abstracta es proveer una clase abstracta es proceer una clase base apropiada desde la cual otras clases hereden. Las clases desde las cuales se pueden instanciar objetos se llaman clases concretas. Tales clases proveen implementaciones de cada método o propiedad que definen.




Las clases abstractas normalmente contienen uno o más métodos o propiedades abstractas, las cuales no proveen implementación. Las clases derivadas deben reemplazar los métodos abstractos heredados para permitir la instanciación de objetos.








ESTA IMAGEN MUESTRA UN EJEMPLO DE LO QUE ES UNA CLASE ABSTRACTA











FUENTES DE INVESTIGACIÓN



http://www.zator.com/Cpp/E4_11_8c.htm

http://www.sistemas.itlp.edu.mx/tutoriales/progorientobjetos/t62.htm

http://elvex.ugr.es/decsai/java/pdf/AC-interfaces.pdf



































miércoles, 18 de mayo de 2011



INVESTIGACION REALIZADA POR: GUADALUPE ROSALES ZOILA ( 10500415 ) Y GUTIERREZ BRAVO CLARA ISABEL ( 10500416 ).
POLIMORFISMO
El concepto de polimorfismo es uno de los fundamentos para cualquier lenguaje orientado a objetos, las mismas raíces de la palabra pueden ser una fuerte pista de su significado: Poli= Multiple, morfismo= Formas, esto implica que un mismo objeto puede tomar diversas formas. Este es uno de los conceptos escenciales de una programacion orientada a objetos. Así como la herencia está relacionada con las clases y su jerarquía, el polimorfismo se relaciona con los métodos.
En general, hay tres tipos de polimorfismo:
  • Polimorfismo de sobrecarga
  • Polimorfismo paramétrico( también llamado polimorfismo de plantillas )
  • Polimorfismo de inclusión ( también llamado redefinición o subtipado )





Trataremos de describir ahora con más precisión estos tipos de polimorfismo, pero le sugerimos prestar atención, ya que muchas personas suelen confundirse al tratar de comprender las diferencias existen entre tres tipos:
  • Polimorfismo de sobrecarga: El polimorfismo de sobrecarga ocurre cuando las funciones del mismo nombre existen, con funcionalidad similar, en clases que son completamente independientes una de otra ( estas no tiene que ser clases secundarias de la clase objeto ). Esto significa que no necesitamos preocuparnos sobre el tipo de objeto con el que estamos trabajando si todo lo que deseamos es verlo en la pantalla.
  • Polimorfismo paramétrico: El polimorfismo paramétrico es la capacidad para definir varias funciones utilizando el mismo nombre, pero usando parámetros diferentes ( nombre y/o tipo .El polimorfismo paramétrico selecciona automáticamente el método correcto a aplicar en funcón del tipo de datos pedados en el paramétro.
  • Polimorfismo subtipado: La habilidad para definir un método en clases que se heredan de una clase base se llama especialización. Por lo tanto, se puede llamar un método de objeto sin tener que conocer su típico intrínseco: esto es polimorfismo subtipado.
CLASIFICACION DEL POLIMORFISMO
Se puede clasificar el polimorfismo en dos grandes clases:
  • Polimorfismo dinámico: Es aquel en el que el código no incluye ningún tipo de especificación sobre el tipo de datos sobre el que se trabaja.Así, puede ser utilizado a todo tipo de datos compatible.
  • Polimorfismo estático: Es aquel en el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de poder ser utilizados.
El polimorfismo dinámico unido a la herencia es lo que en ocasiones se conoce como programación generica.
También se clasifica en herencia por redefinición de metodos abstractos y por métodos sobrecargado.El segundo hace referencia al mismo método con diferentes parámetros.
Otra clasificación agrupa los polimorfismos en dos tipos: Ad-Hoc que incluye a su vez sobrecarga de operadores y coerción, Universal.
OBEJETIVO DEL POLIMORFISMO
  • Facilidad para adapatarse a cambios.
  • Implementación de colecciones y métodos genéricos.
  • Permite código independiente del tipo ( Facil de escribir y entender )
  • Al añadir nuevos tipos: no hay que reescribir código y programas extensibles
EJEMPLO DEL OBJETIVO DEL POLIMORFISMO




EJEMPLO EN CÓDIGO


OTRO EJEMPLO

OTRO EJEMPLO







Los codigos no estan ejemplificando  los diagramas, les falto còdigo

CONCLUSION
Los conceptos de herencia y polimorfismo se consideran, en general, ligados al térmido "orientado a objetos", hasta el punto que su presencia confirme dicho carácter al sistema en cuestión. Su aplicacion es especialmente rentable en aplicaciónes con abundancias de objetos que comparten atributos y tratamientos, lo que se plasma en una gerarquía de clases en las que las inferiores heredan o redefinen algunas de las propoedades de sus superiores.
Como contrapardida, la definicion de una clase que queda incompleta sin la definición de las clases de las cuales depende jerárgicamente . Se trata, sin embargo, de conceptos poco experimentados y en los que se echa en falta entornos de programación que los integran plenamente.
CON ESTE EJEMPLO CONCLUIMOS LO QUE ES POLIMORFISMO


BIBLIOGRAFIA

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.