java基础---包和访问权限

时间:2022-12-05 15:11:49
包的概念和生成
软件包为JAVA类提供了命名空间
//将类放置到一个包当中,需要使用package "包名"
//编译时需要使用 -d 参数,该参数的作用是依照包名生成相应的文件夹
//一个类的全名应该是"包名" + "." + "类名"
//mars.Test
//包名的命名规范:
//1、要求包名所有的字母都要小写;
//2、包名一般情况下,是你的域名倒过来写;

package mars;

class Test{
public static void main(String args []){
System.out.println("Hello package");
}
}

编译过后,想要执行,就要用全名:java mars.Test

导入机制
import org.marsdroid.Person;
以后要使用Person这个类,可以直接使用,不用把包名写全

如果我要使用很多org.marsdroid中的很多类,可以这样写:
import org.marsdroid.*;(导入org.marsdroid包中的所以类)

Java当中的访问权限

1、public:公共权限
2、private:私有权限
3、default:包级别访问权限(默认权限)
4、protected:受保护权限

当类被声明名public时,类名和文件名必须一样
在不同的包中,一个类想访问一个类时,那个类必须是public,要访问的

类成员也应该是public的。

//public 可以修饰类、成员变量和成员函数
//没有任何限制,同一个包当中,或者不同包当中的类都可以*访问
//private 可以修饰成员变量和成员函数
//只能在本类中使用
//default(不写权限修饰符,就是default权限) 可以修饰类、成员变量

和成员函数
//在同一包当中,可以*访问

 

访问权限与继承之间的关系

如果子类和父类不在同一个包当中,则子类无法继承到父类当中的default权限的成员变量和成员函数()有问题)

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

要想跨包访问,就必须把成员变量或者成员函数定义为public.

 

protected权限:

protected权限首先拥有和default一样的功能,但是该权限只能修饰成员变量和成员函数。

protected和public的区别:

        两者都可以跨包使用,public任何类都可以使用,protected只有子类才可以使用。

 

权限排序: public > protected > default > private