Lassen Sie uns zuerst wissen, was eine Klasse und ein Paket in Java ist. Klasse in Java ist ein Modell zum Erstellen von Objekten. Das bedeutet, dass die Eigenschaften und Aktionen der Objekte in der Klasse geschrieben werden. Eigenschaften werden durch Variablen repräsentiert und Aktionen der Objekte werden durch Methoden repräsentiert. Eine Klasse enthält also Variablen und Methoden. Dieselben Variablen sind auch in den Objekten verfügbar, da sie aus der Klasse erstellt werden. Diese Variablen werden auch „Instanzvariablen“ genannt, da sie innerhalb des Objekts (Instanz) erstellt werden.

Illustration:

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);
   }
}

Ausgabe: 

Hey there! I am Vasanth Kumar
My age is 20

Hinweis: Hier wird das Schlüsselwort class verwendet, um eine Klasse zu deklarieren. Danach sollten wir einen Klassennamen schreiben. In der Klasse schreiben wir Instanzvariablen und Methoden.

Pakete in Java

In Java sind Pakete eine Sammlung von Klassen, Unterpaketen und Schnittstellen. dh ein Paket stellt ein Wörterbuch dar, das eine verwandte Gruppe von Klassen und Schnittstellen enthält. Wann immer wir eine Anweisung schreiben, sei es wie unten gezeigt, importieren wir alle Klassen des Pakets java.io.*. Hier ist java ein Verzeichnisname und io ein weiteres Unterverzeichnis darin. Und das * repräsentiert alle Klassen und Schnittstellen dieses io-Unterverzeichnisses. 

import java.io.*; 

Wir haben viele solcher Pakete, zum Beispiel java.lang, java.util , und es gibt viele weitere, in denen Klassen innerhalb des Pakets liegen. Um dies zu verwenden, nehmen wir die am häufigsten verwendeten Pakete, das Paket „lang“ für das Java-Design und das Paket „io“ für Eingabe-Ausgabe-Operationen.

Lassen Sie uns die Vorteile von Paketen in Java besprechen, die wie folgt sind:

  1. Pakete sind nützlich, um verwandte Klassen zu Schnittstellen in einer Gruppe anzuordnen. Dadurch werden alle Klassen und Schnittstellen, die dieselbe Aufgabe ausführen, im Paket zusammengefasst. Beispielsweise werden in Java alle Klassen und Schnittstellen, die Eingabe- und Ausgabeoperationen ausführen, im java.io-Paket gespeichert.
  2. Pakete verstecken die Klassen und Schnittstellen in einem separaten Unterverzeichnis.
  3. Die Klassen und Schnittstellen eines Pakets sind von den Klassen und Schnittstellen eines anderen Pakets isoliert.

Es gibt zwei Arten von Paketen in Java , wie aufgelistet:

  • Typ 1: Eingebaute Pakete
  • Typ 2: Benutzerdefinierte Pakete

Typ 1: Eingebaute Pakete

Dies sind die Pakete, die bereits in der Java-Sprache verfügbar sind. Diese Pakete stellen fast alle notwendigen Klassen, Schnittstellen und Methoden bereit, damit der Programmierer jede Aufgabe ausführen kann. Sie sind wie folgt:

java.lang
java.util
java.io
java.awt
java.net
java.applet
java.text
java.sql

javax.swing

Typ 2: Benutzerdefinierte Pakete

Genau wie die zuvor gezeigten eingebauten Pakete kann der Benutzer der Java-Sprache auch seine eigenen Pakete erstellen. Sie werden als benutzerdefinierte Pakete bezeichnet. Diese Pakete können auch in andere Klassen importiert und genauso wie eingebaute Pakete verwendet werden. 

Syntax : Beim Erstellen eines Pakets wird das Paketschlüsselwort verwendet

2.1.1 So erstellen Sie ein Paket

package package_name ;  

2.1.2 Erstellen eines Unterpakets innerhalb eines Pakets

package package_name.subpackagename ;

2.2 Kompilieren

C:\> javac -d . classname.java

2.3 Um das Programm auszuführen

C:\> java packagename.classname

Die obige Syntax gilt nur für die Windows-CMD-Shell, für Linux- und Mac-ZSH-Shell beziehen Sie sich auf die folgenden Medien, da Sie sie auf die gleiche Weise wie unten angegeben wahrnehmen

Implementierung:

Lassen Sie uns nun die Klasse in Pakete aufteilen

Schritt 1: Definieren Sie eine Klasse StudentData, die die folgenden Informationen eines Schülers enthält:

  • ID: Es ist eine Zeichenfolge, die die eindeutige ID jedes Schülers speichert
  • Name: Dies ist eine Zeichenfolge, die den Namen des Schülers angibt.

Beachten Sie, dass diese Felder als privat deklariert werden sollten.

Schritt 2: Erstellen Sie eine weitere Klasse StudentDataExtended mit einem privaten Attribut namens location. Es ist im Grunde eine Zeichenfolge, die den Standort des Schülers speichert.

Schritt 3: Definieren Sie nun in dieser Klasse eine Methode addDetails() Methode, die die Details der Schüler speichert; und eine Methode printDetails() , die die Details der Schüler in der sortierten Reihenfolge ihrer ID ausgibt.

Hinweis : Beide Klassen sollten in unterschiedlichen Paketen enthalten sein 

Illustration:

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

Ausgabe:

The Student Details are:
B100 Ramesh Hyderabad
B200 Ajay Hyderabad

Implementierung:

Lassen Sie uns nun echte lauffähige Beispiele finden, um das zu implementieren, was wir oben besprochen und veranschaulicht haben:

Beispiel 1-A:

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; }
}

Beispiel 1-B:

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 a message for asking input from the 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);
    }
}

AUSGANG: