包的使用及其创建

文章目录

  • 前言
  • 类名冲突
  • 完整的类路径
  • 创建包
  • 导入类包
  • 总结

前言

        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  自动补全所有代码中需要导入的包


总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/29729.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智安网络|保护数据资产:不同行业下的数据安全建设策略

在当今数字化时代,数据安全已经成为各行各业无法忽视的重要议题。保持良好网络卫生习惯并及时了解不断变化的网络威胁是企业中每个人的责任。企业、政府机构、医疗机构、金融机构以及其他组织和行业都面临着日益复杂和频繁的网络安全威胁。为了有效应对这些威胁&…

小白入门C#编写MVC登录小案例

一、C#编写MVC登录小案例 🚀1. 新建MVC项目。 🚀2. 在Models文件夹下创建一个User类,包含登录所需要的用户名和密码属性。 namespace MvcLogin.Models {public class User{public string UserName{get; set;}public string Password{get;se…

超声医疗高压功率放大器ATA-4315技术参数

超声波检查或超声诊断,是一种非侵入性的医学检查方法,它利用了声波的高频振动来观察和评估人体内部的器官和组织。它基于不同密度和组织结构中传播的原理。通过将ultrasound(超声波)传递到身体的特定区域,并记录反射回来的声波,我…

Python教程(3)——python开发工具vscode的下载与安装

Python的开发工具有很多款,很多都是非常好用的,其中vscode作为其中一款Python的开发工具,是非常轻量级的,今天我们来介绍一下vs code的下载与安装。 vscode的下载与安装 首先需要到vscode的官网,这个谷歌或者百度一下…

C语言 —— 浮点类型详解及 IEEE754 规定

【C语言趣味教程】(3) 浮点类型:单精度浮点数 | 双精度浮点型 | IEEE754 标准 🔗 《C语言趣味教程》👈 猛戳订阅!!! ​—— 热门专栏《维生素C语言》的重制版 —— 💭 写在前面:这是…

RocketMQ环境搭建

环境搭建 环境准备 下载地址: https://downloads.apache.org/rocketmq/4.9.5/安装 上传至服务器 mkdir /usr/soft #上传至此目录/usr/softmkdir /usr/soft 解压 cd /usr/soft unzip rocketmq-all-4.9.5-bin-release.zip移动 mkdir /usr/local/rocketmq cd /usr/soft mv r…

chatglm微调

chatGML 看到 【【官方教程】ChatGLM-6B 微调:P-Tuning,LoRA,Full parameter】 【精准空降到 15:27】 https://www.bilibili.com/video/BV1fd4y1Z7Y5/?share_sourcecopy_web&vd_sourceaa8c13cff97f0454ee41e1f609a655f1&t927 记得看…

Elasticsearch 集群某一节点修改 IP 后无法启动问题复盘

1、集群环境及问题描述 集群版本:6.8.X集群节点:5节点(三个节点为主数据节点,另外两个独立数据节点)。问题描述:由于IP冲突,修改了一台服务器的IP,然后5台配置改了一下一次重启&…

数据库用户管理

数据库用户管理 一、创建: 1.新建用户: CREATE USER 用户名来源地址 [IDENTIFIED BY [PASSWORD] 密码];‘用户名’:指定将创建的用户名. ‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机…

After Effects(AE)如何选择电脑硬件?

处理器(CPU) 处理器(或 CPU)是 After Effects 工作站最重要的部件之一。虽然 GPU 加速越来越受欢迎,但现在您选择的 CPU 通常会对整体系统性能产生更大的影响。然而,After Effects 使用 CPU 的方式意味着仅…

什么是渲染?一文看懂,萌新赶紧收藏码住!

十四五规划提出“加快数字化发展,建设数字中国”,数字技术的快速发展,从起初的内容创建到最终的效果呈现,都离不开渲染技术。目前,渲染技术被广泛应用于教育、医疗、影视动画、建筑设计等多个领域。它能有效满足用户对…

使用模板创建【vite+vue3+ts】项目出现 “找不到模块‘vue‘或其相应的类型声明” 的解决方案

问题描述 项目前台需要使用Vue3Ts来写一个H5应用,然后我用模板创建 npm create vitelatest vue3-vant-mobile -- --template vue-ts创建完后进入HelloWorld.vue,两眼一黑 解决办法一 npm i --save-dev types/node然后在tsconfig.json的"compi…