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是唯一的。

黑马程序员_Java面向对象_包的更多相关文章

  1. 黑马程序员_Java面向对象_内部类

    6.面向对象_内部类 1.内部类定义 内部类:将一个类定义在另一个类里面,对里面那个类就称为内部类.(内置类.嵌套类)内部类可以被私有修饰. 2.内部类访问规则 访问特点: 内部类可以直接访问外部类中 ...

  2. 黑马程序员_Java面向对象_异常

    6.异常 1.异常: 就是程序在运行时出现不正常的情况.问题也是现实生活中一个具体的事物,也可以通过Java的类进行描述,并封装成对象.Exception和Error的子类名都是以父类名作为后缀名. ...

  3. 黑马程序员_Java面向对象3_多态

    5.面向对象_多态 多态定义:某一种事物存在的多种形态. 例:动物中猫,狗. 猫这个对象对应的类型是猫类型. 猫 x = new 猫(); 同时猫也是动物的一种,也可以把猫称为动物. 动物 y = n ...

  4. 黑马程序员_Java面向对象2_继承

    4.面向对象_继承 4.1继承的概述 提高了代码的复用性. 让类与类之间产生了关系,有了这个关系,才有多态的特性. 注意:千万不要为了获取其他类的功能而去继承,简化代码而继承.必须是类与类之间有所属关 ...

  5. 黑马程序员_Java面向对象1_封装

    3.面向对象_封装 3.1面向对象概念 3.1.1理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程:强调的是功能行为(执行者) 面向对象:将功能封装进对象,强调具备了 ...

  6. 黑马程序员_Java基础视频-深入浅出精华版--PPT 文件列表

    \day01\code\第一章_Java概述.ppt;\day01\resource\资料\50道编程题(有精力的同学看看).doc;\day01\resource\资料\Sun_Java程序员认证考 ...

  7. 黑马程序员_Java基础组成

    Java语言基础组成 2.1关键字 main不是关键字,但被JVM所识别的名称. 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有字母都为小写. 用于定义数据类型的关 ...

  8. 课程2:《黑马程序员_Java基础视频-深入浅出精华版》-视频列表-

    \day01\avi\01.01_计算机基础(计算机概述).avi; \day01\avi\01.02_计算机基础(计算机硬件和软件概述).avi; \day01\avi\01.03_计算机基础(软件 ...

  9. 黑马程序员_Java基础:网络编程总结

    ------- android培训.java培训.期待与您交流! ---------- Java语言是在网络环境下诞生的,它是第一个完全融入网络的语言,虽然不能说它是对支持网络编程做得最好的语言,但是 ...

随机推荐

  1. Binary Tree Zigzag Level Order Traversal (LeetCode) 层序遍历二叉树

    题目描述: Binary Tree Zigzag Level Order Traversal AC Rate: 399/1474 My Submissions Given a binary tree, ...

  2. CheckBox的触发

    遇到的问题:当Checkbox选中时触发Checked事件,使界面处于状态1,但是页面状态2时也希望checkBox处于选中状态,但是直接修改它的IsChecked属性势必会触发他的Checked事件 ...

  3. thread block grid

    grid里面包含block,block里面包含thread grid里面所有的block都是同样大小的,  每个block最多可以有1024个thread. blockDim表示一个block里面th ...

  4. Android原理揭秘系列之一动态墙纸

    Livewallpaper,即动态墙纸,是Android的一大3D特色功能,用户可以在桌面选择加载动态墙纸,让自己的手机桌面背景旋动起来. 相对于静态桌面壁纸,动态墙纸可以展示各种动态变化的背景,而与 ...

  5. Ubuntu 搭建NDK环境

    一. NDK下载地址 https://developer.android.com/tools/sdk/ndk/index.html 二. NDK环境两种方式 NDK下载后,解压缩后放置于目录/home ...

  6. AIX-df命令

    df 命令显示文件系统的总空间和可用空间信息.FileSystem 参数指定文件系统驻留的设备的名称,文件系统的安装目录或文件系统的相对路径名.File 参数指定非安装点的文件或目录.如果指定 Fil ...

  7. Linux_x64安装Oracle11g(完整版)

    一.修改操作系统核心参数 在Root用户下执行以下步骤: 1)修改用户的SHELL的限制,修改/etc/security/limits.conf文件 输入命令:vi /etc/security/lim ...

  8. 64位Windows 7平台安装32位Timesten,配置ODBC数据源

    问题: 由于系统版本原因,客户机只能安装32位的Timesten,但客户机的平台是64位的win 7,安装完成后按照常规的控制面板->管理工具->数据源(ODBC)打开的ODBC数据源管理 ...

  9. easyui之combobox(不定时补充)

    1,combobox的valuefeild和textfeild这两个属性,可以理解为键值对,即:键valuefeild:值textfeild textfeild是文本框内显示的值,如果要取文本框内的值 ...

  10. Linux下makefile(一)

    makefile关系到了整个工程的编译规则.一个工程中的源文件不计数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文 ...