Paquetes, clases y objetos

 A estas alturas el término “Clase” y “paquete” ya debería de sonar familiar. Todos los programas anteriores se han programado de una forma sencilla, todo el código dentro de una clase, pero este no es la forma de programar con un paradigma orientado o objetos. Para introducirnos en el diseño de clases en el lenguaje Java es importante conocer las definiciones del paradigma orientado a objetos.

Definición de paquete

 

Los paquetes no son más que una carpeta que ayudan a organizar las clases en grupos para facilitar el acceso a ellas cuando las necesitamos en algún programa, reducen los conflictos entre los nombre de las clases en caso de que se llamen igual (Pero de paquetes diferentes) y permiten proteger el acceso a las clases.

 

Para referirnos a una clase de un paquete, tenemos que hacer anteponiendo el nombre de la misma en el nombre de su paquete, exceptuando que el paquete haya sido importado explícitamente.

 

Por ejemplo pqtMatriz.MatrizCuadrada

 

El paquete se llama pqtMatriz y contiene una clase llamada MatrizCuadrada.

 

Para importar un paquete se hace mediante la palabra reservada import.

 

import pqtMatriz;

 

 

Ahora podemos referirnos a la clase MatrizCuadrada simplemente escribiendo su nombre sin necesidad de escribir que paquete la contiene.

Definición de clase

Una clase es un tipo definido por el usuario (Véase como un archivo con extensión .java) en el cual se especifican los atributos y métodos de los objetos que se crearan a partir de la misma. Los atributos definen el estado de un determinado objeto y los métodos son operaciones que definen su comportamiento. Los atributos y los métodos forman parte general de una clase.

 

Como hemos visto anteriormente la forma de crear una clase es mediante dos partes: El nombre de la clase precedida por la palabra reservada class, y el cuerpo de la clase encerrado entre llaves.

 

class nombreClase{

        cuerpo de la clase

}

 

Se puede definir un modificador de acceso al crear la clase, public. Por ejemplo:

 

public class nombreClase{

        cuerpo de la clase

}

 

Una clase declarada pública indica que podemos utilizar la clase desde cualquier lado, es decir, una clase externa, dentro o fuera del mismo paquete, también se puede utilizar desde un paquete externo (siempre y cuando se haya importado el paquete).

 

Una clase sin modificador de acceso indica que la clase puede ser accedida por cualquier clase interna del mismo. No puede ser utilizada por cualquier otro paquete.

 

 

Nota: Una clase no se puede crear con los modificadores private ni protected.

Atributos

Los atributos constituyen la estructura interna de los objetos de una clase. Para declarar un atributo se hace de la misma manera que al declarar una variable cualquiera, exceptuando por que se tiene que especificar el modificador de acceso. Por ejemplo:

 

public class Ejemplo{

        public String cadena;

        private int numero;

}

 

Nota: En una clase, cada atributo debe tener un nombre único, sin embargo, se puede utilizar un mismo nombre de atributo en otra clase dentro del mismo paquete, ya que cada clase es distinta, y por lo tanto cada clase tiene su propia estructura.

 

Es posible asignar algún valor al declarar un atributo, este sera el valor inicial de un atributo, aunque no se debería hacer ya que es trabajo de un constructor. Ejemplo:

 

public class Ejemplo{

        public String cadena=”Hola”;

        private int numero=1;

}

 

También podemos declarar como atributos de una clase, referencias a objetos de otra clase existente. Por ejemplo, se define un objeto de la clase creada anteriormente.

 

public class EjemploDos{

        public Ejemplo ejem;

 

}

Métodos de una clase

Los métodos definen las operaciones que se pueden realizar con los atributos de una clase. En vista de la POO el conjunto de todos estos métodos corresponde con el conjunto de mensajes a los que los objetos de una clase pueden responder, es decir, para la comunicación entre un objeto se utilizan métodos y estos a su vez se comunican mediante mensajes.

 

Para definir un método de una clase se hace de la misma manera que nuestro método main (Main es el método principal de una clase y es el primer método que se ejecuta al compilar un programa). Ejemplo:

 

public class Ejemplo{

        public String cadena=”Hola”;

        private int numero=1;

 

        public void main(String args[]){

                //Algun código

        }

 

         public void saludo(){

                System.out.println(“Este es el saludo de un médoto”);

         }

}

 

 

Nota: En Java un método se declara siempre dentro del cuerpo de una clase, los métodos no se pueden anidar pero sí se puede llamar a un método dentro de otro método. 

Modificadores de Acceso en Atributos y Métodos

Las clases básicamente incluye la idea de ocultar datos, consiste en que no se pueda acceder directamente a los atributos o métodos de un objeto, sino que hay que hacerlo mediante los métodos de una clase. Al hacer esto, el usuario de la clase sólo tendrá acceso a uno a más métodos que le permitirán acceder a los miembros privados.

 

 

Para controlar el acceso a los miembros de una clase se utilizan los modificadores private (privado), protected (protegido) y public (público) y predeterminado (omitiéndolas). Si observamos la clase anterior Ejemplo identificamos que se han declarado dos atributos, los cuales uno es publico y otro privado, y un método que también es público.

 

Acceso predeterminado

 

Es cuando se omite el tipo de acceso al declarar un atributo o método de la clase. Por ejemplo:

 

public class Ejemplo{

        String cadena=”Hola”;

        int numero=1;

 

        void saludo(){

                 System.out.println(“Este es el saludo de un médoto”);

        }

}

 

El acceso predeterminado indica que el objeto de una clase puede ser accedido desde cualquier clase perteneciente al mismo paquete. Ninguna clase fuera de éste paquete puede tener acceso a estos miembros.

 

Acceso Público

 

Un miembro declarado con el acceso público indica que puede ser accedido por un objeto de esa clase en cualquier parte de la aplicación, puede ser una clase del mismo paquete, una clase de un paquete externo.

 

public class Ejemplo{

        public String cadena=”Hola”;

        public int numero=1;

 

        public void saludo(){

               System.out.println(“Este es el saludo de un médoto”);

        }

}

 

Acceso Privado

 

Un miembro de la clase declarado privado indica que el miembro solo puede ser accedido por un objeto de es mima clase, esto es, no puede ser accedido ni por otra clase del mismo paquete, ni por una clase externa al paquete.

 

public class Ejemplo{

        private String cadena=”Hola”;

        private int numero=1;

 

        private void saludo(){

                System.out.println(“Este es el saludo de un médoto”);

        }

}

 

Acceso Protegido

 

Un miembro de la clase declarado como protegido se puede acceder a sus miembros otras clases que estén dentro del mismo paquete, sin embargo no pueden ser accedidos por alguna clase de un paquete externo.

 

public class Ejemplo{

        protected String cadena=”Hola”;

        protected int numero=1;

 

        protected void saludo(){

                System.out.println(“Este es el saludo de un médoto”);

        }

 

}

Definición de objeto

Para entender mejor éste termino pongámonos a pensar, en el mundo real los objetos se crean a partir de otros objetos, un objeto puede ser cualquier cosa, un automóvil, un árbol, una televisión, etc y cada objeto tiene sus propios estados (Atributos) y comportamientos (Métodos). Por ejemplo un automóvil tiene sus atributos como puede ser número de puertas, color, marca, modelo, etc. Y su comportamiento es el de arrancar, acelerar, frenarse, etc, este conjunto de acciones determinan a un objeto.

 

¿Cómo se crea un objeto?

 

Para eso debemos tener en cuenta lo que es una clase de objetos, pongamos un ejemplo. Piense en un molde para hacer galletas, el molde sería nuestra clase y las galletas nuestros objetos. De la misma manera se crean los objetos en la POO, a partir de un molde (clase) se crean los objetos, el molde debe de agrupar las propiedades comunes de todos los objetos, pero no todos los objetos tienen que ser iguales, es decir, no todas las galletas deben tener la mima figura, o el mismo sabor. Esto es que cada objeto que construyamos de una clase tendrá sus propios datos.

 

Un objeto se crea en el momento en que se define una variable de dicha clase, por ejemplo:

 

Ejemplo objeto=new Ejemplo();

 

Creamos un objeto de nuestra clase Ejemplo creada anteriormente.

 

Importante: A la creación de un objeto se le llama instancia.

 

 

Si decimos “instancia de la clase Ejemplo” nos estamos refiriendo a un objeto creado de la clase “Ejemplo”.