包的学习

● 包的三大作用

  1. 区分相同名字的类

  2. 当类很多时,可以很好的管理类 [看JavaAPI 文档]

  3. 控制访问范围

我们可以找到JDK安装的目录 ,从中找到src 也就是存放源码的目录 ,在里面可以看到util ,进入就可以看到util包中含有的类

包基本语法

package com.hspedu;

说明:

  1. package 关键字,表示打包.

  2. com.hspedu: 表示包名

 

● 包的本质分析(原理)

实际上就是创建不同的文件夹来保存类文件

计算机内部存放多个文件夹 ,例如文件夹AA存放bbb 其中存放 Dog类 Person类 等其他类

另外一个文件夹ccc存放文件夹ddd ,其中包含了类 Dog类Cat类 ,虽然和上面的Dog类有所重名但是二者并非在一个文件夹 ,即使重名也是可以的

快速入门案例

使用打包技术解决 ,不同包下创建重名类的问题

首先我们在IDEA中找到src ,右键选择创建package ,输入com.xiaoming ,创建之后此时同样的文件夹内部 ,就会出现一个com目录 ,点击进去就可以看到xiaoming的目录(也就是子包) ,因此 . 的意思就表示分级 ,最前面的就是一级目录(也就是com) ,之后创建的就是二级目录(也就是xiaoming )

 

在这之后 ,我们创建一个新的包叫做 com.xiaoqiang , 创建之后 ,可以看到 ,同名文件目录下 ,com的内部就多了一个xiaoqiang的目录

 

创建一个use的包 ,里面创建一个Test的类 ,之后试着输入 new Dog 此时就会提示 ,是调用哪一个包中的类 ,我们选择第一个也就是xiaoming的类

package com.use;
import com.xiaoming.Dog;
//可以看到自动将小明的Dog导入了进来

public class Test {
  public static void main(String[] args) {
      Dog dog = new Dog();
      System.out.println(dog);
      //此时打印出来的结果为: com.xiaoming.Dog@16d3586
      //这就是该类的hashcode码的十六进制的写法
  }
}

另外如果在导入一个包的类的情况下 ,再去导入另外一个包同名的类的话 ,IDEA就会自动将该类进行标注

com.xiaoqiang.Dog dog1 = new com.xiaoqiang.Dog();
System.out.println(dog1);
//如果不去标注仍然使用的是Dog的话 ,那么就会使用xiaoming包中的类而非是小强的类

同时导入不同的包同样的类是不允许的 ,因此要按照以上的做法

 

 

 

●包的命名

命名规则:

只能包含数字、字母、下划线、小圆点 . ,但不能用数字开头,不能是关键字或保留字 demo.class.exec1 : 错误 ,存在关键字 class demo.12a : 错误不能以数字开头 demo.ab12.oa

命名规范

一般是小写字母 + 小圆点一般是 com.公司名.项目名.业务模块名 比如: com.hspedu.oa.model; com.hspedu.oa.controller; 举例: com.sina.crm.user //用户模块 com.sina.crm.order // 订单模块 com.sina.crm.utils //工具类

● 常用的包

一个包下,包含很多的类 , java中常用的包有: java.lang.*// lang包是基本包,默认引入,不需要再引入. java.util.*//util 包,系统提供的工具包,工具类 ,使用Scanner java.net.*//网络包,网络开发 java.awt.*//是做java的界面开发 GUI

● 如何引入包

com.hspedu.pkg : Import01.java 语法: import 包; 我们引入一个包的主要目的是要使用该包下的类 比如import java.util.Scanner;就只是引入一个类Scanner。 import java.util.*;//表示将java.util 包所有都引入 案例: 使用系统提供 Arrays 完成 数组排序

package com.edu.pkg;

//import java.util.Scanner; //表示只会引入java.util包下的Scanner
//import java.util.*; //表示引入java.util包下的所有类都引入(导入)
//建议, 需要使用到哪个类就导入哪个类即可 ,不建议使用新的方式导入


import java.util.Arrays;

public class import01 {
  public static void main(String[] args) {
      //案例: 使用系统提供 Arrays 完成 数组排序
      int[] arr = {-1,20,2,13,3};
      //传统方法是自己编写使其进行排序
      //同时我们也可以使用系统提供的方法来完成排序
      Arrays.sort(arr);
      //输出排序结果
      for (int i = 0; i < arr.length; i++) {
          System.out.print(arr[i] + "\t");
      }
  }
}

● 注意事项和使用细节

1.package 的作用是声明当前类所在的包,需要放在class的最上面,一个类中 最多只有一句package 2.import指令 位置放在package 下面,在类定义前面,可以有多句且没有顺序要求。

 

 

类定义的进一步完善

class
类名{
成员变量/属性;
}

>>
class 类名{
成员变量/属性;
成员方法;
}

>>
class 类名{
成员变量/属性;
构造器
成员方法;
}

>>
package 包名
class 类名{
成员变量/属性;
构造器
成员方法;
}
 
posted @ 2022-04-23 17:06  comia  阅读(71)  评论(0)    收藏  举报