包的使用及其创建

简介: 包的使用及其创建

前言

       java语言中,包在整个管理过程中发挥了重要的作用。使用包,可以有效地管理繁多的类文件,解决了类名重复的问题。在类中应用包和权限修饰符,可以控制他人对类成员的方法的访问。

类名冲突

      问题:重复创建相同的类,会导致调用类时,无法区分哪一个类

       解决方法:将两个同名、但不同方法的放置于不同的中。避免调用类时,无法判断调用哪一个类。

       举例:

               java API 文档中

                       java sql 包 中有 Date类

                       java util 包 中有 Date类

                               两个Date类,同名,不同方法

               调用Date类时,通过用不同的包来确定调用的是哪一个Date类

       注:自己创建了与API相同类名的类,会覆盖API的类。通过修改类名,解决 此类名冲突 的问题

               

public class Demo{
  public static void main(String[] args){
  String a = “123”;    //报错!!!
    }
}
class String{
    // 覆写了 API 中String类,API的String被覆盖
}

   此代码中,main方法中的String 数据类型 无法使用,报错。String类被覆写。

       解决方法:将代码中的 String类修改为  MyString (不论什么名,不和java API重名就行)

完整的类路径

       完整类名:包名.类名

                  eg: java.lang.String        包名:java.lang        类名:String

调用java API 中的类

               第一种方法:

                       1. import 关键字 导入对应 java API 中的类

                       2. new 关键字 实例化对象,调用其方法

import java.util.Date;
//导入指定的Date包,完整的类路径
public Class Demo{
    public static void main(String[] args){
        Date date = new Date();
        //实例化Date对象,调用其类中的方法
    }
}

   第二种方法:

                       直接用 java API 中的完整类名 new 关键字实例化 实现调用

                      使用场景:

                               通过第一种方法,同时导入 util 包中的 Date类  和   sql 包中的 Date 类,会报错系统无法判断Date实例化后,实现哪一个功能

                       解决方法: 通过  直接用java API中的完整类名 实例化 实现调用

public class Demo{
    public static void main(String[] args){
        java.util.Date date1 = new java.util.Date();
    java.sql.Date date2 = new java.sql.Date();
        // 通过 使用 完整类名 new 关键字 实例化对象,实现了调用 sql包 和 util包 中的两个Date类
    }
}

创建包

        创建包的名称规范:

               想表达为: com.java              包的命名为:java.com

       

        如何调用其他包和本包中多个同名类中的方法?

       情景:本包中有Action , Demo 类    package5包中也有Action类

                 在Demo类main方法中

                 实例化 Action

                 实例化 完整类路径 package5.Action

                 可实现在Demo类中,同时调用本包中Action类和 com.mingri包中Action 类的方法

     

       package5包中的Action类

package package5;
public class Action {
  public void action() {
  System.out.println("这里是 package5 包中的 action方法");
  }
}

  本包中的Action类

public class Action {
  public void action() {
    System.out.println("这里是 本包 中的 action方法");
  }
}

本包中的Demo类

public class Demo {
  public static void main(String[] args) {
    Action a1 = new Action();
    a1.action();
        //调用本包中的 Action()方法
    package5.Action a2 = new package5.Action();
    a2.action();
        //调用 package5 包中的 Action()方法
  }
}

  输出结果:

         以上为调用其他包和本包中多个同名类中的方法 的 实操展示

导入类包包中的类

import java.lang.Math

          包的名称: java.lang

                      类的名称: Math

 

        import 关键字导入静态属性

               使用方法:import static  静态属性

  没有导入静态属性

public class Demo{
  public static void main(String[] args){
  System.out.println();
    }
}

导入静态属性

import static java.lang.System.out; //Demo中的静态成员 out
public class Demo{
  public static void main(String[] args){
    out.println();  //和System.out.println(); 效果一样
    }
}
import java.util.*;

       注:导包中的 * 表示调取 java API 中 util 包里的所有类,避免了重复使用 import 关键字导入的繁琐

eclipse快捷键:shift+ctrl+o  自动补全所有代码中需要导入的包

总结

       以上就是”包的使用“的简单介绍。如果文章中有几处错误,或者未补充到的东西,欢迎在评论区中讨论,我会即使进行反馈的。

相关文章
|
固态存储 计算机视觉 异构计算
一起来学MediaPipe(一)人脸及五官定位检测
一起来学MediaPipe(一)人脸及五官定位检测
4808 0
一起来学MediaPipe(一)人脸及五官定位检测
|
JSON PHP 开发工具
PHP Monolog 日志的使用
PHP Monolog 日志的使用
1627 0
|
6月前
|
存储 弹性计算 大数据
2026年阿里云最便宜云服务器,38元、99元和199元云服务器区别及选择参考
本文聚焦阿里云2026年三款热门云服务器——38元轻量应用服务器、99元经济型e实例及199元通用算力型u1实例,通过核心参数对比、性能深度解析及适用场景梳理,为用户提供选型指南。38元款以“极简部署+200M峰值带宽”适配个人开发者;99元款凭借企业级SLA保障与灵活扩展性,成为初创企业稳健之选;199元款以“2核4G+5M带宽”的均衡配置,满足中小企业对性能与成本的双重需求。
|
10月前
|
机器学习/深度学习 资源调度 计算机视觉
I-ViT: 用于高效视觉Transformer推理的纯整数量化——论文阅读
I-ViT是首个专为视觉Transformer设计的纯整数量化方案,通过Shiftmax、ShiftGELU和I-LayerNorm实现全整数推理,避免浮点运算。在保持模型精度的同时,显著提升推理效率,实现3.7倍以上加速,推动ViT在边缘设备的高效部署。
885 9
I-ViT: 用于高效视觉Transformer推理的纯整数量化——论文阅读
|
SQL Java 数据库连接
mybatis trim标签的使用
mybatis trim标签的使用
675 0
|
算法 UED 异构计算
性能优化在嵌入式系统中的应用
性能优化在嵌入式系统中的应用
413 3
|
安全 网络架构
无线网络:连接未来的无形纽带
【10月更文挑战第13天】
875 4
|
机器学习/深度学习 JSON API
HTTP协议实战演练场:Python requests库助你成为网络数据抓取大师
在数据驱动的时代,网络数据抓取对于数据分析、机器学习等至关重要。HTTP协议作为互联网通信的基石,其重要性不言而喻。Python的`requests`库凭借简洁的API和强大的功能,成为网络数据抓取的利器。本文将通过实战演练展示如何使用`requests`库进行数据抓取,包括发送GET/POST请求、处理JSON响应及添加自定义请求头等。首先,请确保已安装`requests`库,可通过`pip install requests`进行安装。接下来,我们将逐一介绍如何利用`requests`库探索网络世界,助你成为数据抓取大师。在实践过程中,务必遵守相关法律法规和网站使用条款,做到技术与道德并重。
394 3