Introduce Java Packages and give examples
Java packages are a way to group related classes and interfaces together, providing a namespace to avoid naming conflicts and to control access. They help in organizing files within a project and can also be used to manage access levels for classes, interfaces, and their members.
Namespace Management: Packages help avoid naming conflicts. For example, two classes with the same name can exist in different packages.
Access Control: Packages provide a way to control access to classes and their members. Classes in the same package can access each other's package-private and protected members.
Reusability: Packages allow for the reuse of classes and interfaces across different projects.
Organization: They help in organizing classes and interfaces logically, making it easier to manage large codebases.
To create a package in Java, you use the package
keyword at the top of your Java source file. The package name is typically written in all lowercase to avoid conflicts with class names.
Creating a Package:
Let's create a package named com.example.utilities
.
// File: com/example/utilities/MathUtils.java
package com.example.utilities;
public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
public static int subtract(int a, int b) {
return a - b;
}
}
Using a Package:
To use the MathUtils
class from another class, you need to import it.
// File: Main.java
import com.example.utilities.MathUtils;
public class Main {
public static void main(String[] args) {
int sum = MathUtils.add(5, 3);
int difference = MathUtils.subtract(5, 3);
System.out.println("Sum: " + sum);
System.out.println("Difference: " + difference);
}
}
Java comes with a rich set of built-in packages. Some commonly used ones include:
java.lang: Contains fundamental classes like String
, Math
, System
, etc. This package is automatically imported.
String greeting = "Hello, World!";
int length = greeting.length();
java.util: Contains utility classes such as collections framework classes (ArrayList
, HashMap
, etc.), date and time facilities, and more.
import java.util.ArrayList;
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
java.io: Contains classes for input and output through data streams, serialization, and the file system.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class FileReadExample {
public static void main(String[] args) {
try {
File myFile = new File("example.txt");
Scanner myReader = new Scanner(myFile);
while (myReader.hasNextLine()) {
String data = myReader.nextLine();
System.out.println(data);
}
myReader.close();
} catch (FileNotFoundException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
Java packages are an essential part of the Java programming language, providing a structured way to organize code, manage namespaces, and control access. By using packages, developers can create modular and maintainable applications.