Java day5

//包和权限:
//  以前我们编译java程序的时候用的命令类似于 javac A.java 将在当前目录下
//              生成A.class 
//  那我能不能把class文件放到其他目录下呢。是可以的,这就需要引入包的概念
//  包实际上就是文件夹。包实际上就是个文件夹,你可以在JAVA程序的源代码里面
//  用package指定一个文件夹的目录。当你编译这个程序的时候,编译结果就会存放到这个目录下面。

//这跟hellowrold 第一个程序不一样的地方就是,我们在前面加上一个package
//package a.b.c.d这就表示你去编译这个程序的时候,就会放在a/b/c/d这四级目录下面
//编译的时候 用javac -d . xxxx.java 。这句话的意思就是在当前目录下生成这些目录,所以这里在当前目录下就会生成 a/b/c/d,然后在其目录下就会生成class。
//如果你要执行的话 就 java a.b.c.d.xxx
//譬如我们这里就是java Package_and_Permission
//这就执行出来了。
//
//我们为什么要引入包的概念。包的作用是什么,假设我们有一个很大的程序,他有很多人实现,有A B C D成千上万个人来实现那很有可能我在A里面会实现math.java
//C里面也有可能会实现同名的JAVA程序。这些文件我在存放的时候可以放到不同的目录。那怎么去使用呢,使用的时候我们肯定是使用不同目录下的那些类。使用的时候也是用目录来区分。在我们JAVA程序里面,这个目录就是包,我用包来区分。
package a.b.c.d;

public class Package_and_Permission
{
    public static void main(String args[])
    {
        System.out.println("hello world");
    }
}
//怎么去引用这些包呢,我要导进来,就用import。注意了,你这些类,你是放在其他文件里面实现的,我要使用你,怎么办呢,在JAVA程序里面没有头文件,我们用import把它倒进来。

import lisi.a.*;
import zhangsan.*;
public class Package
{
    public static void main(String args[])
    {
        System.out.println(lisi.a.Math.delete(4,3));
        System.out.println(zhangsan.Math.add(1,5));
        //如果没有同名的类的话,我们可以不用xx.xxx.xxx.xxx去限制一个类
        //比如说我们在 lisi.a下面有个Print类,类里面有个print函数
        //我们只需要Print.print或者lisi.a.Print.print,一样的。
        //在我们lisi下面有个class,在我们zhangsan里面有这些class
        //但是我们想把我们的程序交给用户的时候怎么办呢,我们需要把Pack.class
        //交给它,还需要把lisi和zhangsan目录教给他。我们可以用jar命令打包,然后我们export CLASSPATH=.:xxx.jar 这个表示编译器会在当前目录下找,找不到的话就去当前的xxx.jar里面找
    }
}
//JAVA程序它有两个层次的访问权限。一个是类这一层,一个是类成员这一层。
//先看一下类这一层,对于一个class,可以用public来描述,也可以不用public来描述
//对于public class表示它可以在本包里面来访问,也可以被其他包访问。对于一般的class,它只能在本包里面来访问。记得是包,同一个包,就是同一个目录。
//
//
//类成员的权限
//类成员包括属性和方法,它们都有private default protected public 
//private权限最小,只能在类内部访问。
//public权限最大,在任何地方都可以访问它。
//default是默认的权限,只能在同一个类内部访问额。或者同一个包来访问。在其他包用不了。
//protected跟default多了个不同包的子类可以访问。这里就是一个继承的问题,不同包的子类就是你继承了那个类,在不同包里实现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值