一、包和导入
1.1、包
报的本质就是文件夹,创建包来存放Java类是为了让Java类便于管理
包的命名:
规则:
1.有数字、字母、下划线、美元符组成
2.数字不能开头
3.不能和关键字重名
规范:
1.全小写,多个单词用
.
连接 2.公司域名倒着写
常看见的包的命名:
1.test:测试包
2.bean/entity/domain:实体包
3.service:业务包
4.util/utils:工具包
5.dao:data access object 数据访问对象,数据库的功能
6.vo:value object
关键字:
package
package 包结构; //用来表示当前类属于那个包中
注:这条语句必须是Java文件的第一条语句
1.2、导入
当一个包中的类使用到了其他包中的类时,需要将这个要使用的类导入进来
关键字:
import
import 包结构.类名
如果导入的多个类在同一个包中,可以通过
*
来简化
注:
1.
lang
包中的类在使用时无需导入 2.
包结构.类名
这段内容称为全限定类名、类的完整了路径、全类名、类全名
二、范围修饰符
范围修饰符也称权限修饰符,它用来限制成员变量和成员方法的使用范围
public
:公共的,任何类都能访问公共的成员
protected
:受保护的,只能在同包中访问,其他包中只有子类能访问
[default]
:默认的,只能在同包中访问
private
:私有的,只能在本类访问
public protected [default] private 本类中 √ √ √ √ 同包的其他类 √ √ √ × 其他包中的子类 √ √ × × 其他包中的无关类 √ × × ×
三、内部类
3.1、概念
在一个类中定义的类就叫内部类(inner class),外面的类就叫外部类(outer class)
内部类的分类:
1.成员内部类
2.静态内部类
3.局部内部类
4.匿名内部类
内部类的特点:
1. 内部类可以访问到外部类中的所有成员,包括私有的
2.内部类编译后也生产
.class文件
,文件名:外部类名$内部类名.class
3.2、成员内部类
概念:定义在其他类中成员位置上的类
特点:
1.成员内部类中只能定义非静态的属性和方法
2.内部类可以访问到外部类中的所有成员,包括私有的
内部类的创建方式:
外部类.内部类 对象名 = new 外部类().new 内部类();
注:内部类中访问外部类的同名成员时,
外部类名.this.外部类中的同名成员
3.3、静态内部类
概念:使用静态修饰的成员内部类
特点:
1.静态内部类中可以定义非静态的成员,也可以定义静态的成员
2.静态内部类只能访问外部类中的静态成员
静态内部类对象的创建:
外部类.内部类 对象名 = new 外部类.内部类();
3.4、局部内部类
概念:定义在其他方法内部的类
特点:
1.局部内部类中只能定义非静态的成员
2.局部内部类的对象只能定义在它的方法中,局部内部类的定义之后
注:局部内部类编译后的
.class
文件的文件名:外部类$序号内部类.class
3.5、匿名内部类
概念:使用使用匿名的方式创建一个类(接口)的子类(实现类)对象,匿名内部类本身就是一个对象
new 父类/接口 (){ //重写; };
特点:
1.匿名内部类本身就是一个对象
2.一般匿名内部类中不会定义任何属性和方法
3.一般使用匿名内部类都是用于创建抽象类和接口的子类对象
注:匿名内部类编译后的
.class
文件的文件名:外部类$序号.class
//重写;
};
特点: 1.匿名内部类本身就是一个对象 2.一般匿名内部类中不会定义任何属性和方法 3.一般使用匿名内部类都是用于创建抽象类和接口的子类对象 注:匿名内部类编译后的`.class`文件的文件名:`外部类$序号.class`