Java包的基本概述
第七章
7.1 包的基本概述
起因:
在我们设计一个程序的时候(尤其是多人合作),会写一些类来实现功能,但是往往会有重名的现象发生,为了解决这个问题,则专门设计了包。(还有其他作用,下述)
简单理解:不同的城市之间存在相同名字的小区,用城市名则可以区分这些重名小区,城市名就可以理解为上面的包,小区则可以看做是重名的类,通过这个前缀,解决了重名问题。
(1) 概念:
为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。
其实可以理解为就是文件夹,并且使用了树形目录的存储方式。
(2) 作用:
A:区分同名的类
B:对类进行分类管理
a:按照功能分——把功能相似或者相关的类或接口组织在同一个包中
b:按照模块分
(3) 包的定义:
package 包名;
//多级包用.分开
(4) 注意:
A:package语句必须在文件中的第一条有效语句
B:在一个java文件中,只能有一个package
(5)带包的编译和运行
掌握——自动式(Dos中)
javac -d . xxx.java
//可以使用 *.java代表当前目录下的所有源文件
//运行:
java 包名.HelloWorld
在ecplise、ideal等IDE中会自动的生成包名的结构
7.2导包
当你需要使用一个包中的成员的时候,我们就需要在 java 程序中导入该包
如果两个类在同一个包中,则不必导包
格式:
第一种:
//导入单个(推荐)
import 包名;
注意:我们用谁就导谁。(尽量少用星号* 如下)
第二种:
//导入java.io下的所有类(不推荐)
import java.io.*
注意:
//前两句是否能用最后一句代替
import java.lang.*;
import java.io.*;
import java.*;//无法代替上面两句,只能指向到单层的包中
注意:使用java.lang下的内容是不用导包的,具体可以查看 jdk-api
作用:
使用某一包中对应成员,并且简化书写
例如我们想使用java.io包下的BufferedReader
我们可以
import java.io.BufferedReader
BufferedReader in = new BufferedReader(new FileReader("foo.in"));
如果没有使用import导包
我们在使用java类库的时候,就需要写出该类的全路径名称,明显代码过于冗长
java.io.BufferedReader in = new java.io.BufferedReader(new FileReader("foo.in"));
7.3 权限修饰符
看完包的基本概念,我们也就理解了当初所讲权限修饰符的问题
| 本类 | 同一个包下 | 不同包下的子类 | 不同包下的无关类 | |
|---|---|---|---|---|
| public | Y | Y | Y | Y |
| protected | Y | Y | Y | |
| 默认 | Y | Y | ||
| private | Y | |||
| 这四种权限修饰符在任何情况下只能出现一种 |
结尾:
如果内容中有什么不足,或者错误的地方,欢迎大家给我留言提出意见, 蟹蟹大家 !_
如果能帮到你的话,那就来关注我吧!(系列文章均会在公众号第一时间更新)
在这里的我们素不相识,却都在为了自己的梦而努力 ❤
一个坚持推送原创Java技术的公众号:理想二旬不止
Java包的基本概述
Java包的基本概述的更多相关文章
- JAVA之旅(十一)——RuntimeException,异常的总结,Package,jar包,多线程概述
JAVA之旅(十一)--RuntimeException,异常的总结,Package,jar包,多程序概述 继续JAVA之旅 一.RuntimeException 在Exception种有一个特殊的子 ...
- Java 包的概述和讲解
2017-11-02 22:58:45 包(package):其实就是文件夹. 包的作用是对类进行分类的管理,并且区分不同的类名. 举例: 学生:增加,删除,修改,查询 教师:增加,删除,修改,查询 ...
- IBM Developer:Java 9 新特性概述
Author: 成富 Date: Dec 28, 2017 Category: IBM-Developer (20) Tags: Java (27) 原文地址:https://www.ibm.com/ ...
- Java NIO:NIO概述
Java NIO:NIO概述 在上一篇博文中讲述了几种IO模型,现在我们开始进入Java NIO编程主题.NIO是Java 4里面提供的新的API,目的是用来解决传统IO的问题.本文下面分别从Java ...
- (转载)Java NIO:NIO概述(一)
Java NIO:NIO概述 在上一篇博文中讲述了几种IO模型,现在我们开始进入Java NIO编程主题.NIO是Java 4里面提供的新的API,目的是用来解决传统IO的问题.本文下面分别从Java ...
- Android 虚拟机Dalvik、Android各种java包功能、Android相关文件类型、应用程序结构分析、ADB
Android虚拟机Dalvik Dalvik冲击 随着Google 的AndroidSDK 的发布,关于它的API 以及在移动电话领域所带来的预期影响这些方面的讨论不胜枚举.不过,其中的一个话题在J ...
- 在Eclipse工具里创建maven的web工程,在建立src/main/java包出现The folder is already a source folder.解决
1. 与创建普通java工程一样,点击右键找到New菜单,在弹出的界面输入maven ---->>点击maven Project------>>点击next 2 进入下一个界 ...
- android工程gen目录中R.java包名是怎么确定
新建一个工程,包名用的com.mythroad.adskiller, 后来觉得不好,又改成com.mythroad.adsinscepter,但是我发现gen下的R.java文件的包名还是原来的com ...
- JavaSE复习日记 : java包机制
这里是第一个文件,命名为JavaSE_01.java,我在这个文件里面声明了一个m1()方法,通过包机制,我将在另外一个文件夹里访问这个文件里的东西,确切的说是访问这个文件生成的一个class文件; ...
随机推荐
- jQuery.extend([deep], target, object1, [objectN])
jQuery.extend([deep], target, object1, [objectN]) 概述 用一个或多个其他对象来扩展一个对象,返回被扩展的对象.直线电机 如果不指定target,则给j ...
- 【説明する】KMP
KMP是一个困扰我很久的算法,听老师或者是学姐讲了差不多有4次了,但是还是搞不太懂,今天终于,终于,终于搞懂了! ——2017-10-29 Vanora 首先推荐一下KMP详解——July 读罢之后内 ...
- 字典-Python基础前传(9)
(一)Python中为什么要有字典 jacky说科学存在的逻辑只有两个: 1.解释问题 2.解决问题 我们明白了科学的逻辑,我们理解任何的知识和技能,都是很简单的 之前jacky跟大家说list因为太 ...
- 格符\b的使用示例:每隔1秒消去1个字符
/* 退格符\b的使用示例:每隔1秒消去1个字符 */ #include <time.h> #include <stdio.h> /*--- 等待x毫秒 ---*/ int s ...
- pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path && FileNotFoundError: [WinError 2] 系统找不到指定的文件。
C:\Users\k\Desktop\test>python test.py Traceback (most recent call last): File , in run_tesseract ...
- 【零基础】风格迁移之deep-painterly-harmonization的安装和使用
注:原项目名叫deep-painterly-harmonization,这里我缩写下称呼其为“DPH” 注:原项目GIT链接:https://github.com/luanfujun/deep-pai ...
- Jmeter Web 性能测试入门 (七):Performance 测试中踩过 Jmeter 的坑
脚本运行的过程中,大量request抛error,但没有地方能够查看request是因为什么error的. 原因:Jmeter默认禁掉了运行过程中每个request的具体response信息收集,只保 ...
- ERS:百科
ylbtech-ERS:百科 ERS=(Enterprises Run System)企业运行系统 企业运行系统-ERS,是继ERP系统之后的企业管理控制软件系统的终极形式,有着非常美好的市场前景,尤 ...
- ELK的安全解决方案 X-Pack(1)
安装 X-Pack 前必须安装 elasticsearch. Kibana.logstash,因为之前安装ELK选择的版本都是5.4.1,所以这次选择X-Pack的版本也要是5.4.1的 第一步:下载 ...
- labelme
项目:https://github.com/wkentaro/labelme?tdsourcetag=s_pcqq_aiomsg 说明:https://www.bilibili.com/video/a ...