一.final关键字
1.final的概念
关键字final,final的意思为最终,不可变。final是个修饰符,它可以用来修饰类,类的成员,以及局部变量。
2.final的特点
(1)final修饰类不可以被继承,但是可以继承其他类;
(2)final修饰的方法不可以被覆盖/覆写override,但父类中没有被final修饰方法,子类覆盖后可以加final;
(3)final修饰的变量称为常量,这些变量只能赋值一次;
(4)修饰成员变量,需要在创建对象前赋值,否则报错。(当没有显式赋值时,多个构造方法的均需要为其赋值。)
(5)引用类型的变量值为对象地址值,地址值不能更改,但是地址内的对象属性值可以修改。
二.static关键字
1.static概念:static它是静态修饰符,一般用来修饰类中的成员。
2.static特点
(1)被static修饰的成员变量属于类,不属于这个类的某个对象;多个对象共享同一个static成员变量。
(2)被static修饰的成员可以并且建议通过类名直接访问。
访问静态成员的格式:
类名.静态成员变量名
类名.静态成员方法名(参数)
3.static注意事项
(1)静态内容是优先于对象存在,只能访问静态,不能使用this/super。静态修饰的内容存于静态区;
(2)同一个类中,静态成员只能访问静态成员;
(3)main方法为静态方法仅仅为程序执行入口,它不属于任何一个对象,可以定义在任意类中。
4.定义静态常量
在类中定义一个静态常量,通常使用public static final修饰的变量来完成定义。此时变量名,数字字母下划线$,数字不能开头,用全部大写,多个单词使用下划线连接。
三.匿名对象
1.匿名对象的概念
匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。
2.匿名对象的特点
(1)创建匿名对象直接使用,没有变量名;
(2)匿名对象在没有指定其引用变量时,只能使用一次,在new的那一刻;
(3)匿名对象可以作为方法接收的参数、方法返回值使用。
四.内部类
1.内部类概念
将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类。其他类也称为外部类。
2.内部类的分类
内部类分为成员内部类与局部内部类;内部类中可以直接访问外部类的所有成员。
3.成员内部类
(1)定义格式
class 外部类 {
修饰符 class 内部类 {
//其他代码
}
}
(2)访问方式
外部类名.内部类名 变量名 = new 外部类名().new 内部类名();
外部类名.内部类名 变量名 = 外部对象.new 内部类名();
4.局部内部类
(1)定义格式
class 外部类 {
修饰符 返回值类型 方法名(参数) {
class 内部类 {
//其他代码
}
}
}
(2)访问方式
在外部类方法中,创建内部类对象,进行访问.
5.匿名内部类
(1)概念
匿名内部类,它是局部内部类的一种;
临时定义某一指定类型的子类;
定义后即刻创建刚刚定义的这个子类的对象。
6.定义匿名内部类的作用与格式
作用:匿名内部类是创建某个类型子类对象的快捷方式。
格式:
new 父类或接口(){
//进行方法重写
};
五.包的声明与访问
1.包的概念
java的包,其实就是我们电脑系统中的文件夹,包里存放的是类文件。
2.包的声明格式
package 包名.包名.包名…;
注意:声明包的语句,必须写在程序有效代码的第一行(注释不算)
3.包的访问
包名.包名….类名
如: java.util.Scanner
java.util.Random
带有包的类,创建对象格式:包名.类名 变量名 = new包名.类名();
4.import导包
导包的格式:
import 包名.类名;
import导包代码书写的位置:在声明包package后,定义所有类class前,使用导包import包名.包名.类名;
六.访问修饰符
1.public:被public修饰的内容,在当前项目的范围内都可以访问
2.Private:被private修饰的内容,(通常为成员变量成员方法),只有在当前类中可以使用
是封装的一种体现形式,可以通过间接访问的方式使用
3.Default/package:默认权限,不能写出,在不写明权限修饰符时则为default;最大可到达同一包下
4.Protected:在不同包的子类中可以使用
七.代码块
1.局部代码块
局部代码块是定义在方法或语句中
特点:
以”{}”划定的代码区域,此时只需要关注作用域的不同即可
方法和类都是以代码块的方式划定边界的
2.构造代码块
构造代码块是定义在类中成员位置的代码块
特点:
优先于构造方法执行,构造代码块用于执行所有对象均需要的初始化动作
每创建一个对象均会执行一次构造代码块。
3.静态代码块
静态代码块是定义在成员位置,使用static修饰的代码块。
特点:
(1)它优先于主方法执行、优先于构造代码块执行,当以任意形式第一次使用到该类时执行。
(2)该类不管创建多少对象,静态代码块只执行一次。
可用于给静态变量赋值,用来给类进行初始化。