包的使用及其创建

news2024/12/24 8:16:26

文章目录

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

前言

        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.coloradmin.cn/o/772845.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

旅游卡系统加盟代理软件开发

旅游行业的不断发展,越来越多的旅行社开始推出各种优惠卡来吸引游客。而随着智能手机的普及,开发一款旅行社优惠卡APP软件成为了一种必然的趋势。 该软件的主要功能是提供旅行社的各种优惠卡信息,包括优惠卡的种类、价格、使用范围、有效…

【代码随想录 | Leetcode | 第四天】数组 | 螺旋矩阵 | 螺旋矩阵 II

前言 欢迎来到小K的Leetcode|代码随想录|专题化专栏,今天将为大家带来螺旋矩阵的分享✨ 目录 前言59. 螺旋矩阵 II54. 螺旋矩阵总结 59. 螺旋矩阵 II 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n…

用微服务架构推进企业数字化转型升级

随着数字化转型进入深水区,企业应用程序建设需求急剧增长且变化多端,软件架构经历了单体结构、垂直架构、SOA架构,发展到了现在的微服务架构。 单体架构目前应用较多,部署容易,但单体式应用内部包含了所有需要的服务&…

四、DML-3.数据操作-删除

delete不能删除某个字段的值 若要删除某个字段的值,用update,将该字段设置为null 原数据表: 一、案例一 删除gender为女的员工 delete from employee where gender 女; 步骤一:输入delete命令并执行: 步骤二&#…

【Python】通过第三方库wxauto自动化操作微信电脑客户端

文章目录 一.简介二.wxauto提供的函数1.WxUtils类功能函数:2.WeChat类主要函数: 三.使用四.遇到的问题 一.简介 wxauto是一个Python第三方库,用于自动化操作微信电脑客户端通过wxauto,我们可以使用Python编写脚本,实现…

如何自学网络安全(黑客)

自学网络安全(黑客)需要掌握一系列的技能和知识,以下是一些学习网络安全的步骤: 基础知识:首先,你需要对计算机网络和操作系统有基本的了解。学习计算机网络的基本原理、网络协议和网络安全的基本概念。同时…

攻防世界-web-easytornado

题目描述:Tornado 框架。打开链接是一个简单的界面 1. 思路分析 看到有个/flag.txt,我们点击进去看下 发现传入了两个参数,一个是filename,还有一个是filehash 看到里面的内容,提示我们真正的flag在 /flllllllllllla…

报错 The server socket has failed to bind to [::] Pytorch中DDP中断训练报错

Pytorch中DDP :The server socket has failed to bind to [::]:29500 (errno: 98 - Address already in use)_cv_lhp的博客-CSDN博客 报错如下 The server socket has failed to bind to [::]:999 (errno: 98 - Address already in use) 这个错误是因为…

虚拟机挂载USB设备/USB serial 连接开发板

虚拟机挂载USB设备 1、添加USB设备 2、终端输入:sudo fdisk -l 查看Device设备: 3、创建挂载目录:mkdir /mnt/usb 4、执行挂载命令:sudo mount /dev/sdb1 /mnt/usb ,查看/mnt/usb目录下是否存在U盘中的数据: 5、用…

构建产品帮助中心时要避免的 8 个最常见错误

构建帮助中心是提供给客户和用户有价值信息的重要途径,但在建设过程中,有一些常见的错误需要避免。本文将介绍构建帮助中心时要避免的8个最常见错误,帮助您打造一个更优秀的帮助中心。 1. 以老式方式进行(FAQ/Q&A 页面样式&am…

【uni-app】1、分页组件z-paging介绍与使用

1、z-paging 介绍 1、一个 uni-app (opens new window)分页组件。 2、全平台兼容,支持自定义下拉刷新、上拉加载更多,支持虚拟列表,支持自动管理空数据图、点击返回顶部,支持聊天分页、本地分页&#xff0c…

AI对话+AI绘画,提高你的生产力

智心AI平台 使用 Nestjs 和 Vue3 搭建的 AIGC 生态社区 在线使用:用户端体验 当前特色支持功能 GPT3/4模型支持与控制联网对话支持思维导图生成支持openai DALL-E2绘画支持Midjourney绘画支持全套卡密系统支持在线支付支持完善的后台管理系统支持 源码购买或者…

Unity---Spine动画

目录 1.介绍 2.优点 3.spine导出的unity资源 4.导入 5.导入报错的解决方案 6.使用 7.代码示例 1.加载Spine骨骼动画: 2.控制Spine动画的播放: 3.暂停和恢复动画播放: 4.监听动画事件: 5.切换皮肤(换装&…

Rsync(二十七)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 二、特性 三、应用场景 四、数据的同步方式 五、rsync传输模式 六、rsync应用 七、rsync 命令 1. 格式 1.1 作为远程命令 1. 2 作为rsync服务 2. 选项 3.…

​通达信量比捉牛股指标源码​_通达信公式

JL5:MA(V,5); LB:DYNAINFO(17); 历史量比:IF(DYNAINFO(4)OANDDYNAINFO(5)HANDDYNAINFO(6)LANDDYNAINFO(7) C,DYNAINFO(17),V/JL5),LINETHICK,COLORYELLOW; STICKLINE(历史量比>1,历史量比,0,3,1)COLORRED; STICKLINE(历史量比<1,历史量比,0,3,0)COLO…

Debug调试的使用(IDEA 基础篇 喂奶级教程)

引言 在编程中&#xff0c;Debug&#xff08;调试&#xff09;是指在程序运行时&#xff0c;通过一系列的工具和技术&#xff0c;对程序进行逐行调试和分析&#xff0c;从而发现和修复程序中的错误和问题。Debug 功能是程序开发中非常重要的一个环节&#xff0c;它可以帮助开发…

JSON对象的stringify()和parse()方法使用

JSON对象的stringify和parse方法使用 JSON 格式JSON 对象JSON.stringify()1.JSON.stringify(value)2.JSON.stringify(value,replace)3.JSON.stringify(value,replace,space)4.注意的点 JSON.parse() JSON 格式 JSON 格式&#xff08;JavaScript Object Notation 的缩写&#xf…

一文读懂【TypeScript】的发展设计理念

导语&#xff1a; 在了解 TypeScript 之前&#xff0c;我们需要了解 什么是强类型语言和什么是弱类型语言&#xff0c;以及什么是静态类型&#xff0c;什么又是动态类型。 强类型不允许任意的隐式类型转换&#xff0c;而 弱类型 允许静态类型&#xff1a;一个变量声明时它的类型…

STM32使用高级定时器输出互补pwm波

STM32使用高级定时器输出互补pwm波 前言硬件和软件cubemx新建工程打开Debug模式配置时钟源六大时钟的作用选择Crystal/Ceramic Resonator&#xff0c;即使用外部晶振作为HSE的时钟源。 配置时钟配置高级定时器TIM8和通用定时器TIM3这里大概解释一下配置pwm输出用到的几个参数我…

ASEMI快恢复二极管MUR20100CTR在电子工程中的应用

编辑-Z 随着电子技术的日益发展&#xff0c;各种电子元件的使用场景与需求也在逐步扩大。今天&#xff0c;我们将聚焦于一款广泛应用于各类电路的二极管——MUR20100CTR&#xff0c;来详细解读其性能特征及应用。 一、MUR20100CTR二极管的主要特性 MUR20100CTR是一款极高性能的…