JavaSE复习日记 : java包机制

    这里是第一个文件,命名为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 (){
            int a = 10;
            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方法内的结果;

时间: 2024-10-18 07:36:11

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

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

// Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符 /* * 一 Java操作符 * * Java操作符都有哪些? * +, -, *, /, %, ++, -- * 这里需要注意 a++ 和 ++a 的区别,后面说; */ /* public class Javase{ public static void main(String[] args){ int a = 10; int b = 20; int c = 30; System.out.println( a

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

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

JavaSE复习日记 : 继承关系和super关键字

/* * 类的继承和super关键字 * * 软件开发的三大目的: * 可拓展性; * 可维护性; * 可重用性; * * 这里单说下可重用性这一项: * 为了代码复用,复用方式有: * 函数的调用复用; * 类的实例化复用,类直接的复用; * 类的继承复用; * 前两个我都有发过,这里就说一下类的继承,以及继承中用的较多的关键字:super; * * * 首先要先了解什么是继承? * 继承,用人认知的角度说的话就好比一个父亲的东西由他的几个儿子来继承,也就是有了父亲的东西,同时也有自己的东西-

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

/* * 基本数据类型 * * Java里的8种基本数据类型: * byte --- 1 byte = 8 bit; * short --- 2 byte = 16 bit; * int --- 4 byte = 32 bit; * long --- 8 byte = 64 bit; * * float --- 浮点型,32位的空间,数据表示形式是小数(如:3.0) * double --- 浮点型,64位的空间,数据表示形式是小数 * char --- 字符型,char型数据占用两个字节 2

JavaSE复习日记 : 多态

/** * 里氏替换原则 : * 能使用父类的地方,一定可以使用子类 * 什么是多态 : * 父类的引用,指向子类的对象 * 多态的前提条件 : * 有继承关系的两个类 * 多态的目的 : * ☆☆☆ 代码的重用 * 多态发什么在什么时候 : * 赋值的时候 * * !!!!!!!!! 多态中的 ☆☆☆ 覆写 是特指的 成员方法!!!!!!!!! * 什么是覆写 : * 就是在子类有个和父类相同的方法 : 方法名 , 参数列表 , 返回值类型 (和修饰符列表没关系) * 1 方法名相同 : 不相

JavaSE复习日记 : 抽象类

/* * 抽象类 * 抽象: * 面向对象的三大核心思想; * 封装: 封装,ppp是封装的一部分 * 继承; * 多态: 父类的引用指向子类的对象 * 引用: 是指一个引用型变量 * 有哪些变量? * 成员变量; * 构造方法的局部变量; * 普通方法的局部变量; * 立马声明立马使用的变量; * 静态变量; * 什么是抽象类? * 就是用abstract关键字修饰的类就叫抽象类; * 什么是抽象方法? * 没有方法体的方法叫抽象方法,连{}都没有;抽象方法必须在修饰符列表中加上abstrac

JavaSE复习日记 : 接口

/* * 接口 * 引用数据类型: * 类,接口,数组; * * 接口是一种引用数据类型,可以看作是一个特殊的类,它存在的目的是为了解决没有多重继承引起的功能弱的问题而设计的,一个类只能有一个父类,但是这个类却可以实现多个接口; * * 接口还可以看作是只有抽象方法的类,即接口的所有方法都必须被实现; * 接口声明的关键字是interface,代替了class;而普通类的继承关键字extends也变成了implements(实现); * 但是其作用和普通类中是一样的,只不过是为了区分而已; *

4.8-全栈Java笔记:包机制

包机制是java中管理类的重要手段. 开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理. 包对于类,相当于,文件夹对于文件的作用. package 我们通过package实现对类的管理,package的使用有两个要点: 1.通常是类的第一句非注释性语句. 2.包名:域名倒着写即可,再加上模块名,便于内部管理类. [示例1]package的命名举例 com.sun.test; com.oracle.test; com.bjsxt.gao.test; co

【javaSE】Java泛型机制

************************************************************************   ****原文:blog.csdn.net/clark_xu 徐长亮的专栏 ************************************************************************ Java泛型机制 泛型是JavaSE5 引入的特性,泛型的本质是参数化类型.应用场景:在类,接口和方法的定义过程中,所操作的数据类