super关键字
引用父类的成员变量的格式为 super.成员变量名称
引用父类的非静态方法的格式为 super.方法名(参数列表)
引用父类的构造方法的格式为 super(参数列表)
final关键字
final修饰类这个类就不能被继承,但不影响创建对象,如系统的String类
final修饰的方法不能被重写,但父类中没有被final修饰方法,子类覆盖后可以加final。
final修饰局部变量,只能够赋值一次,当修饰的是引用的类型的时候,不能被重新赋值,但是可以修改对象的属性
final修饰成员变量,必须在定义的时候进行赋值,不会有自动初始化值,(或者在构造方法中进行赋值)
被static修饰的成员变量属于类,不属于这个类的某个对象(多个对象共享一个static修饰的成员变量)
被static修饰的成员变量属于类,不属于这个类的某个对象(多个对象共享一个static修饰的成员变量)
被static修饰的成员变量和成员方法建议直接通过类名进行访问,使用对象访问的时候会有警告
静态方法中只能使用静态成员变量,不能使用this/super
static 静态的 成员信息在类中 在方法区中,常量池(常量)、静态内存区(静态成员信息)
不能修饰类
修饰方法:该方法是静态方法,在类中存储,通过类去执行调用
修饰变量:静态变量 在类中存储
静态全局变量 在类中存储,类中的信息共享,所以被所有的对象所共享
代码块
局部代码块:定义在方法中,用户划分区域的,代码块内能声明变量,可以放语句不能声明方法。
构造代码块:定义在类成员变量位置的代码块,每次创建对象的时候都会执行,优先于构造方法
//构造代码块格式
{
}
静态代码块:定义在类的成员变量位置的用static修饰的代码块
//静态代码块格式
static{ }
定义在类成员变量位置的代码块,每次创建对象的时候都会执行,优先于构造方法
它优先于主方法执行、优先于构造代码块执行,当以任意形式第一次使用到该类时执行。
该类不管创建多少对象,静态代码块只执行一次。
可用于给静态变量赋值,用来给类进行初始化。
访问修饰符
public |
protected
|
default
|
private
|
|
同一类中
|
√ | √ | √ | √ |
同一包中(子类与无关类)
|
√ | √ | √ | |
不同包的子类
|
√ | √ | ||
不同包中的无关类
|
√ |
该equals
类方法Object
实现对象上差别可能性最大的相等关系; 也就是说,对于任何非空的参考值x
和y
,当且仅当x
和y
引用相同的对象( x == y
具有值true
)时,该方法返回true
。
请注意,无论何时覆盖该方法,通常需要覆盖hashCode
方法,以便维护hashCode
方法的通用合同,该方法规定相等的对象必须具有相等的哈希码。
public String toString()
该toString
类方法Object
返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串@
”和对象的哈希码的无符号的十六进制表示。
public static void main(String[] args) { Object o = new Object(); Object x = new Object(); Object y = new Object(); System.out.println(x.equals(y)); ObjectDemo demoAPI = new ObjectDemo(); System.out.println(demoAPI.toString());//com.zhiyou100.api.DemoAPI@1f 全限定类名:包名+类名 }
原文:https://www.cnblogs.com/zenyang-/p/13209904.html