final修饰符
- 可以修饰类,函数,变量。
- 被final修饰的类不可以被继承。作用是为了避免被继承,被子类复写功能。
- 被final修饰的方法不可以被复写。
- 被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,又可以局部变量。常量的书写规范所有字母都大写,如果由多个单词通过_连接。
- 内部类定义在类中的局部位置上是,只能访问该局部被final修饰的局部变量。
static修饰符
用于修饰成员(成员变量,成员函数),可以直接被类名调用。
特点: - 随着类的加载而加载
- 优先于 对象存在
- 被所有对象共享
- 可以直接被类名调用
静态使用注意事项: - 静态方法只能访问静态成员,非静态方法既能访问静态也可以访问非静态。
- 静态方法不可以出现this和super关键字。
public,protect,private权限符
private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)
私有只在本类中有效。super,this访问符
this本类: - 区分成员变量和局部变量
- 用于构造函数之间互相调用,必须在构造函数第一行
super父类:封装
定义:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处: - 将变化隔离
- 便于使用
- 便于控制变量值
- 提高重用性
- 提高安全性
封装原则:
- 将不需要对外提供的内容都隐藏起来。
- 把属性都隐藏,提供公共方法对其访问。
继承 is a
1.提高了代码的复用性
2.让类与类之间产生了关系,有了这个关系,才有了多态的特性。
3.不支持多继承
类成员特点:
1.变量
2.函数
3.构造函数
接口
接口可以多继承
接口是对外暴露的规则。
接口是程序的功能扩展。
接口可以用来多实现。
类与接口之间是实现关系。而且类可以继承一个类的同时实现多个接口
接口与接口之间可以有继承关系。
组合/聚集/聚合 has a
多态
重载
重写
构造函数
特点:
函数名与类名相同
不用定义返回值类型
不可以写return语句
作用:
给对象进行初始化
注意:
默认构造函数的特点
多个构造函数是以重载的形式存在的。
构造函数只运行一次。
构造代码块
作用:给对象进行初始化
对象一建立就执行,而且优先于构造函数执行。
和构造函数的区别:
构造代码块是给所有对象进行统一初始化,而构造函数是给对象的对象初始化。
成员变量和局部变量
作用范围
成员变量作用于整个类中。
局部变量作用与函数中。
在内存中的位置
成员变量在堆内存中,因为对象存在,才在内存中存在。
局部变量存在栈内存中。
jvm传参
java 类名 参数
main函数互相调用。
java帮助文档
使用class二进制文件:
set classpath=.;路径;
分别是本路径和绝对路径。
javadoc -d 目录路径 类名
导出帮助文档。
静态代码块
static{}
随着类的加载而执行,只执行一次,优先于主函数。
Person p=new Person(“zhangsan”,20)都做了什么
- 因为new用到了Person.class,所以会先找到Person.class文件并加载到内存中
- 执行该类中的static代码块,如果有的话,给Person.class类中静态变量进行初始化。
- 在堆内存中开辟空间,分配内存地址。
- 在堆内存中建立对象的特有属性,并进行默认初始化。
- 对属性进行显示初始化。
- 对对象进行构造代码块初始化
- 对对象进行对应的构造函数的初始化。
- 将内存地址付给栈内存中的p变量。