什么是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权限的成员变量和成员函数,但是由于权限不够,无法使用。
继承后父类的成员能不能用,还要考虑成员的权限