当前位置: 首页 > news >正文

类与对象(十四)----包package

包的作用

当两个程序员都要写一个类名相同的类时,会产生冲突。因此可以使用包来进行更高的管理

包的三大作用

  • 区分相同名字的类
  • 当类很多时,可以很好的进行管理
  • 控制访问范围

包的基本语法

package com.包名;
package 关键字 代表打包
com.包名 表示包的命名

包的本质

包的本质就是创建不同的文件夹/目录来保存类文件

在这里插入图片描述

包入门

使用IDEA解决,两个程序员都要写Dog类的的尴尬,并在另一个包里实例化两个Dag类
1-首先新建一个项目
在这里插入图片描述
2-新建一个包com.xiaoming 作为第一个Dog类的存放地址。COM会自动生成一个文件夹
在这里插入图片描述
3-再新建一个包 com.xiaoqiang 作为第二个Dog类的存放地址。由于前缀也是com所以xiaoqiang这个包也会在com文件夹下
在这里插入图片描述
4-在两个包下都创建Dog类
在这里插入图片描述
在这里插入图片描述
5-再从com文件夹下创建一个包,作为调用包
在这里插入图片描述

6-在use包内创建一个test类实例化另两个包的Dog类
在这里插入图片描述
注意点:创建第一个Dog类时,检测到其他包有同名类,会让你选择实例化哪个包的类。选择后会自动导入包,不用手动写导入。创建第二个包时,必须将具体是哪个包下的类写出来。
亦或者 第一个和第二个都完整写出类位置实例化 例如:
com.xiaoqiang.Dog xiaoqiang = new com.xiaoqiang.Dog();
com.xiaoming.Dog xiaoming = new com.xiaoming.Dog();

包的命名规则和规范

规则

  • 只能包含 数字,字母,下划线,小圆点.但不能以数字开头,不能是关键字和保留字

规范

一般是小写字母+小圆点
com.公司名.项目名.业务模块名
例如 com.alibaba.crm.user 这里就是阿里巴巴公司的CRM项目的用户模块
com.alibaba.crm.order 订单模块
com.alibaba.crm.utils 工具类模块

java中的常用包

  • java.lang. ----lang包是基本包,默认引入,不需要再引入
  • java.util. ----util包,系统提供的工具包,工具类,例如此包下的Scanner
  • java.net. ----网络包,网络开发
  • java.awt. ----java界面开发,GUI

如何导入包

语法:import 包;
引入包的目的是为了使用包下面的语法。
import java.util.Scanner;就只是引入了util包下的一个Scanner类
import java.util.*;表示将util包下的所有类都引入
一般都是要用哪个类就引入哪个类
小练习
使用util包下的Arrays类中的sort方法完成对一维数组的排序

package com.packageTeat;

import java.util.Arrays;

public class pagTest1 {
    public static void main(String[] args) {
        int [] arr = {54,4,32,42};
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
    }
}

注意事项和细节

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


相关文章:

  • Codeforces Round #820 (Div. 3)A. Two Elevators
  • 实现淘宝购物车RecyclerView或LIstView的嵌套选择的逻辑
  • (pt可视化)利用torch的make_grid进行张量可视化
  • MQTT协议规范总结
  • SAP EWM-拣货队列操作演示实例
  • 公众号查题功能接口系统使用教程
  • MySql5.7主从同步配置(gtid模式)
  • Linux文件系统管理
  • Python 程序的输出 | 第十一套(异常处理)
  • 每日算法刷题Day11-最大公约数、数组去重
  • 网络安全CTF竞赛模式、题目类别、所用工具小结
  • 80,90,00,房子最终砸在买房哪一代人手中?
  • 微服务项目:尚融宝(59)(核心业务流程:提现和还款(2))
  • jetson nano补充:根目录/usr刷机扩容 瘦身
  • Java工程师面试题
  • CentOS 7 防火墙操作
  • Date型的使用
  • ES6--对象的扩展
  • java中具有继承关系的类及其对象初始化顺序
  • Just for fun——迅速写完快速排序
  • log4j2输出到kafka
  • Redash本地开发环境搭建
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • vue学习系列(二)vue-cli
  • windows下使用nginx调试简介
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • ------- 计算机网络基础
  • 聊聊flink的BlobWriter
  • 码农张的Bug人生 - 见面之礼
  • 前端技术周刊 2019-02-11 Serverless
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 再谈express与koa的对比
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • # 数论-逆元
  • ()、[]、{}、(())、[[]]命令替换
  • (20050108)又读《平凡的世界》
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .naturalWidth 和naturalHeight属性,
  • .net 7 上传文件踩坑
  • .NET CORE 第一节 创建基本的 asp.net core
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET 使用配置文件
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET实现之(自动更新)
  • .Net下的签名与混淆