包、作用域
一、包
- 位于同一个包的类,可以访问包作用域的字段和方法
package com.company;
public class Person {
// 包作用域:
void hello() {
System.out.println("Hello!");
}
}
package com.company;
public class Main{
public static void main(String[] args){
Person p = new Person();
p.hello();
}
}
- 在不同的包中,可以使用
import
来导入
package org.apache
import com.company.Person
二、作用域
1、权限
限制作用域的关键字:默认
,public
,private
,protected
·定义为public的class、interface可以被其他任何类访问
·定义为private的field、method无法被其他类访问
·protected作用于继承关系。定义为protected的字段和方法可以被子类访问,以及子类的子类
本类中 | 子类中 | 同包类中 | 其他类中 | |
---|---|---|---|---|
public | 可以 | 可以 | 可以 | 可以 |
protected | 可以 | 可以 | 可以 | 不可以 |
默认 | 可以 | 同包子类可以 | 可以 | 不可以 |
private | 可以 | 不可以 | 不可以 | 不可以 |
2、包作用域
- 一个
.java
文件只能包含一个public
类,但可以包含多个非public
类。如果有public
类,文件名必须和public
类的名字相同。