2017-11-02 22:58:45

包(package):其实就是文件夹。

包的作用是对类进行分类的管理,并且区分不同的类名。

举例:

  学生:增加,删除,修改,查询

  教师:增加,删除,修改,查询

  ...

  方案一:按功能分类

      com.add

        AddStudent

        AddTeacher

      com.delete

        DeleteStudent

        DeleteTeacher

      com.update

        UpdateStudent

        UpdateTeacher

      com.find

        FindStudent

        FindTeacher

  方案二:按模块分类

      com.Student

        AddStudent

        DeleteStudent

        UpdateStudent

        FindStudent

        

      com.Teacher

        AddTeacher

        DeleteTeacher

        UpdateTeacher

        FindTeacher

注意事项:必须是第一条代码;一个java文件只能有一句;如果没有package,默认无包名。

带包的编译和运行:A:手动式

              a:编写一个带包的java文件

              b:通过javac进行编译该文件

              c:手动创建包名,并将生成的.class文件放到文件夹中

              d:回到java文件的文件夹,带包名编译

         B:自动式

              a:编写一个带包的java文件

              b:通过javac进行编译该文件,加上 -d . 即可 (-d参数的作用是指定生成java包的根目录,"."表示当前目录下创建包)

不同包下的类之间的访问:

1、不同包下首先需要加上包名限定

2、必须要先把需要的包的字节码文件编译出来

3、不同包下的权限问题

package com.cnblogs

public Class Test
{
public static void main()
{
//不同包下需要加包名
//Demo demo = new Demo();
com.edit.Demo demo = new Demo();
System.out.println(demo.sum);
}
}

导包功能:不同包下的类之间的访问,每次需要使用不同的包下的类的时候,都需要加上包的全路径。比较麻烦。这时候,Java就提供了导包功能。也就是import命令。

格式:import 包名;

需要的java类,要么拷到当前目录,要么拷到classpath中设置的目录,比如说c:\java\jdk\lib(前提是你要在classpath中设置这个目录)

import只能用于同级目录或下级目录的情况,比如你的程序放在d盘,而你要导入abc目录中的类,那么在程序开头写 import abc.*;
假如你要导入abc目录下的efd目录下的类,那么写 import abc.efd.*;
以此类推

另外, import 只能导入.class文件,不能导入.java文件

注意:这种方式是导入到类的名称;

          虽然可以最后写.*,不过不推荐使用这种方式;

不同包之间的权限问题:不同包之间的类的访问的修饰符只能是public和protected。

注意:不同包下子类是无法访问父类的protected修饰的成员的。

        

Java 包的概述和讲解的更多相关文章

  1. 10-03 Java 包的概述和讲解

    带包的编译和运行 A:手动式 a:编写一个带包的java文件. b:通过javac命令编译该java文件. c:手动创建包名. d:把b步骤的class文件放到c步骤的最底层包 e:回到和包根目录在同 ...

  2. Java包的基本概述

    第七章 7.1 包的基本概述 起因: 在我们设计一个程序的时候(尤其是多人合作),会写一些类来实现功能,但是往往会有重名的现象发生,为了解决这个问题,则专门设计了包.(还有其他作用,下述) 简单理解: ...

  3. Notes 20180506 : Java程序设计语言概述

    2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触 ...

  4. Java类加载器概述

    Java类加载器概述 Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由Java 应用开发人员编写的. 系统提供的类加载器 引导类加载器 它用来加载 Java 的核心库,是用原生 ...

  5. Java Reference简要概述

    @(Java)[Reference] Java Reference简要概述 Reference对象封装了其它对象的引用,可以和普通的对象一样操作. Java提供了四种不同类型的引用,引用级别从高到低分 ...

  6. Python 包的相对导入讲解

    [Python 包的相对导入讲解] 参考:http://www.dai3.com/python-import.html

  7. Android 虚拟机Dalvik、Android各种java包功能、Android相关文件类型、应用程序结构分析、ADB

    Android虚拟机Dalvik Dalvik冲击 随着Google 的AndroidSDK 的发布,关于它的API 以及在移动电话领域所带来的预期影响这些方面的讨论不胜枚举.不过,其中的一个话题在J ...

  8. 在Eclipse工具里创建maven的web工程,在建立src/main/java包出现The folder is already a source folder.解决

    1. 与创建普通java工程一样,点击右键找到New菜单,在弹出的界面输入maven ---->>点击maven Project------>>点击next 2  进入下一个界 ...

  9. android工程gen目录中R.java包名是怎么确定

    新建一个工程,包名用的com.mythroad.adskiller, 后来觉得不好,又改成com.mythroad.adsinscepter,但是我发现gen下的R.java文件的包名还是原来的com ...

随机推荐

  1. cmd 笔记(随时补充)

    被一篇破解WIFI的标题文骗到了,所以学习一下CMD的命令 1 查看已经连接的wifi和密码 netsh wlan show profiles 回车 netsh wlan show profiles ...

  2. Spring 自动扫描 不支持jar包 <component-scan>

    问题描述: 本机windows myeclipse10.7 运行非maven java项目,其中部分类使用spring3 注解进行注入,使用配置文件component-scan进行扫描,在本机debu ...

  3. python 采坑总结 调用键盘事件后导致键盘失灵的可能原因

    在练习python封装键盘事件的时候,实现一个keyDown和keyUp的功能: @staticmethod    def keyDown(keyName):        #按下按键        ...

  4. centos7.3安装redis

    yum install epel-release yum install redis 如果支持从其他机器能访问,需要修改配置文件 /etc/redis.conf,注释掉 bin 127.0.0.1 如 ...

  5. 将图片文件转化为字节数组字符串,并对其进行Base64编码处理,以及对字节数组字符串进行Base64解码并生成图片

    实际开发中涉及图片上传并且量比较大的时候一般处理方式有三种 1.直接保存到项目中 最老土直接方法,也是最不适用的方法,量大对后期部署很不方便 2.直接保存到指定路径的服务器上.需要时候在获取,这种方式 ...

  6. Antlr4 入门

    一.ANTRL 是什么 ANTLR 是用JAVA写的语言识别工具,它用来声明语言的语法,简称为“元语言”(meta-language). ANTLR 语法识别一般分为二个阶段: 1.词法分析阶段 (l ...

  7. P4289 [HAOI2008]移动玩具(bfs)

    P4289 [HAOI2008]移动玩具 双向bfs+状态压缩+记忆化搜索 双向bfs用于对bfs的优化,每次找到可扩展节点少的一边进行一次bfs,找到的第一个互相接触的点即为最短路径 矩阵范围仅4* ...

  8. Python网络爬虫案例(二)——爬取招聘信息网站

    利用Python,爬取 51job 上面有关于 IT行业 的招聘信息 版权声明:未经博主授权,内容严禁分享转载 案例代码: # __author : "J" # date : 20 ...

  9. JavaScript 实现表格隔行变色

    JavaScript 实现表格隔行变色 版权声明:未经授权,严禁分享! 构建界面 界面HTML代码 <style> #data,th,td{ border: 1px solid #aaaa ...

  10. lambda表达式Bug——修改捕获变量失败

    解<C++ Primer 5th>的 9-50 练习题时,遇到了 lambda表达式值捕获和引用捕获之区别问题. 欲修改捕获的变量 sum,累加之.但当时忘记值捕获和引用捕获是有区别的.下 ...