Java 패키지 요약
Java의 패키지는 트리 구조의 경로이기 때문에 폴더 , 로 이해할 수 있습니다. 패키지를 사용하여 특정 패키지 아래에 패키지를 선언할 때 .class도 배치해야 합니다. 패키지 이름을 딴 디렉터리에 있어야 합니다. 그렇지 않으면 클래스를 찾을 수 없습니다.
클래스를 패키지에 넣으려면 package 문을 사용해야 합니다. 실제로 package 문을 사용하지 않으면 클래스가 기본 기본 패키지에 배치됩니다. 프로그램, 실행 디렉터리 아래에 동일한 이름을 가진 .class 파일이 있을 수 없습니다.
또한 완전한 클래스 이름은 패키지 이름 + 클래스 이름입니다. 가져오기를 사용하지 않으면 클래스 사용 시 java.util.Date와 같이 완전한 클래스 이름을 제공해야 합니다. 편의를 위해 Java는 java.lang 두 패키지와 현재 파일의 기본 패키지를 자동으로 가져옵니다. 즉, (1) Java는 java.lang에서 클래스를 사용할 때 다른 패키지가 전체 클래스 이름을 제공할 필요가 없다고 규정합니다. lang package; (2) ) 기본 패키지의 클래스는 전체 클래스 이름을 지정하지 않고도 서로 함께(또는 동일한 패키지 아래에서) 사용할 수 있습니다.
패키지된 클래스와 패키지되지 않은 클래스 간의 상호 액세스에는 다음과 같은 규칙이 있습니다. (1) 패키지되지 않은 클래스는 패키지된 클래스에 액세스할 수 있으며 직접 가져올 수 있습니다. (2) 패키지된 클래스는 패키지되지 않은 클래스에 직접 액세스할 수 없습니다. 동일한 패키지에 접근권한이 있어야 하며, 패키지가 없는 클래스는 import할 수 없습니다. (3) 클래스 정의 시 다른 사람이 사용할 수 있도록 Bag을 정의해야 합니다.
Java 패키지는 (경로 관점에서) 계층적으로 보이지만 실제로는 그렇지 않습니다. 예를 들어 java.awt와 java.awt.color는 동일한 상태를 갖는 두 개의 패키지입니다. java.awt.color는 java.awt에 속하지 않습니다.使用 클래스 이름에 클래스를 사용할 때는 먼저 현재 패키지에서 이 클래스를 찾고, 가져오지 않은 패키지에서 찾으세요.
패키지의 구성원
일부 관련 클래스, 인터페이스, 열거형, 주석 유형, 그림과 같이 패키지의 클래스에서 사용하는 리소스 파일 등
패키지의 역할
(1) 관련 인터페이스와 클래스를 함께 모으세요
예를 들어 그래픽 처리 관련 모듈을 함께 묶는 패키지 그래픽
(2) 유형 간의 이름 충돌 방지: 패키지는 일종의 캡슐화 역할을 하며 클래스에 대한 다층 네임스페이스를 제공합니다.
(3) 패키지에 대한 외부 액세스 제어 구현
패키지 사용(패키지 선언, 가져오기)
일반적으로 패키지 사용은 세 단계로 요약할 수 있습니다. 클래스와 인터페이스를 패키지로 묶는 방법, 방법 패키지의 클래스를 사용하는 방법, 컴파일러가 소스 파일을 찾을 수 있도록 파일 시스템을 정렬하는 방법 등을 설명합니다.
1. 패키지 정의
1. 패키지 클래스 선언
패키지 이름은 일반적으로 모두 소문자이며 "."로 구분됩니다.
패키지 명명 규칙은 다음 링크를 참조하세요: https://segmentfault.com/a/1190000008711718
https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
패키지 선언은 다음과 같습니다. 원칙: (1) 패키지 문은 소스 파일의 시작 부분에 있어야 합니다. (2) 소스 파일에는 하나의 패키지 문만 있을 수 있습니다. (3) 패키지 이름은 모두 소문자여야 합니다. 클래스 및 인터페이스 이름과의 충돌을 피하십시오.
2. 패키지된 class
javac -d 디렉토리 소스 파일 이름.java
3. 패키지된 class
java 패키지 이름.classname
2을 실행합니다. 다른 패키지는 상대적으로 간단하며 코드의 클래스 이름과 함께 직접 사용할 수 있습니다. 다른 패키지 간의 액세스는 조건을 충족해야 합니다. 클래스가 다른 패키지의 클래스에서 액세스하려면 public으로 수정해야 합니다(참고: 사용). public으로 수정된 클래스는 파일명과 동일해야 합니다.) 일반적으로 서로 다른 패키지 간에 사용할 수 있는 세 가지 방법이 있습니다. (1) 클래스에 액세스하려면 전체 이름을 사용하고, (2) 클래스를 포함하는 전체 패키지를 가져옵니다.
1. Circle 클래스(공개 수정)가 있는 A 그래픽 패키지가 있다고 가정하면 이에 대한 아웃소싱 액세스는 다음과 같습니다.
graphics.Circle cir = new graphics.Circle();
2. 이 클래스 가져오기
위의 전체 이름을 사용하는 방법은 약간 번거롭습니다. 이 클래스를 축약하거나 자주 사용하려면 다음과 같이 할 수 있습니다:
import graphics.Circle; public class PackageTest { public static void main(String[] args) { Circle cir = new Circle(); } }
3. 전체 패키지를 가져옵니다
Line 클래스와 같이 패키지의 클래스를 더 많이 사용하려면 다음과 같은 모든 클래스를 가져올 수 있습니다. 패키지:
import graphics.*; public class PackageTest { public static void main(String[] args) { Circle cir = new Circle(); Line line = new Line(); } }
三、管理文件系统
许多Java平台的实现依赖于文件系统的等级制度 来管理源文件和class文件。我们一般把类、接口、枚举、注释类型放在可以反映包名的目录中,比如,Rectangle.java属于graphics类,我们就放在.....\graphics\Rectangle.java的路径上。同样,我们对其进行编译产生的class文件也要放在类似的目录上(这个目录最好不要和源文件放在一起),这样的好处是当我们要复用某个类时,就知道到哪去找了,JVM在运行程序时也知道去哪里找类。
比如,源文件放在:
class文件放在:
所以编译器、JVM在路径
CLASSPATH是JVM或Java编译器中的一个参数,它指定用户定义的类和包的位置。 可以在命令行上或通过环境变量设置。默认情况下,我们访问JDK标准API和扩展包时,无需设置查找位置。 而用户自定义的包和库,则必须设置。由于JVM会在当前目录下搜索,所以当我们的文件都在运行目录下时,也可以不设置CLASSPATH。
有关CLASSPATH可以参考:
https://en.wikipedia.org/wiki/Classpath_%28Java%29
https://en.wikipedia.org/wiki/Java_Classloader
关于Import
关于import,有三个注意的地方。
1、
首先是,Java的包表面上的等级问题。从路径上看,包似乎是分层的,但它们不是。 例如,Java API包括java.awt包,java.awt.color包,java.awt.font包等等。但是,java.awt.color包、java.awt.font包和其他java.awt.xxxx包并不属于java.awt。 前缀java.awt(The Java abstract window toolkit)的作用只是告诉开发者——和窗口有关的包都在这里面。但是包和包之间并不是包含关系。
当你导入java.awt.*时,会导入java.awt包中的所有类型,但它不会导入java.awt.color,java.awt.font或任何其他java.awt.xxxx包的所有类型。 如果你要使用java.awt.color中的类以及java.awt中的类,则必须同时导入导入这两个包:
import java.awt.*; import java.awt.color.*;
2、
其次是名字含糊不清的问题。当你导入的两个包中有一个类名字相同时,如果你继续采用缩写,就会出现一些问题。这时,你就要使用这个类的全名。比如,java.util、java.sql包中都有Date类,程序又同时导入了这两个包中的Date类。
import java.sql.*; import java.date.*;
3、static import
当我们需要频繁访问某个类的常量和静态方法,反复写它们的前缀(全名)可能不利于代码阅读。 静态import语句就提供了一种导入要使用的常量和静态方法的方法,这样您就不需要为其名称添加前缀。比如java.lang.Math类定义PI常量和许多静态方法,包括计算正弦,余弦,切线,平方根,最大值,最小值,指数等。
import static java.lang.Math.PI; import static java.lang.Math.cos; public class ImportTest { public static void main(String[] args) { double r = Math.cos(Math.PI * 2); double r1 = Math.cos(PI * 2); double r2 = cos(PI * 2); System.out.println(r+" "+r1+" "+r2); } }
当然,你也可以直接全部导入:
import static java.lang.Math.*;
应该注意的是,使用静态导入时要非常谨慎。 过度使用静态导入会导致代码难以阅读和维护,因为阅读者不知道某个特定的静态对象是哪个类的。 不过,当我们恰当地使用静态导入时,代码可以因为不用繁琐地写全名而更具可读性。
【推荐课程:Java视频教程】
위 내용은 Java 패키지 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Java의 난수 생성기 안내. 여기서는 예제를 통해 Java의 함수와 예제를 통해 두 가지 다른 생성기에 대해 설명합니다.

Java의 Weka 가이드. 여기에서는 소개, weka java 사용 방법, 플랫폼 유형 및 장점을 예제와 함께 설명합니다.

Java의 Smith Number 가이드. 여기서는 정의, Java에서 스미스 번호를 확인하는 방법에 대해 논의합니다. 코드 구현의 예.

이 기사에서는 가장 많이 묻는 Java Spring 면접 질문과 자세한 답변을 보관했습니다. 그래야 면접에 합격할 수 있습니다.

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

Java의 TimeStamp to Date 안내. 여기서는 소개와 예제와 함께 Java에서 타임스탬프를 날짜로 변환하는 방법에 대해서도 설명합니다.

캡슐은 3 차원 기하학적 그림이며, 양쪽 끝에 실린더와 반구로 구성됩니다. 캡슐의 부피는 실린더의 부피와 양쪽 끝에 반구의 부피를 첨가하여 계산할 수 있습니다. 이 튜토리얼은 다른 방법을 사용하여 Java에서 주어진 캡슐의 부피를 계산하는 방법에 대해 논의합니다. 캡슐 볼륨 공식 캡슐 볼륨에 대한 공식은 다음과 같습니다. 캡슐 부피 = 원통형 볼륨 2 반구 볼륨 안에, R : 반구의 반경. H : 실린더의 높이 (반구 제외). 예 1 입력하다 반경 = 5 단위 높이 = 10 단위 산출 볼륨 = 1570.8 입방 단위 설명하다 공식을 사용하여 볼륨 계산 : 부피 = π × r2 × h (4
