这里是第一个文件,命名为JavaSE_01.java,我在这个文件里面声明了一个m1()方法,通过包机制,我将在另外一个文件夹里访问这个文件里的东西,确切的说是访问这个文件生成的一个class文件;

package com.jaovo.webTeah.db;

/*
 *                          Java包机制
 *
 *      也就是软件包机制,软件世界中的两大难题:命名和缓存;
 *
 *  在程序命名中取一个言简意赅的名字很难,有时候名字取出来发现这个名字已经存在,包括IP,域名,MAC地址冲突等,在计算机中都出现了命名冲突的问题,命名太长又不方便.
 *  而这个时候封装的思想,划分区域,域的概念,命名空间的概念,IP段的概念都分别解决了他们各自的名字冲突的问题.
 *  这个时候Java借用了域名的封装方式(做程序开发的,每个人都会有自己的域名),提出了软件包的概念;
 *
 *  1. Java软件包的目的:解决类的命名(也是文件的命名,因为类名和文件名相同)
 *      在类前面加一个命名空间(相当于给文件加一个文件夹)
 *  2. 解决方式:
 *      通常采用公司域名的倒序方式(这个是唯一的)
 *      比如大家熟知的网站,名字都是hppt://www.jaovo.com....是吧
 *      包机制的写法是:
 *          com.jaovo.webTeah.bd
 *          com.baidu.webTeah.bd
 *          com.baidu.webTeah.page
 *          .......
 *      包机制的作用:
 *          命名空间,生成一个文件目录(比如你开文件夹1,里面是文件夹2,再打开就是文件夹3,以此类推形成一个目录形式)
 *      如果要调用包里的东西就需要这个文件目录,同过导包找到他,再调用他;
 *  3. 用法:
 *      在java源文件的第一行引用package语句定义包:
 *          如package com.jaovo.webTeah.db;
 *      他会自动生成一个文件目录,每个文件夹都是上述的用点隔开的名字,按照顺序生成;
 *      如果需要用里面的东西就需要导包,就需要import:
 *          如import com.jaovo.webTeah.db;
 *          就是调用db这个文件夹里的文件内容;
 *      还有一种写法就是:
 *          import com.jaovo.*;
 *          就是调用jaovo这个文件夹里的所有东西,也包括db吧;
 *  4. 文件目录的生成
 *      还有最后一步,就是编译和运行;
 *      编译: javac -d ./ -encoding utf-8 JavaSE.java
 *      ./就是本文件夹里生成,JavaSE.java是我这个源文件的文件名
 *      编译后就会生成一个文件目录,并且会把我这个源代码生成的class文件保存到文件目录中我指定的位置;
 *      运行: java com.jaovo.webTeah.db.JavaSE.class
 *
 *      编译和运行都是在CMD中是实现,如果用的是VIM编译的话,直接":sh"敲回车就会进入编译窗;
 *
 *      这里我会截屏展示一下效果:
 */

public class JavaSE_01{
        public static void main(String[] args){
        System.out.println( "java包机制" );
        m1();
        }
        public static void m1 (){
            ;
            System.out.println( a );
        }
}

 这个文件编写完以后,通过CMD编译一个class文件到指定目录下(附图):

   红色圈出的位置是我在CMD上打的内容;

这里是自动生成的文件目录,以及文件目录下的class文件:

  同样是有红笔圈出来;

以下是第二个文件:

package com.jaovo.webTeah;
/*
 *  这里我写了两个源代码,把上一个源文件的class文件编译到com.jaovo.webTeah.db这个文件夹下;
 *  这是第二个源代码,我把他的class文件编译到上个class文件的上一级,也就是在com.jaovo.webTeah文件夹下;
 *  然后我在JavaSE_02.java文件中调用JavaSE_01文件中的m1()方法;
 */
import com.jaovo.webTeah.db.*;//这里导包,导入JavaSE_01生成的类文件;

public class JavaSE_02{
    public static void main(String[] args){
        JavaSE_01 s = new JavaSE_01();//对JavaSE_01实例化对象;
        s.m1();//调用JavaSE_01中的m1()方法(我这个文件里面是没有声明任何方法的)
    }
}

下面是JavaSE_02.java文件的编译:

class文件存放位置:

下面是我运行的JavaSE_02.java文件,以及输出的结果:

最后结果是10,是JavaSE_01.java文件中m1方法内的结果;

JavaSE复习日记 : java包机制的更多相关文章

  1. JavaSE复习日记 : Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符

    // Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符 /* * 一 Java操作符 * * Java操作符都有哪些? * +, -, *, /, %, ++, -- * ...

  2. JavaSE复习日记 : 算是个小前言吧

    /* * Java也学了好久了,抽个时间整理了一下课堂笔记,也有些是我刚开始学会犯的一些错误.在这里浅谈一下JavaSE的基础内容,对我来说也是一种不错的复习方式. * * 那好,对于初学者来说,学习 ...

  3. JavaSE复习_1 Java的基本格式和运算符

    △.代表在当前目录.classpath能在任何路径下访问类文件. △单行注释可以嵌套,多行注释不能嵌套 △java中的标识符只能有数字,字母,$和_,其他的符号都是错误的,不合法的.其中数字不能是开头 ...

  4. JavaSE复习日记 : 方法的调用和方法的重载

    /* * 方法的调用和方法重载 */ /* * 什么是方法? * 方法就是一个有名字的代码段; * 方法的调用: * 在方法里调用另外一个方法里面的东西就是方法调用; * 或者可以认为"另外 ...

  5. JavaSE复习日记 : 继承关系和super关键字以及继承关系中方法的覆写

    /* * 类的继承和super关键字 * * 软件开发的三大目的: * 可拓展性; * 可维护性; * 可重用性; * * 这里单说下可重用性这一项: * 为了代码复用,复用方式有: * 函数的调用复 ...

  6. JavaSE复习日记 : 循环语句(for/while/do while)

    /* * 循环语句(for循环,while和do while循环) */ /* * for循环语句 * * for循环语法: * for (表达式1;表达式2;表达式3 ){ * java语句 * } ...

  7. JavaSE复习日记 : 条件判断语句

    /* 条件控制语句:if(){}else{} 语法: 第一种结构:有不执行的情况 if(boolean表达式){ //第一位真,就执行里面的语句,为假就不执行 java语句; } 第二种结构: if( ...

  8. JavaSE复习日记 : 八种基本数据类型

    /* * 基本数据类型 * * Java里的8种基本数据类型: * byte --- 1 byte = 8 bit; * short --- 2 byte = 16 bit; * int --- 4 ...

  9. JavaSE复习日记 : 循环终止语句(break/break outerFor/continue)

    最近没网,但攒了几天的博客,这次逮到机会发博客,直接三篇走起; /* * 循环终止语句: break/ break outerFor/ continue */ /* * break语句 * 1. 用于 ...

随机推荐

  1. vSphere Client 编辑虚拟机属性的问题

    编辑虚拟机属性的时候, 出现: vpxclient.vmconfig.cpuid 初始值设置异常之类的,重置了, 并将注册表中的所有vmvare 相关键值删除了, 还是一样的.. 后面参照https: ...

  2. VS2013 抛出 stackoverflow exception 的追踪

    本公司使用VWG.Caslte ActiveRecord.CSLA.net .Quantz.net 等组件做为公司的开发基础,自2007年以来,一直工作正常,但最近(2015.12月)以来,打开MDA ...

  3. mysql服务器的字符集

    文章:http://www.cnblogs.com/fantiantian/p/3468454.html 的评论中有这样的文字: 谢谢沧海一滴的总结 在Linux中一般都是UTF-8字符集.我们在建数 ...

  4. iOS之地理位置及定位系统 -- 入门笔记(用Swift)

    前言:关于地理位置及定位系统,在iOS开发中也比较常见,比如美团外面的餐饮店铺的搜索,它首先需要用户当前手机的位置,然后在这个位置附近搜索相关的餐饮店铺的位置,并提供相关的餐饮信息,再比如最常见的就是 ...

  5. (转载)linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结

    linux下tar.gz.tar.bz2.zip等解压缩.压缩命令小结 bz2 tgz z等众多压缩文件的压缩与解压方法,需要的朋友可以参考下 1) Linux下最常用的打包程序就是tar了,使用ta ...

  6. KVC该机制

    KVC该机制 KVC是cocoa的大招,用来间接获取或者改动对象属性的方式. 一.KVC的作用: KVC大招之中的一个: [self setValuesForKeysWithDictionary:di ...

  7. Linux关机命令详解

    在linux下一些常用的关机/重启命令有shutdown.halt.reboot.及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的. Linux centos重启命令: 1. ...

  8. PHP ACCESS-CONTROL-ALLOW-ORIGIN ,设置跨域头

    php里允许别的域名跨域访问,先解释下跨域 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制. 所谓同源是指,域名,协议,端口均相同 ...

  9. java学习笔记(一):开始第一个java项目

    这里使用IntelliJ IDEA 来新建第一个java项目 在新建项目向导,你可以选择你的项目支持的技术,你正在做一个普通的Java项目,只需单击下一步. 下一步,新建一个test的项目. 新建一个 ...

  10. Java和Spring邮件的发送

    方法一: java发送电子邮件:这里以发送qq邮件为例: package test; import java.util.Properties; import javax.mail.Authentica ...