2013-01-18 29 views
7

Câu hỏi của tôi là tại sao mọi người tạo cấu trúc thư mục với ít nhất một thư mục có tên edu và sau đó là một thư mục khác có tên là mit (ví dụ), theo sau là tất cả mã của họ trong thư mục con?Tại sao mọi người tạo cấu trúc thư mục như edu.mit.stk trong Java?

Đây có phải là một số loại mã định danh không?

Cấu trúc có thực sự được máy tính sử dụng vì bất kỳ lý do gì không - hoặc là nó chỉ được sử dụng để giúp người đọc?

Nếu có, tính năng này sẽ giúp người đọc như thế nào?

+0

http://docs.oracle.com/javase/tutorial/java/package/index.html –

+0

Ở đây có lũ câu trả lời trùng lặp ... –

+0

@SteveKuo Tất cả đều tốt - chỉ cần chờ trên bộ hẹn giờ ngay bây giờ. – sdasdadas

Trả lời

8

Điều này được thực hiện để ngăn chặn xung đột tên. Quy tắc mặc định là sử dụng đảo ngược tên miền của bạn làm cấu trúc gói

Do đó, Google sẽ giữ tất cả mã của họ trong các gói com.google.* trong khi Microsoft sẽ giữ mã của họ trong gói com.microsoft.*. Sau đó, nếu cả hai công ty thực hiện một lớp SearchEngine, bạn sẽ không có một va chạm đặt tên.

các tổ chức giáo dục làm điều tương tự, vì vậy bạn biết rằng bất kỳ mã trong một gói con edu.mit.* được khả năng phát triển bởi một nhóm tại MIT

4

Quy ước Java là sắp xếp các thư mục nguồn để phù hợp với cấu trúc phân cấp gói. Xem ví dụ Managing Source and Class Files.

Vì vậy, nếu bạn có một lớp học edu.mit.stk.Foo, thì nó sẽ được đặt là edu/mit/stk/Foo.java.

2

Đó là không gian tên. Nó ngăn ngừa xung đột tên lớp/gói. Thông thường, tên miền của công ty ngược lại (ví dụ: com.ibm.PackageName), nhưng giá trị của nó là tùy ý và có thể là bất kỳ thứ gì.

0

Theo quy ước, tên gói Java tuân thủ quy ước đặt tên miền theo thứ tự ngược lại. Do đó edu.mit là tiền tố thích hợp cho gói được phát triển tại mit.edu.

0

gói được đặt tên sử dụng tên miền Internet đảo ngược của họ để tránh xung đột tên. Vì vậy, một calss từ ecliplse có thể nằm trong một package com.eclipse.XYZClass

Từ Naming a package:

Các công ty sử dụng tên miền Internet đảo ngược của họ để bắt đầu tên-gói dụ, com.example.mypackage của họ cho một gói có tên mypackage được tạo bởi một lập trình viên tại example.com.

Để được nhận dạng đúng, gói phải nằm trong một flder có cùng tên. Vì vậy, nếu bạn có một lớp trong com.madbreaks.MyClass, bạn sẽ có cấu trúc thư mục như

com 
| 
+--madbreaks 
    | 
    +---MyClass 

Xem thêm: các Java tutorial on packages.

Các vấn đề liên quan