构造方法和setter的区别
1.直接赋值:对象.属性名 = 值
2.构造方法:对于属性值,只能赋值一次,而且在创建对象时赋值。
3.setter方法:创建对象后需要修改属性的值。
final
1.final用法:
①修饰变量→常量
②修饰方法→不能被重写
③修饰类→不能被继承
2.final、finally、finalize区别:
1.final的用法。
2.finally不论执行tyr还是catch都会执行finally的内容。
3.finalize()垃圾回收的方法
接口
1.概念:协议,约定,一系列规范和约定,目前接口里的方法全部是抽象方法(jdk1.8之前不包括)
2.接口的声明:
①关键字:interface,格式→[权限修饰符] interface 接口名称{}
②接口中声明的方法:
接口中声明的方法都是抽象方法,一般不写abstract
③接口中声明的属性:
接口中的属性一般都是静态常量,一般会省略public final static
3.接口对象的创建:
①接口中的方法都是抽象的,所以接口不能够直接创建对象。
②要想创建对象,必须实现接口中的方法。
③要使用子类创建对象:
关键字:implement
格式:class 类名 implement 父类接口1,父类接口2{}
4.接口的细节:
①接口的特点:接口可以多实现,多继承,多重继承。
②接口与抽象类的区别:
①写法:
接口:interface class
抽象类:abstract class
②成员:
接口:抽象类
抽象类:抽象类、属性、方法、构造方法、代码块
③子类实现:
接口:implement
抽象类:extends
④特点:
接口:多实现,多继承,单继承,多重继承
抽象类:单继承,多重继承
⑤用途:
接口:不同事物之间相同功能
抽象类:同一种事物共有的特性
联系:把接口看成一个特殊的抽象类,里面的方法全部是抽象的。
包
1.功能:分类管理Java文件。
2.包的规则:全球统一,公司域名倒置 + 项目名称 + 模块名称 + 包的功能名称
3.包的分隔符:用点进行分割,每个点表示一层
4.包的声明:表示该类在那个包下,如果没有package声明。在src下,package包路径
注意:包声明只有一次,并且在第一行
5.导包:指明该类在那个包下,import类路径下。
导包可以是多个,在package下面。
权限修饰符
1.public:公开的,在整个项目都可以。
2.private:私有的,在当前类可以访问。
3.default/friendly:默认可以不写,在本类可以访问
4.protected:受保护的,当前包可其他包的子类。
内部类
1.成员内部类:类中方法外
①一般成员内部类:格式→class 类名称{}
②静态成员内部类:格式→static 类名称{}
③私有成员内部类:格式→private 类名称{}
2.局部内部类:方法中
3.内部类的命名:外部类名称+ $ + 内部类名称
4.一般成员内部类:
①一般成员内部类调用外部类的非静态方法:直接调用
②外部类的非静态成员调用一般成员内部类的非静态成员:创建对象,在调用
③一般成员内部类中不允许有静态方法,但可以有final static修饰的静态成员变量。
④外部类的外面创建一般成员内部类的对象:
数据类型 外部类名.内部类名 例如:c.a ca = new c().new a();
5.静态成员内部类:
①静态成员内部类的静态方法调用外部类的静态方法:直接调用
②静态成员内部类的静态方法调用外部类的非静态方法:创建外部类对象,在调用
③静态成员内部类的非静态方法调用外部类的静态方法:直接调用
④静态成员内部类的非静态方法调用外部类的非静态方法:创建外部类对象,在调用
①静态成员外部类的静态方法调用内部类的静态方法:内部类名.方法(参数)
②静态成员外部类的静态方法调用内部类的非静态方法:创建内部类对象,在调用
③静态成员外部类的非静态方法调用内部类的静态方法:内部类名.方法(参数)
④静态成员外部类的非静态方法调用内部类的非静态方法:创建内部类对象,在调用
总结:
①静态成员内部类的方法,调用外部类的静态方法:直接调用
②静态成员内部类的方法,调用外部类的非静态方法:创建外部类对象,在调用
③外部类方法,调用静态成员内部类的静态方法:内部类名.方法(参数)
④外部类方法,调用静态成员内部类的非静态方法:创建内部对象,在调用
外部类创建内部类对象:
格式:外部类的名称.内部类的名称 对象名称 = new 外部类名.内部类名()
6.私有成员内部类
①私有成员内部类的非静态方法调用外部类方法:直接调用
②外部类的非静态成员调用私有成员内部类的非静态方法:创建内部类对象,调用方法
③外部类的静态方法调用私有成员内部类中的非静态方法:先创建外部类对象,在创建内部
类对象,在调用方法
④外部类的外面创建私有成员内部类的对象:不行