7.包

7.1包(package)

  • 对类文件进行分类管理。
  • 给类提供多层命名空间。
  • 写在程序文件的第一行。
  • 类名的全称是:包名.类名。
  • 包也是一种封装形式。

利用命令行自动生成文件夹格式:D:\java0217\day10\javac -d . PackageDemo.java

"-d":指定这个包所存放的位置。

".":代表当前目录。可以不指定当前。

一般写项目必须先写包再写类,因为写项目有N多类组成,必须进行有效的区分,代表着每组类不同的功能。

以前没有写是因为使用了Java中默认的包机制,只要在当前目录下没有指定包,Java就把当前目录作为默认包存在。

包的出现可以让类文件(源文件)和运行文件相分离。好处在于,只要把运行文件拷给对方就能用了。没有必要给源文件。

当想要使用包中的一个类的时候,classpath只要指向包的父目录即可。

包与包之间的访问

1、当调用其他包的类使,类的全名是:包名.类名

2、packa包不在当前目录下,需要设置classpath告诉JVM去哪里找指定事物packa包。

3、有了包范围变大,一个包中的类要被访问,必须要有足够大的权限。所以要被public修饰。

4、类共有后,被访问的成员也要共有,才可以被访问。

总结:

1、包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。

2、不同包中的子类还可以直接访问父类中被protected权限修饰的成员。  

包与包之间可以使用的权限只有两种:public ,protected。

  public protected default private
同一个类中 OK OK OK OK
同一个包中 OK OK OK  
子类 OK OK    
不同包中 OK      

导入import

为了简化类名的书写,使用一个关键字,import。

import导入的是包中的类。

import packb.haha.hehe.heihei.Democ;//导入Demo类,不必在本类中packb.haha.hehe.heihei.Democ c = new packb.haha.hehe.heihei.Democ

import packb.haha.hehe.heihei.*  //*代表把heihei里所有的类导进来。建议一般情况下不用通配符*,需要用到包中的哪个类,就导入哪个类。

c:\myclass\packb\DemoA.class

c:\myclass\packb\heihei\DemoZ.class

import packb.*//导入的仅仅是packb中所有的类。

import packb.heihei.*//导入的是heihei包中所有的类。

当导入不同包中的类,出现重名的情况,必须加包名。packb.haha.hehe.heihei.Democ c = new packb.haha.hehe.heihei.Democ

建议定义包名不要重复,可以使用url 来定义,url是唯一的。

转载于:https://www.cnblogs.com/594263274qq/p/4543877.html

黑马程序员_Java面向对象_包相关推荐

  1. 黑马程序员_Java基础_前期准备02-1

    ---------------------------------------- JavaEE+云物联.期待与您交流!----------------------------------------- ...

  2. 黑马程序员_java总结_网络编程基础

    ----------- android培训.java培训.java学习型技术博客.期待与您交流! ------------ 现在总结网络编程.在网络通信中,人们把网络通信分为了多个层.为了方便理解,我 ...

  3. 黑马程序员_java面向对象

    面向对象概述       对于面向对象思想,强调的是对象(实体),C++,java,C#都属于面向对象语言.     特点:  1.面向对象就是一种常见的思想.符合人们的思考习惯.           ...

  4. 黑马程序员_Java面向对象四大特征

    ------- android培训.java培训.期待与您交流! ---------- 封装的概念: 是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式. 好处:     将变化隔离.便于使用.提 ...

  5. 黑马程序员_java自学学习笔记(八)----网络编程

    黑马程序员_java自学学习笔记(八)----网络编程 android培训. java培训.期待与您交流! 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无 ...

  6. 黑马程序员_java高级篇网络编程TCP实战Day8(上)

    ---------------------ASP.Net+Android+IOS开发.Net培训.期待与您交流! ----------- 黑马程序员_java高级篇网络编程TCP实战Day8(上) ( ...

  7. 黑马程序员_Java基础Day05_面向对象之封装(Done)

    ------- android培训.java培训.期待与您交流! ---------- Day05开始接触到了Java核心部分--"面向对象". 面向对象是一种思考思想,是相对于早 ...

  8. 黑马程序员_JAVA相关基础知识

    ------- android培训.java培训.期待与您交流! -------- JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便 ...

  9. 黑马程序员_Java解析网络数据流的三种特殊方法

    Java解析网络数据流的三种特殊方法 Java作为最开放的语言,已越来越受到网络程序员的青睐.但这一青睐族有着同样的经历--曾经都为网络上通信的Java数据格式而烦恼. 笔者也不例外,曾经为此而查阅了 ...

最新文章

  1. 【建站系列教程】2.2、fiddler手机抓包教程
  2. 51单片机 自动重装载值计算
  3. 绝了!华为、H3C、锐捷交换机配置命令大全
  4. 重新探讨一下《APEX英雄》系统设计的亮点
  5. thinkserver rd650管理口地址_路由器WAN口和LAN口有什么区别【区别介绍】
  6. SpringBoot怎么直接访问templates下的html页面
  7. 第五章 应用程序主窗口
  8. 在Kubernetes上部署和管理PostgreSQL
  9. 十、K8s 其他控制器(DS、RC、RS、STS)
  10. m6000查看端口状态_Linux查看端口使用状态、关闭端口方法
  11. java工作流引擎(j-roadflow)快速入门教程
  12. 微信Java SDK开发文档
  13. VS2019 团队资源管理器--Git的使用(二)
  14. 梳理19年上半年图文记录笔记(php和laravel )
  15. 机房动环监控解决方案!
  16. mysql时间串工具_时间戳_时间戳转换工具_阿波罗查询
  17. sql如何求连续打卡
  18. Unity自带GL详解
  19. 医疗图像处理与深度学习(二)
  20. 城市大数据发展评价指标体系

热门文章

  1. 你知道element中el-table的列名中不能含有 . 吗?
  2. 『Python』VS2015编译源码注意事项
  3. 推荐一个Android Studio很实用的插件android-butterknife-zelezny
  4. hibernateTemplate的load方法
  5. C#函数式程序设计之惰性列表工具——迭代器
  6. 定义根目录, window格式 转化为linux格式
  7. 《TCP/IP详解》
  8. MS的.net源码地址
  9. URL 贪吃蛇,考验手速的时候到了
  10. 读书笔记:《图解HTTP》第一章 网络基础