目录
package-->包
包:在面向对象体系中,提出了一个软件包的概念,即:为了更好的管理类,把多个类收集在一起成为一组,称为软件包。
在Java中也引入了包,包是对类、接口等的封装机制的体现,是一种对类或者接口等的很好的组织方式,比如:一个包中的类不想被其他包中的类使用。包还有一个重要的作用:在同一个工程中允许存在相同名称的类,只要处在不同的包中即可。
包的创建
包的名字:
包名一般采用域名倒写的形式,如:百度的域名www.baidu.com,那么在给包命名时就应该采用com.baidu.www的形式,而和类名首字母大写不同,包名一般全部小写。
包的创建:
- 选择src右键
- 选择new后,在弹出的选项框中选择package
- 接着在弹出的命名框中写入包名,回车确定
- 包创建完成
导入包中的类
当需要访问不同包中的类时,此时需要通过关键字import对包当中的类进行导入,这个过程称之为“导包”,但是实际上导入的不是包,而是包当中的类。
当需要导入同一个包中的多个类时,可以采用 import 包名 . *, * 可以指代包中的任何类。
例子:在下面的代码中 * 指代了Arrays和Sacnner这两个类。
这次导包方式虽然方便,但是还是存在着一定的缺陷,当我们需要导入不同包中同名的类时,如果采取这种导包方式,那么编译器无法区别导入的是哪个包的类,就会报错。所以一般推荐显示导包,即import java.util.Data。
注意,当需要在同一段代码当中导入不同包中的同名类,则需要采取需要使用完整的类名来创建对象。
导入包中的静态方法和字段
在Java语法当中,还可以使用import static导入包中静态的方法和字段。
import java.lang.Math;
//导入java.lang包当中的Math类
public class Test1 {
public static void main(String[] args) {
//直接通过类调用类当中的静态方法
double a = Math.sqrt(400);
}
}
import static java.lang.Math.*;
//导入java.lang包当中的Math类的静态方法和静态字段
public class Test1 {
public static void main(String[] args) {
//直接调用静态方法,不需要通过类
double a = sqrt(400);
}
}
访问修饰限定符
在面向对象的语言当中,对象当中的部分成员变量和方法是需要被隐藏起来,不被用户直接使用的,只需要提供对外的公开接口就好。针对这种特性,Java提供了三种访问修饰限定符。访问权限用来控制方法或者字段能否直接在类外使用。
注意:在java当中,并没有default这个访问修饰符,此处default而是代表成员不加任何修饰符号。
private:只有类当中的成员才能访问得到,一旦出了类,就无法直接访问了。
default:只有放在同一个包中的类才能访问到。
protected:同一个包当中的可以访问,不同包当中的只有继承了父类的子类才能访问。
public:同一个包当中的都可以访问,不同包的也都可以访问。