Java Packages and Access Control
Java Packages and Access Control
1. Defining a Package
A package in Java is a namespace that organizes a set of related classes and interfaces.
Example:
package mypackage;
public class MyClass {
public void show() {
System.out.println("This is my package class.");
}
}
How to compile:
javac -d . MyClass.java
This will create a folder named 'mypackage' with the compiled .class file inside.
Benefits of packages:
- Avoids class name conflicts.
- Easier maintenance.
- Access protection and encapsulation.
2. Classpath
Classpath is the path used by JVM and Java compiler to locate user-defined classes and packages.
Example:
java -cp .;lib/utils.jar MyApp (Windows)
java -cp .:lib/utils.jar MyApp (Linux/Mac)
Java Packages and Access Control
3. Access Specifiers
Java provides 4 access specifiers that control the visibility of classes and members:
1. private:
- Accessible only within the same class.
3. protected:
- Accessible within the same package and by subclasses.
4. public:
- Accessible from any class in any package.
Example:
public class A {
private int a;
public int b;
protected int c;
int d; // default
}
4. Importing Packages
Syntax:
import packagename.ClassName;
import packagename.*; // imports all classes
Java Packages and Access Control
Example:
import java.util.Scanner;