17.包和访问权限
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17.包和访问权限相关的知识,希望对你有一定的参考价值。
- 软件包
- 为java类提供了命名空间
- 将类放置到一个包当中,需要使用package"包名"
- 编译时需要使用 -d 参数,该参数的作用是依照包名生成相应的文件夹
例如:D:\work\src>javac -d . Test.java
- 一个类的全名应该是“包名” + “.” + “类名”
运行:java Arron.Test
- 在不同的包中时,调用需写上包名
- 包名的命名规范
- 1、要求包名所有的字母都要小写
- 2、包名一般情况下,是你的域名倒过来写
- Arron.org
D:\work\src>javac -d . Test.java
D:\work\src>java org.Arron.Test
package org.Arron;
classTest{
publicstaticvoid main(String args []){
System.out.println("Hello package");
}
}
- java当中的访问权限
- 分类
- 1、public:公共权限
- 可以修饰类,成员变量和成员函数
- 如果一个类被声明为public,那么这个类的名字必须与原文件的名字相同
- 在一个包的外部调用一个对象的某一个成员变量或成员函数,要求被访问这个变量或函数应该是public权限。
package org.Arron;
publicclassPerson{
publicString name;
publicint age;
publicvoid introduce(){
System.out.println("name:" + name); System.out.println("age:" + age);
}
}
package com.Arronandroid;
classTest{
publicstaticvoid main(String args []){
org.Arron.Person p =new org.ArronAndroid.Person();
p.name ="zhagnsan";
p.age =20;
}
}
结果:
D:\work\src>javac -d . *.java
D:\work\src>java com.ArronAndroid.Test
name:zhagnsan
age:20
- 2、private:私有权限
- 可以修饰成员变量和成员函数
- 只能在当前的类中使用,即使实在同一个包当中
- 3、default:包级别访问权限
- 不写权限修饰符,就是default权限,可以修饰类,成员变量和成员函数
- 默认权限:只要在同一个包当中,可以任意使用
- 如果在不同的包当中就不可以调用
- 4、protected:受保护权限
- 软件包的导入
- 在不同的包当中(public),可以用
import org.Arron.*;
来导入其他包的类。
package org.Arron;
publicclassPerson{
publicString name;
publicint age;
publicvoid introduce(){
System.out.println("name");
}
}
package com.ArronAndroid;
import org.Arron.*;
classTest{
publicstaticvoid main(String args []){
Person p =newPerson();
p.name ="zhagnsan";
p.age =20;
}
}
- 访问权限与继承
- 如果子类和父类不在同一个包当中,这子类可以继承到父类当中的default权限的成员变量和成员函数,但是由于权限不够,无法使用。如果要使用,需要使用public权限
- 即使子类和父类在同一个包当中,如果成员变量或函数被声明为private权限,子类也是无法使用的
- protected权限
- protected权限拥有和default权限一样的功能,但是该权限只能 修饰成员变量和成员函数
- 如果子类和父类不再同一个包当中,那么子类也可以使用父类当中被声明为protected权限的成员变量和成员函数
- 如果两个类没有任何关系,不同包当中的类只能访问public当中的类
- 权限排名:public>proteced>default>private
以上是关于17.包和访问权限的主要内容,如果未能解决你的问题,请参考以下文章