java基础_7_包
发布日期:2021-05-15 00:26:33 浏览次数:17 分类:精选文章

本文共 2802 字,大约阅读时间需要 9 分钟。

Java 包编程指南

包的概念

包在 Java 中类似于文件夹,用于组织管理类的结构。包名通常遵循倒 domain name 系统,例如 com.exampleAYOUT。包名中的每个部分都以 . 分隔,通常对应主域名、子域名和包路径。

包名规则

  • 包名必须只能包含英文字母、数字、.-
  • 都 služ EARUMBAD///// 要注意大小写,包名通常采用小写。
  • 包名的每个部分必须唯一地描述其命名空间。

包与类路径

  • 包名与类名结合即为完整类名。例如,类 PackageDemo 在包 com.example.java 中,其完整类名为 com.example.java.PackageDemo
  • Class files 存储在与类名对应的包路径下。例如,类 PackageDemo 的路径为 com/device/PackageDemo.class
  • 编译包含包名的类时,使用如下命令:
    javac -d classes -cp classes

    上一unwrap 同时生成对应的目录结构。

类路径与编译

  • 使用 javac 进行编译时,指定源文件路径及输出目录:
    javac -d classes xxx.java
  • 如果需要将生成的 class files 放在现有的 classpath 中,可以使用:
    javac -cp classes -d . xxx.java

示例分析

类与包的编译

  • 代码:
    package com.it18zhang.java;
    class PackageDemo {
    public static void main(String[] args) {
    System.out.println("hello world1");
    }
    }
  • 编译命令:
    javac PackageDemo.java
  • 编译成功后,生成的 PackageDemo.class 属于 `com(it18zhang.java) 包下。

类与包的运行

  • 如果无法通过直接调用 java PackageDemo 找到类,Need behind sure 类在包命名空间下。

  • 使用 javap 查看类的完整路径:

    javap PackageDemo
  • 运行命令:

    java com.it18zhang.java.PackageDemo

包下多个类

创建两个类

  • 代码:
    package com.fanyongjun.java;
    class PackageDemo1 {
    public static void main(String[] args) {
    System.out.println("hello world1");
    }
    public static void sayHello(String msg) {
    System.out.println(msg);
    }
    }
    class PackageDemo2 {
    public static void main(String[] args) {
    System.out.println("hello world2");
    }
    }
  • 编译命令:
    javac -d classes PackageDemo.java
  • 运行命令:
    java com.fanyongjun.java.PackageDemo1
    java com.fanyongjun.java.PackageDemo2

不同包间类访问

  • 类间访问需使用 import 语句:
    import com.fanyongjun.java1.PackageDemo1;
    class PackageDemo2 {
    public static void main(String[] args) {
    PackageDemo1.sayHello("hellojava1");
    System.out.println("hello world2");
    }
    }
  • 注意:访问其他包类时,确定访问类的方法是否为公k 权。

protected 访问控制

  • protected 的访问权限仅限于同一个包及其子类。

  • 示例:

    package com.fanyongjun.a;
    public class A {
    protected void sayHello(String msg) {
    System.out.println(msg);
    }
    }
    public class B {
    public static void main(String[] args) {
    A a = new A();
    a.sayHello("over");
    }
    }

default 访问控制

  • default 的方法或字段仅在同一包内可见。

  • 示例:

    package com.fanyongjun.e;
    public class E1 {
    default void sayE() {
    System.out.println("EEE");
    }
    }
    public class E2 {
    public static void main(String[] args) {
    E1 e = new E1();
    e.sayE();
    }
    }

打包成 JAR 文件

  • 将类打包为 JAR 文件,使用以下命令:

    jar cvf myjar.jar -c classes/ .
  • 额外参数说明:

    • -c:创建新 JAR 文件;
    • -v:详细输出操作日志;
    • -f:指定 JAR 文件名;
    • -C:指定来源目录;
  • 完整命令示例:

    jar cvf myjar.jar -c com/device/classes/ .

使用 JAR 文件

  • 使用 JAR 文件运行类:
    java -cp myjar.jar com.example.ClassName
  • 如果需要访问多个 JAR 文件,可以使用:
    java -cp myjar.jar;other.jar;_classes/ . com.example.ClassName
  • 直接运行 JAR 文件:
    java -jar myjar.jar

常见操作

  • 提取 JAR 文件
    jar -x myjar.jar
  • 更新 JAR 文件
    jar -u myjar.jar
  • 生成 JAR 文件的索引
    jar -i myjar.jar
  • 查找模块信息
    jar -d myjar.jar

通过以上方法,可以轻松管理 Java 包与类的编译、访问控制和打包过程。

上一篇:LaTeX基本结构和排版-3
下一篇:LaTeX基本字体设置-2

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月25日 20时22分49秒