Icono play
Java
Estructura de proyecto, paquete y clase

Desarrollar una aplicación conlleva un cierto orden para que luego no nos volvamos locos, buscando cada módulo y cómo encajan entre ellos.

Para esto Java tiene una estructura de proyecto muy ordenada que nos ayuda a manipular con más seguridad y tranquilidad nuestros proyectos, paquetes, clases, métodos, etc.

¿Qué es un proyecto en Java?

Un proyecto en Java es una aplicación completa en este lenguaje y consta de una serie de carpetas organizadas con cierta lógica para mantener nuestro código ordenado y fácil de manipular, se corresponde a toda la estructura o esqueleto de nuestro desarrollo.

Dentro de esas carpetas vamos a ubicar archivos de texto con extensión .java que contienen las clases, interfaces, métodos, documentación, y demás archivos necesarios relacionados.

También puede incluir una carpeta de imágenes. 

Cada proyecto que desarrollemos, contendrá un código fuente y archivos relacionados para crear nuestro programa Java, y esto debe organizarse de manera eficiente, de ahí surge la importancia de la estructura de carpetas de un proyecto Java.

Estructura de carpetas de un proyecto en Java

Las carpetas cuentan con el siguiente orden:

Project [nombredelproyecto] - Carpeta principal del Proyecto

src        - Carpeta que contendrá el paquete principal que agrupa a los demás paquetes

Package [nombredelpaquete] - Aquí dentro pondremos todos los demás paquetes

Qué función cumple cada carpeta

La carpeta Project [nombredelproyecto], tiene como fin contener todo nuestro programa. Aquí se agrupan las clases que vamos a necesitar y otros paquetes.

La carpeta src se crea automáticamente en el momento que creamos el proyecto y dentro de ella crearemos los paquetes necesarios para nuestro desarrollo.

Dentro de Package [nombredelpaquete], están los sub paquetes y clases necesarias para la funcionalidad de nuestro software, podríamos decir que es el equivalente a las librerías de otros lenguajes.

Estructura de un archivo de un proyecto en Java

Package

Es la primera línea de nuestro código, la identificamos con el nombre que le pusimos al proyecto, por ejemplo “miApp”. 

Import

Generalmente es la segunda línea de nuestro código, aquí escribimos sentencias de llamada a otros paquetes externos o propios que se encuentran en otra ubicación dentro del programa general. Puede ser necesario que esté o no.

Declaración de una clase pública (public class)

Public class [nombredelaclase], dentro se encuentran un método main(), que es el método principal de todo proyecto y diferentes definiciones, sentencias e instancias.

Declaraciones de variables

El objetivo de estas líneas es inicializar variables con un nombre, un tipo de dato y generalmente un valor de inicio. El lugar donde se declaren va a depender del entorno de uso de cada variable, pueden ser antes del método main() o después del mismo.

Declaración del método main()

Es imprescindible su presencia, ya que es el punto de entrada a nuestra App, sin este método no funcionará nuestro programa, puede estar en la primera línea debajo de la public class o también bajo la declaración de variables, su ubicación dependerá de las declaraciones preexistentes necesarias.

Declaraciones de variables de instancias

Declaraciones de variables de instancias, para trabajar con un objeto dentro de nuestro programa, precisamos instanciar (crear) el objeto, al crearlo puede tener variables distintas a otro objeto de la misma clase, veamos un ejemplo sencillo:

Clase Auto

Atributos o variables

Color 

Modelo

Al instanciar el objeto Auto:

Auto Honda = new Auto();

le damos valores a esas variables:

color = rojo;

modelo = 1980;

Instanciamos otro objeto

Auto Chevrolet = new Auto();

color = naranja;

modelo = 1982;

color y modelo serían las variables de instancia, las mismas se declaran fuera del cuerpo de los métodos y dentro de la clase donde se instancian los objetos, son del tipo global y pueden ser utilizadas por cualquier método no estático que las llame. Su función es darle características únicas al objeto que las utiliza.

Definición de constructores

Aquí se define la subrutina cuya finalidad es inicializar o instanciar un objeto, la misma es necesaria para asignar los valores iniciales al nuevo objeto que se crea a partir de una clase. Puede haber uno o varios métodos constructores, si no definimos uno, Java crea uno por defecto sin parámetros que toma los valores del sistema.

Definición de métodos

Los métodos otorgan funcionalidad a los objetos de su clase, por ejemplo para la clase Auto, podríamos diseñar un método frenar().

Comentarios

Los comentarios nos permiten dejar asentadas pequeñas aclaraciones sobre nuestros programas para que sirvan como ayuda memoria en el futuro o para ayudar a otros programadores a saber qué hace nuestro código, no son obligatorios, pero su uso moderado es una buena práctica.  

Sus líneas serán ignoradas por el compilador. Se ubican en cualquier parte del programa.

Concepto de paquete y clase

Como ya vimos líneas más arriba, dentro de nuestro proyecto tendremos paquetes y clases que le darán funcionalidad a nuestra App.

Java se basa en la POO (Programación orientada a objetos), por lo tanto todo su código se incluye dentro de clases, las hay del tipo privadas, públicas y protegidas.

La clase (class) básicamente es una plantilla para la creación de un objeto, nos dirá cómo va a ser ese objeto, de que tipo, y qué variables y métodos serán comunes a ese tipo particular de instancia.

A cada clase le ponemos un nombre y le declaramos atributos y métodos que le darán forma a ese objeto. La clase se guardará en un archivo [nombredelaclase].java

public class Persona {

        //aquí dentro van los atributos y métodos de la clase

    //Atributos

             
    String nombre;

              
    int edad;

          **   //Métodos**

             Correr();
             
    Dormir();

}

Una clase public es una clase de libre acceso desde cualquier punto del programa.

Si la clase es private solo puede ser accedida desde la misma clase y nada más.

La clase protected es visible en la clase en donde se define y en cualquiera de sus subclases.

El paquete (package), además de darle un orden a nuestro código agrupando componentes relacionados entre sí, nos brinda un nivel adicional de seguridad, pues podemos especificar si nuestras clases, métodos o interfaces, van a ser accesibles por todos los componentes del software o solo por alguno de ellos.

Los paquetes se declaran de este modo:

package [nombredel paquete]

Esta sentencia debe ser la primera línea de nuestro fichero fuente, la primera sentencia ejecutable de nuestro código.

¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: