首页 > 代码库 > java4android (包和访问权限)

java4android (包和访问权限)

什么是Java当中的软件包?

为什么要使用软件包?

如何给一个类打包?

//将类放置到一个包中,需要使用package“包名”
//打包  编译的方法 javac -d . Test.java
//出现错误:编码GBK的不可映射字符  javac -encoding UTF-8 -d . Test.java
               //-d 根据包名safiri生成文件夹  .的意思是在当前目录下生成safiri文件夹
    //一个类的全名应该是“包名”+“.”+"类名"    safiri.Test
//    运行: java safiri.Test

//包名的命名规范:
//1.要求报名所有的字母都要小写
//2.包名一般情况下,是你的域名倒过来写 com.sdau 则类的全名为com.sdau.Test
package safiri;
class Test{
    public static void main(String args[]){
        System.out.print("Hello package");
    }
}

//1.软件包为java类提供了命名空间
//2.打包需要使用package指令
//3.一个类的全名应该是“包名.”+"类名"

 

Java当中的访问权限:

public :公共权限  跨包访问使用类和类的成员时要加public(没有限制,同一包中或者不同包中的类都可以自由访问)

private:私有权限 修饰的成员变量和函数只能在本类中使用,其他类不能使用(只能在本类当中使用)

default:包级别访问权限 在同一个包内的类可以互相访问default权限的类及其成员(不写权限修饰符就是default权限,在同一个包中,可以自由访问)

protected:受保护权限 首先拥有和default一样的功能,但是该权限只能修饰成员变量和成员函数(其他3个还可以修饰类)想让子类能够用使用不同包当中父类的成员,用protected修饰父类的成员。

 public >protected >default >private

软件包的导入

跨包使用类时要写 包名+类名 ,包名比较长时会比较麻烦,所以有一个导入机制:

import org.marsdroid.Person;

导入后再使用这个类时,就不用写包名了,直接写类名就可以了。

 

访问权限与继承

如果子类和父类不在同一个包中,子类可以继承到父类当中的default权限的成员变量和成员函数,但是由于权限不够,无法使用。

 

继承后父类的成员能不能用,还要考虑成员的权限