Java: divide las clases en paquetes con ejemplos

Primero sepamos qué es una clase y un paquete en Java. La clase en Java es un modelo para crear objetos. Significa que las propiedades y acciones de los objetos se escriben en clase. Las propiedades están representadas por variables y las acciones de los objetos están representadas por métodos. Entonces, una clase contiene variables y métodos. Las mismas variables también están disponibles en los objetos porque se crean a partir de la clase. Estas variables también se denominan variables de instancia’  porque se crean dentro del objeto (instancia).

Ilustración:

class Human 
{
    // Properties --> Instance variables
    String name;
    int age;

    // Actions --> methods
    void speak() 
    {

        System.out.println("Hey there! I am " + name);
        System.out.println("My age is " + age);
    }
}

Producción:

Hey there! I am Vasanth Kumar
My age is 20

Nota: Aquí la palabra clave class se usa para declarar una clase. Después de esto, debemos escribir un nombre de clase. En la clase, escribimos variables de instancia y métodos.

Paquetes en Java

En Java, los paquetes son una colección de clases, subpaquetes e interfaces. es decir, un paquete representa un diccionario que contiene un grupo relacionado de clases e interfaces. Cada vez que escribimos una declaración, ya sea como se muestra a continuación, estamos importando todas las clases del paquete java.io.*   . Aquí, java es un nombre de directorio e io es otro subdirectorio dentro de él. Y el * representa todas las clases e interfaces de ese subdirector io. 

import java.io.*; 

Tenemos muchos paquetes de este tipo, por ejemplo, java.lang, java.util, y existen muchos más dentro de los cuales sus clases d se encuentran dentro del paquete. Para usarlo, tomemos los paquetes más utilizados, que son el paquete ‘lang’ para el diseño de Java y el paquete ‘io’ para operaciones de entrada y salida.

Discutamos las ventajas de los paquetes en java hat son las siguientes:

  1. Los paquetes son útiles para organizar clases relacionadas con interfaces en un grupo. Esto reúne todas las clases e interfaces que realizan la misma tarea en el paquete. Por ejemplo, en Java, todas las clases e interfaces que realizan operaciones de entrada y salida se almacenan en el paquete java.io.
  2. Los paquetes ocultan las clases y las interfaces en un subdirectorio separado.
  3. Las clases e interfaces de un paquete están aisladas de las clases e interfaces de otro paquete.

tipos de paquetes 

Hay dos tipos de paquetes en Java como se enumeran:

  • Paquetes incorporados
  • Paquetes definidos por el usuario

Tipo 1: paquetes incorporados

Estos son los paquetes que ya están disponibles en el lenguaje Java. Estos paquetes proporcionan casi todas las clases, interfaces y métodos necesarios para que el programador realice cualquier tarea. Son los siguientes:

  • java.idioma
  • java.util
  • java.io
  • java.awt
  • javax.swing
  • java.net
  • java.applet
  • java.texto
  • java.sql

Tipo 2: paquetes definidos por el usuario

Al igual que los paquetes incorporados que se muestran anteriormente, el usuario del lenguaje Java también puede crear sus propios paquetes. Se denominan paquetes definidos por el usuario. Estos paquetes también pueden importarse a otras clases y usarse exactamente de la misma manera que los paquetes integrados. 

Sintaxis: al crear un paquete, se usa la palabra clave del paquete

2.1.1 Para crear un paquete

package package_name ;  

2.1.2 Para crear un subpaquete dentro de un paquete

package package_name.subpackagename ;

2.2 Compilar

C:\> javac -d . classname.java

2.3 Para ejecutar el programa 

C:\> java packagename.classname

La sintaxis anterior es válida solo para Windows CMD shell, para rlinux y mac zsh shell, consulte los medios a continuación como se percibe de la misma manera que se proporciona a continuación.

Implementación:

Ahora dividamos la clase en paquetes.

Paso 1: Defina una clase StudentData que contenga la siguiente información de un estudiante: 

  • ID : es una string que almacena la identificación única de cada estudiante
  • Nombre : Es una string que indica el nombre del estudiante.

Tenga en cuenta que estos campos deben declararse privados.

Paso 2: cree otra clase StudentDataExtended con un atributo privado llamado ubicación (una string que almacena la ubicación del estudiante).

Paso 3: Ahora, en esta clase, defina un método addDetails() que almacene los detalles de los estudiantes; y un método printDetails() que genera los detalles de los estudiantes en el orden ordenado de su identificación.

Nota: ambas clases deben estar en diferentes paquetes. 

Ilustración:

Enter the number of students : 2

Enter the details of Student 1 (id, name, location):
B200 Ajay Hyderabad

Enter the details of Student 2 (id, name, location):
B100 Ramesh Hyderabad
The Student Details are:
B100 Ramesh Hyderabad
B200 Ajay Hyderabad

Ejemplo

Java

// Java Program Illustrating Dividion of Classes into
// Packages where Class StudentData
// which creates first package i.e pack1
 
// Importing package
package pack1;
 
// Main class
public class StudentData {
 
    private String id;
    private String name;
 
    // Method 1
    public void addStudentData(String id, String name)
    {
        // This keyword refers to current instance itself
        this.id = id;
        this.name = name;
    }
 
    // Getter setters Methods
 
    // Use getter methods so that we can
    // access private members for other packages
    public String getId() { return id; }
    public String getName() { return name; }
}

Java

// Java Program Illustrating Dividion of Classes into
// Packages where Class StudentDataExtended creates
// Second package- pack2 and uses the first package
 
// Importing packages
package pack2;
// Importing required classes
// from pre-defined packages
import java.io.*;
import java.lang.*;
import java.util.*;
import pack1.*;
 
// Main class
class StudentDataExtended extends StudentData {
 
    private String location;
    public void addDetails(String id, String name,
                           String location)
    {
        addStudentData(id, name);
 
        // This keyword refers to current object itself
        this.location = location;
    }
 
    // Method 1
    public static void
    printDetails(TreeMap<String, StudentDataExtended> map)
    {
 
        // Iterating via for each loop
        for (String a : map.keySet()) {
 
            StudentDataExtended student = map.get(a);
 
            // Print ID and name of student
            System.out.println(student.getId() + " "
                               + student.getName() + " "
                               + student.location);
        }
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
 
        // Display message for asking input from user
        System.out.print("Enter the number of students : ");
 
        // Scanner class to read user input
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
 
        String buffer = sc.nextLine();
 
        int count = 1;
        // Creating a TreeMap
        TreeMap<String, StudentDataExtended> map
            = new TreeMap<>();
 
        while (n != 0) {
 
            System.out.println(
                "Enter the details of Student " + count
                + " (id, name, location):");
 
            count++;
 
            String details = sc.nextLine();
            String studentInfo[] = details.split(" ");
 
            StudentDataExtended student
                = new StudentDataExtended();
 
            student.addDetails(studentInfo[0],
                               studentInfo[1],
                               studentInfo[2]);
            map.put(studentInfo[0], student);
            n--;
        }
 
        // Display message
        System.out.println("\nThe Student Details are:");
 
        // Calling above method 1 to
        // print details of the students
        printDetails(map);
    }
}

Producción:

Publicación traducida automáticamente

Artículo escrito por bhukyavasanthkumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *