首页 > 编程语言 >java中包(package)

java中包(package)

时间:2023-02-04 23:33:20浏览次数:45  
标签:中包 MyPrinter java package Res encoding wlk 2023

java中包(package)

1、java中包的了解:在java中的包和我们文件系统层次结构是一一对应的。

2、如果在java源文件中没定义package语句,那么该类就在默认包或者叫无名包中。

3、如果在java源文件中定义了package语句,那么编译出来的class文件要放到package中声明的包名对应的文件系统层次结构中去。

4、java包名,不仅仅是以目录结构来存放类文件,同时也给这个类添加了限定名,我们。

如下是java包入门案例:

 1 E:\Res\2023>javac -encoding utf-8 MyPrinter.java
 2 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
 3 
 8 E:\Res\2023>java MyPrinter
 9 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
10 错误: 找不到或无法加载主类 MyPrinter
30 E:\Res\2023>mkdir wlk35 
36 E:\Res\2023>move MyPrinter.class wlk
37 移动了         1 个文件。
38 
39 E:\Res\2023>cd wlk52 
53 E:\Res\2023\wlk>java MyPrinter #java包名,不仅仅是以目录结构来存放类文件,同时也给这个类添加了限定名
54 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
55 错误: 找不到或无法加载主类 MyPrinter
56 
57 E:\Res\2023\wlk>java wlk.MyPrinter #这里虽然java后加了全类限定名,但是不能在包名对应的文件目录里执行
58 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
59 错误: 找不到或无法加载主类 wlk.MyPrinter
60 
61 E:\Res\2023\wlk>cd ../
62 
63 E:\Res\2023>java wlk.MyPrinter 
64 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
65 java中包的学习(package)
66 
67 E:\Res\2023>

java后的限定名除了可以用点(.)外,还可以用斜杆(/),见如下:

E:\Res\2023>java wlk/MyPrinter
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
java中包的学习(package)

E:\Res\2023>

5、java中包名可以多个层级结构,案例如下:

 1 package com.zls.wlk;
 2 
 3 public class MyPrinter{
 4     public static void main(String[] args){
 5         MyPrinter myPrinter = new MyPrinter();
 6         myPrinter.print("java中包的学习(package)");
 7     }
 8     public void print(String str){
 9         System.out.println(str);
10     }
11 }

运行结果如下:

 1 E:\Res\2023>javac -encoding utf8 MyPrinter.java
 2 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
 3 
 4 E:\Res\2023>md com\zls\wlk
 5 
 6 E:\Res\2023>move MyPrinter.class com\zls\wlk\
 7 移动了         1 个文件。
 8 
 9 E:\Res\2023>java com.zls.wlk.MyPrinter
10 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
11 java中包的学习(package)
12 
13 E:\Res\2023>

6、我们执行有包名的类,需要手动创建包名对应的目录结构,很麻烦,怎么解决呢?

 1 E:\Res\2023>del wlk
 2 E:\Res\2023\wlk\*, 是否确认(Y/N)? Y
 3 
 4 E:\Res\2023>javac -d . MyPrinter.java #关于有包名的类编译的时候,可以加-d选项,使得编译时自动把类放到对应的目录结构里。
 5 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
 6 
 7 E:\Res\2023>java com.zls.wlk.MyPrinter
 8 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
 9 java中包的学习(package)
10 
11 E:\Res\2023>

7、也可以把编译后的字节码文件放到任意目录下:

 1 :\Res\2023>d:
 2 
 3 D:\>md temp
 4 
 5 D:\>cd temp
 6 
 7 D:\temp>e:
 8 
 9 E:\Res\2023>javac -encoding utf8 -d D:\temp MyPrinter.java
10 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
11 
12 E:\Res\2023>java com.zls.wlk.MyPrinter
13 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
14 错误: 找不到或无法加载主类 com.zls.wlk.MyPrinter
15 
16 E:\Res\2023>set classpath=D:\temp #注意:带有包名的类在执行是设置classpath时,路径写到包名目录结构的父目录
17 
18 E:\Res\2023>java com.zls.wlk.MyPrinter
19 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
20 java中包的学习(package)
21 
22 E:\Res\2023>

8、在工作中,包名都是用公司域名倒过来写(假如有个域名是:http://wlk.zls.com,那么包名就可以写成com.zls.wlk)

好了,今天就说到这里,下课。

 

标签:中包,MyPrinter,java,package,Res,encoding,wlk,2023
From: https://www.cnblogs.com/wlk27/p/17092637.html

相关文章

  • java学习day01—Markdown学习
    Markdown学习标题三级标题四级标题字体Hello,World!Hello,World!Hello,World!Hello,World!引用选择狂神说java,走向人生巅峰分割线图片超链接点击跳转到......
  • Java抽象类
    在java中用abstract关键字声明的类称为抽象类。它可以有抽象和非抽象方法(带主体的方法)。在学习java抽象类之前,先来了解java中的抽象。Java中的抽象抽象是隐藏实现细......
  • Java接口
    java中的接口是类的蓝图。它有静态常量和抽象方法。java中的接口是一种实现抽象的机制。接口中只有抽象方法而不是方法体。接口用于在Java中实现抽象和多重继承。Java......
  • java中使用xml基础
    XML概述XML的全称为(EXtensibleMarkupLanguage),是一种可扩展的标记语言标记语言:通过标签来描述数据的一门语言(标签有时我们也将其称之为元素)可扩展:标签的名字是......
  • IDEA中如何利用Maven给JAVA添加第三方库和打包问题
    从今天开始,遇到技术上的问题都会在这里写下来,虽然有可能都是小儿科问题,但是自己成功解决出来,还是很开心的。从很久之前,我就在java导包的过程中遇到问题,他不像python那......
  • java学习
    java学习快捷键1.psvm和sout(打印输出的快捷键)2.在使用浮点类型时注意浮点数是一个近似值,在处理银行业务时需要使用的是BigDecimal数学工具类3.在强制转换类型的时候......
  • Java多线程01——多线程的创建
    1进程和线程进程:进程是并发执行程序在执行过程中,资源分配和管理的基本单位。进程可以理解为一个应用程序的执行过程,应用程序一旦执行,就是一个进程。线程:线程是进程的一个执......
  • java基础:数组
    概述数组是相同类型数据的有序集合可以是任何类型每一个数据被称为该数组的一个数组元素,可以使用下标访问每一个元素下标从0开始,按顺序递增数组长度是固定的,创建后不......
  • java基础:方法
    方法方法是解决一类问题的步骤的有序组合包含于类/对象中设计原则方法的原子性:一个方法只实现一个功能定义与调用方法的组成:方法的调用若方法返回值为空......
  • Java instanceof运算符
    javainstanceof运算符用于测试指定对象是否是指定类型(类或子类或接口)的实例。java中的instanceof也称为类型比较运算符,因为它将类型与实例进行比较。它返回true或fal......