包的使用及其创建

文章目录

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

前言

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


总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

被B站用户高赞的广告文案:暴涨900万播放

今年6月,B站公布第一季度财报数据,B站日均活跃用户达9370万,月活3.15亿。在高月活的基础上,用户日均使用时长已经到了96分钟,日均视频播放量达41亿。 来源-B站 用户属性年轻、活跃度高已经成为B站典型的平台标签&…

使用java语言制作一个窗体(弹窗),用来收集用户输入的内容

前言 最近做的一个需求,有个逻辑环节是:需要从本地保存的xml文件中取出一个值,这个值是会变化的。然后项目经理就给我说,你能不能做一个小工具,让用户可以直接通过界面化操作将这个变化的值写入文件,不用再…

Python、Selenium实现问卷星自动填写(内含适配个人问卷的方法)

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Py…

Redis-持久化、主从集群、哨兵模式、分片集群、分布式缓存

文章目录 高级篇 - 分布式缓存 Redis集群0、单节点Redis的问题一、Redis持久化1.1 RDB 持久化1.1.1 基本介绍1.1.2 RDB的fork原理1.2.3 总结 1.2 AOF持久化1.3 RDB与AOF对比 二、Redis主从集群2.1 介绍2.2 搭建主从集群2.2.1 准备实例、配置2.2.2 启动2.2.3 开启主从关系2.2.4 …

Lua程序设计复习笔记

Lua程序设计 程序段:我们将Lua语言执行的每一段代码(例如,一个文件或交互模式下的一行)称为一个程序段(Chunk),即一组命令或表达式组成的序列。 一些词法规范:下划线大写 是特定变量…

轮播图,用vue来写一个简单的轮播图

轮播图,用vue来写一个简单的轮播图 写的很简单,就是一个小练习,哈哈哈,下面的几张图分别是轮播图的第一张,中间图,最后一张的效果图。 使用了vue 中的属性绑定 v-bind ,v-show 以及 事件监听 v-on 指令。 思…

pycharm新建分支并提送至GitHub

文章目录 前言pycharm创建本地分支Push至远程分支 前言 当我们写的项目代码越来越多时,一个master分支无法满足需求了,这个时候就需要创建分支来管理代码。 创建分支可以快速的回滚到某个节点的版本,也可以多个开发者同时开发一个项目&#…

xml.etree.ElementTree

python使用 xml.etree.ElementTree包的时候,对xml中的空标签进行了简写,想恢复成正常模式怎么弄

高并发的哲学原理(九)-- 细数四代分布式数据库并拆解

高并发的哲学原理(九)-- 细数四代分布式数据库并拆解 TiDB 和 OceanBase(主从、中间件、KV、计算与存储分离、列存储、CAP定理) 本文大约 15000 字,阅读需要 50 分钟。 上一篇文章啃硬骨头差点把我牙给崩了&#xff0c…

自动收小麦机(牛客2023萌新)

题目链接 示例1 输入 复制 4 1 2 1 1 4 5 2 2 2 3 4 输出 复制 10 说明 在第4格放出水流后,水流会流向第3格,由于第3格高度比第4格低,所以水流继续向左流向第2格,因为平地水流只能流2格,所以到达第2格后水流停…

GUI-Menu菜单实例

运行代码: //GUI-Menu菜单实例 #include"std_lib_facilities.h" #include"GUI/Simple_window.h" #include"GUI/GUI.h" #include"GUI/Graph.h" #include"GUI/Point.h"struct Lines_window :Window {Lines_window…

Nginx基础(复习理论篇)

一、Nginx基本概念 1、Nginx是什么 Nginx是一个高性能的Http和反向代理服务器,其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好。 Nginx专为性能优化而开发,性能是其最重要的考量&…

数字原生时代,奥哲如何让企业都成为“原住民”?

22年前,美国教育学家马克‧普伦斯基(Marc Prensky)出版了《数字原生与数字移民》(Digital Natives, Digital Immigrants)一书,首次提出了“数字原住民”和“数字移民”两大概念,用来定义跨时代的…

SPEC CPU 2006 在 CentOS 5.0 x86_64 古老系统测试【4】-O3 不支持 编译失败

gcc -O3 编译失败 结论:默认情况下SPEC CPU 2006 1.2 不支持 gcc -O3编译参数。

【PostgreSQL内核学习(二)—— 查询分析】

查询分析 查询处理查询分析查询处理与查询分析的关系查询分析执行流程Lex和YaccLex:Yacc:词法分析工具Lex语法分析工具Yacc使用Lex和Yacc的案例 词法和语法分析以SELECT语句为例讲解 PostgreSQL中查询语句如何被解析并生成分析树。 语义分析 声明&#x…

Burp Suite---渗透测试工具

文章目录 Burp SuiteBurp Suite入门设置代理HTTP的代理 Proxy(代理) Burp Suite 是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们高效地完成对Web应用程序的渗透测试和攻击。 Burp Suite由Java语言编写,基于…

Spring Security OAuth 2.0

1 概念 OAuth 2.0 到底是什么呢?我们先从字面上来分析下。OAuth 2.0 一词中的字母 “O” 是 Open 的简称,表示 “开放” , “Auth” 表示 “授权”,连在一起就表示 “开放授权”。 OAuth 2.0是一种授权框架,提供了一…

微服务架构Ribbon与OpenFeign的使用 【快速入门】

一、实现负载均衡🍉 1.什么是负载均衡🥝 通俗的讲, 负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上进行执行。 根据负载均衡发生位置的不同,一般分…

(Onenet)STM32L+BC20+MQTT协议传输温湿度,ADC,电压,GPS数据到Onenet物联网平台

1、材料准备 准备以下材料 2、设备连接 2.1 插入物联网卡 首先把BC20核心板从开发板上拆下来 然后将物联卡放置在BC20核心板内 物联卡放置完成将BC20核心板重新插入到开发板内(注意不要弄错方向) 同时接入天线 2.2 连接ST-Link仿真器 用3条杜邦线接…

SpringBoot使用Redis作为缓存器缓存数据的操作步骤以及避坑方案

1.非注解式实现 2.1使用之前要明确使用的业务场景 例如我们在登录时&#xff0c;可以让redis缓存验证码&#xff0c;又如在分类下显示菜品数据时&#xff0c;我们可以对分类和菜品进行缓存数据等等。 2.2导入Redis相关依赖 <dependency><groupId>org.springfra…