Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Có thể import cùng một package hai lần không? JVM có load package hai lần lúc runtime không?

Trong Java, các lớp và giao diện liên quan đến nhau được nhóm dưới một package. Package thực chất là 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 nhập/xuất được lưu trong package java.io.

Tạo một package

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

Ví dụ

package com.tutorialspoint.mypackage;
public class Sample {
    public void demo() {
        System.out.println("Đây là phương thức của lớp sample");
    }
    public static void main(String args[]) {
        System.out.println("Xin chào, bạn thế nào......");
    }
}

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

Kết quả

javac -d . Sample.java

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

Import một lớp

Để truy cập các lớp/giao diện được nhóm dưới một package, bạn cần thêm vị trí của package vào biến classpath (hoặc đảm bảo package nằm trong thư mục hiện tại) và import lớp/giao diện của nó bằ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();
    }
}

Kết quả

Đây là phương thức của lớp sample

Import một lớp hai lần

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

Ví dụ

Trong chương trình Java sau, chúng ta thử import lớp Sample của package com.tutorialspoint.mypackage 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();
    }
}

Kết quả

Sample class loaded
Đây là phương thức của lớp sample