โ† Back to Courses
ยฉ 2025 sampathirao yoganandh
Week 9 ยท CO-2

Packages

Defining, Creating, Accessing, and Importing Java Packages  CO-2

What is a Package?

A package is a namespace that organises a set of related classes and interfaces โ€” similar to a folder on your file system. Packages prevent naming conflicts and provide access control.

Benefits

Types of Packages

TypeDescriptionExamples
Built-inProvided by Java SDKjava.lang, java.util, java.io
User-definedCreated by the programmercom.college, in.anits.cse

Creating Packages

The package statement must be the first line in a Java source file (before any imports or class declarations).

// File: in/anits/cse/Student.java
package in.anits.cse;

public class Student {
    private int    rollNo;
    private String name;

    public Student(int r, String n) { rollNo = r; name = n; }

    public void show() {
        System.out.println("Roll: " + rollNo + " | Name: " + name);
    }
}
# Compile with package structure
javac -d . in/anits/cse/Student.java

# This creates:  ./in/anits/cse/Student.class
# Run:
java in.anits.cse.Student

Importing Packages

Import styleExampleWhat it imports
Fully qualified namejava.util.Scanner sc = ...Single class, no import needed
Single type importimport java.util.Scanner;Only Scanner class
On-demand importimport java.util.*;All classes in java.util (NOT sub-packages)
Static importimport static java.lang.Math.*;All static members of Math
import java.util.Scanner;
import java.util.ArrayList;
import in.anits.cse.Student;

public class Main {
    public static void main(String[] args) {
        Student s = new Student(101, "Arjun");
        s.show();
    }
}
โš ๏ธ Important'import java.util.*' does NOT import sub-packages. For example, it does not import java.util.concurrent.* โ€” you must import sub-packages separately.

Access Modifiers

ModifierSame ClassSame PackageSubclassOther Package
privateโœ…โŒโŒโŒ
(default)โœ…โœ…โŒโŒ
protectedโœ…โœ…โœ…โŒ
publicโœ…โœ…โœ…โœ…
๐Ÿ“Œ Key PointUse private for data members (encapsulation), public for API methods, and protected for methods intended to be overridden by subclasses.

Built-in Packages

PackageContents
java.langAuto-imported; String, Math, System, Integer, Thread, Object...
java.utilScanner, ArrayList, HashMap, Collections, Date...
java.ioFile, FileReader, BufferedReader, FileWriter, InputStream...
java.netSocket, URL, HttpURLConnection, InetAddress...
java.sqlConnection, DriverManager, ResultSet, PreparedStatement...
java.awtGUI components: Button, Frame, Panel, Graphics...
javax.swingModern GUI: JFrame, JButton, JLabel, JTable...

Static Import

Static import allows you to use static members of a class directly without the class prefix.

import static java.lang.Math.*;
import static java.lang.System.out;

public class MathDemo {
    public static void main(String[] args) {
        // Without static import: Math.sqrt(16), System.out.println
        out.println(sqrt(16));   // 4.0
        out.println(pow(2, 10)); // 1024.0
        out.println(PI);         // 3.141592653589793
    }
}
๐Ÿ“„

Download PDF Notes

Save these notes as a PDF for offline reference

View / Download PDF