包、作用域
一、包
- 位于同一个包的类,可以访问包作用域的字段和方法
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类的名字相同。