目录
2.1.3 不同包子类:(public,protected)
1.包(文件夹)
关键词 package 语法:package 包名;
1.1 包的好处
- 区分相同类型的类
- 管理类
- 控制访问范围
1.2 原理:
实际上创建不同的文件夹来保存类文件,通过.来控制文件夹中子文件夹的创建
1.3 命名规范
1.同名类不能同时引用(即使在不同文件夹),另一种(没引用的)使用的时候要用包名前缀区分
2.命名规范
- 数字,字母,下划线_,圆点.组成,数字不能开头,不能是关键字
- 一般是小写字母:公司名+项目名+业务名
3.常用包
- java.lang.*基本包,默认引入
- java.util.*工具包
- java.net.*网络包
- java.awt.*界面开发包
4.如何导入包
- import 包.包....类 只会引入这个包下的一个类(推荐这种,使用一种就导入一种)
- import 包.* 引入包内所有类
2.访问修饰符(访问权限)
1.public 对外公开(只有公开类型在不同包也可以访问内的public属性,但要先导入包下类)
2.protected 对子类和同一个包中的类公开
3.(无)默认级别 对同一个包中的类公开()
4.private 只有类本身可以访问(只有在同类中能被访问,在同包不同类都不能直接访问)
对于一个包中 | 跨包 | ||||
访问修饰符 | 在本类中 | 不同类 | 子类 | 非子类 | |
公开 | public | T | T | T | T |
受保护 | protected | T | T | T | |
默认 | 无(接口为default) | T | T | ||
私有 | private | T |
创建两个包,写两个一模一样的类
package P1;
public class Class1 {
//属性
public int par1;
protected int par2;
int par3;
private int par4;
//方法
public void method1(){};
protected void method2(){};
void method3(){};
private void method4(){};
}
//同包不同类
class Class2{
//属性
public int par1;
protected int par2;
int par3;
private int par4;
//方法
public void method1(){};
protected void method2(){};
void method3(){};
private void method4(){
};
}
//不同包子类
class Class3 extends P2.Class1{
{
}
}
package P2;
public class Class1 {
//属性
public int par1;
protected int par2;
int par3;
private int par4;
//方法
public void method1(){};
protected void method2(){};
void method3(){};
private void method4(){};
}
2.1测试
2.1.1本类中:(方法属性都可以访问)
2.1.2 本包不同类:(private不可直接访问)
2.1.3 不同包子类:(public,protected)
子类访问父类