Java——包的定义及使用

举报
Winter_world 发表于 2021/09/29 01:15:01 2021/09/29
【摘要】 目录 1、包的定义 2、包的导入 3、系统常见包 4、总结 以下讲解的内容,概念清除即可,实际上现在使用的IDE开发工具,很多操作不需要我们手动去完成了。 1、包的定义 任何操作系统中,都有一个统一的共识:同一个目录下不能存在相同的文件名称,但是,实际开发中又很难避免命名冲突矛盾的问题,为此,项目中往往会引入包的概念,所...

目录

1、包的定义

2、包的导入

3、系统常见包

4、总结


以下讲解的内容,概念清除即可,实际上现在使用的IDE开发工具,很多操作不需要我们手动去完成了。

1、包的定义

任何操作系统中,都有一个统一的共识:同一个目录下不能存在相同的文件名称,但是,实际开发中又很难避免命名冲突矛盾的问题,为此,项目中往往会引入包的概念,所谓的包,存储时就是一个文件夹,在不同目录中可以存放相同的文件。

要想在Java中定义包,直接使用package关键字即可。

【举例】:定义包

package com.example.myapplication;
  

一旦程序中声明了包,就必须将生成的*.class文件保存在包里面,这个包并不是手工创建的,Java中专门提供了打包编译的操作:

如  javac -d . Hello.java

命令中的参数:

  • -d 生成目录,默认情况下是根据package定义的内容生成;
  • . 生成程序的保存路径,设置为 . 表示当前目录下保存;

此时若程序有包了,解释程序是必须加上包名称,eg: java 包名称.Hello

Java项目开发中,程序类必须要有包的定义才可以使用,没有包的类不存在,类的完整名称就是”包.类“。

2、包的导入

利用程序包可以将很多的*.class类归类保存,这样一来,可能存在包与包间进行类的互相调用问题,可以利用import语句解决。

【举例】:定义一个com.example.myapplication.util.Message类


   
  1. package com.example.myapplication.util;
  2. class Message {
  3. public void getInfo(){
  4. System.out.println("hello");
  5. }
  6. }

【举例】:定义一个com.example.myapplication.test.TestMessage类


   
  1. package com.example.myapplication.test;
  2. import com.example.myapplication.util.Message;
  3. public class TestMessage {
  4. public void printInfo(){
  5. Message msg = new Message();
  6. msg.getInfo();
  7. }
  8. }

此时编译,出现如下错误: Message在com.example.myapplication.util中不是公共的; 无法从外部程序包中对其进行访问.
出错的原因是,Message类的定义中使用的是默认的访问控制权限,其特点是只能被同一包中的类所访问,不能被外包所访问,所以,学习包的定义后,对于代码有一些规范化要求:后续写的类都要求写在包中,且*.java文件中智只会有一个public class声明。

【小结】:

  • public class定义要求文件名与类名称保持一致,而在*.java文件之中只允许有一个public class定义,如果该类要被不同的包所使用,必须使用public class声明;
  • class定义的类文件名称可以与类名称不一致,但那是编译之后每个class声明的类都会生成一个*.class文件,此类只能在一个包中使用。

【举例】:修改Message类的定义


   
  1. package com.example.myapplication.util;
  2. publi class Message {
  3. public void getInfo(){
  4. System.out.println("hello");
  5. }
  6. }

3、系统常见包

Java开发类库非常庞大,开发中也很多,比较常见的开发包如下:

  • java.lang:Object、String、Integer、Number都是这个包中定义的,从JDK1.1开始都是自动导入的;
  • java.lang.reflect:反射开发包,直接与框架开发有关系;
  • java.util:Java的工具包;
  • java.util.regex:正则表达式的开发包;
  • java.text:国际化程序支持包;
  • java.io包:数据流的开发包(Input、Output),前提:抽象类;
  • java.net:网络编程包,基本不用了;
  • java.sql:数据库的编程包;
  • java.awt、javax.swing:图形界面开发,现在基本也不用了;
      --最初JDK1.0时,只提供有java.awt开发包,可以实现图形界面的开发,但是最初的设计需要大量使用windows的系统函数;
      --JDK1.2(Java2)推出了轻量化的组件,有了swing开发组件;
         J#  Java代码改了,变成了VB的形式-》C#-》MFC,VC的图形界面。
  • java.applet.*:网页上嵌入的java程序,是Java发展的标记,现在基本也不用了;

4、总结

1)以后的程序都要写上package打包;

2)import语句往往不需要编写,前提是:使用开发工具;

 

作于202005022035,已归档

———————————————————————————————————

本文为博主原创文章,转载请注明出处!

若本文对您有帮助,轻抬您发财的小手,关注/评论/点赞/收藏,就是对我最大的支持!

祝君升职加薪,鹏程万里!

文章来源: winter.blog.csdn.net,作者:Winter_world,版权归原作者所有,如需转载,请联系作者。

原文链接:winter.blog.csdn.net/article/details/105850536

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。