Computer >> Máy Tính >  >> Lập trình >> Java

Tôi có thể nhập cùng một gói hai lần không? JVM có tải gói hai lần trong thời gian chạy không?

Trong Java, các lớp và giao diện liên quan đến nhau được nhóm lại dưới một gói. Gói không là gì ngoài một thư mục lưu trữ các lớp và giao diện của một khái niệm cụ thể. Ví dụ:tất cả các lớp và giao diện liên quan đến hoạt động đầu vào và đầu ra được lưu trữ trong gói java.io.

Tạo gói

Bạn có thể nhóm các lớp và giao diện bắt buộc thành một gói chỉ bằng cách khai báo gói ở đầu Lớp / Giao diện (tệp) bằng cách sử dụng từ khóa package as -

Ví dụ

package com.tutorialspoint.mypackage;
public class Sample{
   public void demo(){
      System.out.println("This is a method of the sample class");
   }
   public static void main(String args[]){
      System.out.println("Hello how are you......");
   }
}

Không giống như các chương trình khác để biên dịch một chương trình với một gói, bạn cần sử dụng –d tùy chọn của lệnh javac chỉ định đường dẫn đích mà bạn cần tạo gói.

Đầu ra

javac –d . Sample.java

Nếu bạn chưa đề cập đến đường dẫn đích, gói sẽ được tạo trong thư mục hiện tại.

Nhập một lớp

Để truy cập các lớp / giao diện được nhóm trong một gói, bạn cần thêm vị trí của gói trong biến classpath (hoặc đảm bảo gói nằm trong thư mục hiện tại) và nhập lớp / giao diện của nó bằng cách sử dụng từ khóa import .

Ví dụ

import com.tutorialspoint.mypackage.Sample;
public class Test{
   public static void main(String args[]){
      Sample obj = new Sample();
      obj.demo();
   }
}

Đầu ra

This is a method of the sample class

Nhập một lớp hai lần

Có, bạn có thể nhập một lớp hai lần trong Java, điều này không tạo ra bất kỳ vấn đề nào nhưng, bất kể số lần bạn nhập, JVM chỉ tải lớp một lần.

Ví dụ

Trong chương trình Java sau, chúng tôi đang cố gắng nhập lớp Mẫu của com.tutorialspoint.mypackage gói chỉ một lần.

import com.tutorialspoint.mypackage.Sample;
import com.tutorialspoint.mypackage.Sample;
public class Test{
   public static void main(String args[]){
      Sample obj = new Sample();
      obj.demo();
   }
}

Đầu ra

Sample class loaded
This is a method of the sample class