Java Packages & API
Organizing code and using built-in Java libraries
📦 What are Packages?
Packages organize related classes and interfaces into folders. They prevent naming conflicts, control access, and make code easier to find and maintain in large applications.
// Creating a package
package com.mycompany.utils;
// Importing from other packages
import java.util.ArrayList;
import java.util.Scanner;
public class MyClass {
// Class content here
}
Output:
Classes organized in structured folders
Key Package Concepts
Package Declaration
Define which package a class belongs to
package com.example.models;
Import Statement
Use classes from other packages
import java.util.List;
Wildcard Import
Import all classes from a package
import java.util.*;
Built-in Packages
Java's pre-built functionality
java.lang.String
java.util.ArrayList
🔹 Creating and Using Packages
Here's how to create and use your own packages:
// File: com/mycompany/models/Student.java
package com.mycompany.models;
public class Student {
private String name;
private int id;
public Student(String name, int id) {
this.name = name;
this.id = id;
}
public String getName() { return name; }
public int getId() { return id; }
}
// File: com/mycompany/main/Main.java
package com.mycompany.main;
import com.mycompany.models.Student;
public class Main {
public static void main(String[] args) {
Student student = new Student("Alice", 123);
System.out.println("Student: " + student.getName());
}
}
Output:
Student: Alice
🔹 Common Java API Packages
Java provides many built-in packages with useful classes:
🔸 java.lang (Automatically imported)
// No import needed for java.lang
String text = "Hello World";
System.out.println(text.length());
Math.max(10, 20);
Integer.parseInt("123");
🔸 java.util (Collections and utilities)
import java.util.ArrayList;
import java.util.Scanner;
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
🔸 java.io (Input/Output operations)
import java.io.File;
import java.io.FileWriter;
File file = new File("data.txt");
FileWriter writer = new FileWriter(file);
writer.write("Hello File!");
writer.close();
🔹 Package Access Modifiers
- public: Accessible from anywhere
- protected: Accessible within package and subclasses
- default (no modifier): Accessible within same package only
- private: Accessible within same class only
package com.example;
public class AccessExample {
public String publicField = "Everyone can see";
protected String protectedField = "Package + subclasses";
String defaultField = "Same package only";
private String privateField = "This class only";
public void demonstrateAccess() {
// All fields accessible within same class
System.out.println(publicField);
System.out.println(protectedField);
System.out.println(defaultField);
System.out.println(privateField);
}
}