2013-04-24 39 views
5

Tôi bắt đầu học java và đã tạo ra chức năng hello world đầu tiên của tôi trong Eclipse. Tôi đã nhận thấy rằng hai chức năng sau, cả hai trong gói mặc định của thư mục src trong dự án java của tôi, dường như làm điều tương tự:Các lớp không khai báo trong Java có công khai không?

class HelloWorld { 
    public static void main(String[] args){ 
     System.out.println("Hello World!"); 
    } 
} 

public class HelloWorld { 
    public static void main(String[] args){ 
     System.out.println("Hello World!"); 
    } 
} 

Cả in thành công ' Chào thế giới!' vào bảng điều khiển.

Tôi đã đọc một chút về các loại lớp khác nhau, nhưng không chắc chắn loại lớp tôi sẽ khai báo với hàm đầu tiên. Sự khác biệt giữa hai chức năng này là gì? Liệu java làm cho lớp hello thế giới của tôi trong trường hợp đầu tiên công khai?

+4

chúng là gói riêng tư – soulcheck

Trả lời

10

Class không tự khai báo là publicpackage protected, nghĩa là chỉ có thể truy cập vào gói class trong gói đó.

Tóm tắt rất hữu ích về công cụ sửa đổi phụ trên stackoverflow. Thêm tại oracle

Ví dụ:

Vì vậy, giả sử bạn có cấu trúc gói sau:

com 
    stackoverflow 
    pkg1 
     public Class1 
     Class2 
    pkg2 
     OtherClass 

Class2 chỉ có thể được sử dụng bởi Class1, nhưng không phải bởi OtherClass

1

Đó là tất cả về khả năng hiển thị lớp học!

Lớp học có thể được khai báo với công cụ sửa đổi, trong trường hợp đó lớp đó hiển thị với tất cả các lớp ở mọi nơi. Nếu một lớp không có sửa đổi (mặc định, còn được gọi là gói tin), nó chỉ hiển thị trong gói riêng của mình

http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

0

Nó được bảo vệ lớp, bạn không thể truy cập mà lớp ra bên package.

Nếu bạn không chỉ định bất cứ điều gì của mình bằng mặc định bảo vệ

1

này đã cho tôi khoảng 2 giây để tìm trên Google:

http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

Trong câu trả lời cho câu hỏi của bạn, sửa đổi mặc định là package protected , có nghĩa là nó chỉ có thể được truy cập trong gói, nhưng lần sau hãy làm một số nghiên cứu trước khi đăng câu hỏi, vì bạn mất nhiều thời gian hơn để viết câu hỏi rằng nó sẽ phải tìm kiếm

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