Namespaces
Organizing your code.
Namespaces (Packages)
Analogy: folder
Namespaces are like Folders on your Computer:
You can have a file named Resume.docx in your "Work" folder AND in your "Personal" folder. They don't conflict because they are in different Namespaces.
Without folders, you'd have to name them Work_Resume.docx and Personal_Resume.docx. Messy!
Why use Packages?
- Avoid Naming Conflicts: Two libraries can both have a
Userclass if they are in different packages. - Organization: Group related classes together (e.g.,
java.utilfor utilities,java.iofor input/output). - Access Control:
protectedmembers are only visible to classes in the same package.
The Code
Java (Packages)
// File: src/com/myapp/users/User.java
package com.myapp.users;
public class User {
// ...
}
// File: src/com/myapp/Main.java
package com.myapp;
import com.myapp.users.User; // Import to use
class Main {
User u = new User();
}
C# (Namespaces)
namespace MyApp.Users {
public class User {
// ...
}
}
Python (Modules)
Every file is a module.
# File: users.py
class User:
pass
# File: main.py
from users import User
u = User()