java笔记12:面向对象-包和访问修饰符
1.package(包)
1)什么是package
- 将不同功能或不同模块的 java文件,分类管理,方便寻找
- 不同的两个包中
- 可以有同名的类
- 方便团队开发
### 1.3)实际上:每个类的全称 也叫全类名=包名+文件名
- oopday04.am.pet.Dog
- oopday03.am.pet.Dog
- java中不允许全类名相同的两个类
### 1.4)包名全部单词字母小写
- 如果多个单词组成包名,用.分隔
### 1.5)企业中标准的包名格式
- 通常使用域名反写的原则
- www.baidu.com
- cn.tedu.shoot.
2.import
1)什么是import
- 导入指定类,到当前包
- 导入指定类之后
- 当前包就可以直接使用这个类
2)import的用法
- 2.1)import <包名>.<类名>;
- 2.2)import <包名>.*;
3)import使用时的注意事项
- 3.1)如果导入了一个和当前包中的类同名的类 使用时是导入的类
- 3.2)在同一个类中不允许使用import 导入同名的两个类 如果必须使用 那么有一个类就必须在 方法中使用全类名
- 3.3)使用*导入的类的优先级 低于使用类名导入的类
4)java中import默认导入 java.lang.*
3.访问修饰符
1) 什么是访问修饰符
规定类中的属性和方法
可以由谁调用的修饰符
2) 为什么需要访问修饰符
隐藏一些不必要让用户调用的成员
提高程序的封装性
从而简化操作提高程序的安全性
3) 访问修饰符的类型
* 3.1) public(公有) 宽松
* 3.2) protected(保护)
* 3.3) 默认
* 3.4) private(私有) 严格
4)访问修饰符的修饰效果
本类 同包 不同包子类 其他
public √ √ √ √
protected √ √ √
默认 √ √
private √
5)访问修饰符的注意事项
- 5.1)类中的属性和方法 可以使用四种访问修饰符修饰
- 5.2)类-class只能使用 public或默认修饰符修饰
- 5.3)非父类属性私有 父类属性保护 类中的方法公有
4.final关键字
final:最终
1)什么是final
就是一个表示"最终"状态的修饰符
2)final的使用
- 2.1)修饰类 被final修饰的类不能被继承
- 2.2)修饰方法 被final修饰的方法不能被重写
2.3)修饰属性
* 被final修饰的属性值不能修改 * 被final修饰的属性,没有默认值 * 所以必须赋值 * 1.声明时赋值 * 2.构造方法中赋值
2.4)修饰局部变量
* 被final修饰的局部变量 * 初始化之后值不能修改 * 用final修饰形式参数 * 形参不能修改值
5.static关键字
static:静态
1)修饰属性
- 1.1)被static修饰的属性称之为 静态属性或类属性
- 1.2)静态属性的值是这个类的所有 对象共享的
- 1.3)静态属性会被JVM保存到 方法区
- 1.4)静态属性适合将所有对象共享 的资源保存起来,能节省内存 例如:飞机大战中的图片
- 1.5)静态属性官方建议使用 类名调用
2)修饰方法
- 1.1)被static修饰的方法称之为 静态方法或者类方法
- 1.2)静态方法和静态属性一样 可以使用类名调用 所以调用静态方法 可以不实例化对象直接调用
- 1.3)静态方法中,没有也不能使用 this关键字
- 1.4)如果这个方法中不涉及任何 当前对象的实例成员就可以 设置为静态方法
3)修饰初始化块
### 什么是初始化块
编写初始化块,能在构造方法执行 前执行指定代码
- 3.1)static修饰初始化块 称之为静态初始化块或静态块
- 3.2)静态块会在类被加载到JVM时运行 一次程序运行,类只会被加载一次 所以静态块只会运行一次
- 3.3)如果有一些代码程序运行一次 只会执行一次的,就可以写在静态块中 通常情况下: 静态块用于加载程序运行需要的资源