一、在继承中,子类继承父类,那父类继承谁呢,java中如果类没有指定继承谁,那么就默认继承Object类,object类是所有对象的直接或者间接的父类,根类,或者叫做基类,它里面定义的功能所有的对象都应该具备。
二、object类中的toString()方法:java中所有对象都有toString这个方法,它输出的是对象所属的类名,@加上内存地址(十六进制的)。具体代码体现如下:
class DuoDemo { public static void main(String[] args) { Person p=new Person(); // System.out.println(p);//默认调用toString这个方法 //输出对象所属类名+@+十六进制的hashcode值 //System.out.println(p.toString()); System.out.println(p.getClass().getName()+"@"+Integer.toHexString(p.hashCode())); } //getClass()获取类和类名;getName()获取类名;Integer调用转换为十六进制的方法把hashCode转换为十六进制数: } class Person { void eat() { System.out.println("吃饭"); } }
三、Object类中equals的()的方法,用来比较两个对象是否相等
1、如果定义一个Person 类,Person p1=new Person();Person p2=new Person();
那么p1和p2在栈中分别指向堆中两个不同的对象,所以两个对象的地址值是不同的,那么
System。out 。println(p1.equals(p2));输出结果就是false
2.如果Person p1=new Person(); Person p2=p1; p1指向堆中的对象,又把内存地址复制一份给了p2,所以p1和p2都指向堆中的对象。堆中只有一个对象。所以只有一个内存地址,那么
System。out、println(p1.equals(p2));输出结果为true
3、当然此处比较的是内存地址,如果把equals换成是==号,也可以。
四、final关键字的用法:final 最终的,最后的,它可以用来修饰类、变量、方法
1.被final 修饰的类,是最终类,不能够被继承,这在一定程度上保证了程序的安全性。
2.被final修饰的变量,就成为了常量,只能进行一次赋值,不能进行第二次赋值,而且变量名要大写。,如果这个变量有多个单词组成,那么单词之间用_号连接。
如:public static final PI=3.14;
注意:内部类中定义在类中的局部位置上时,只能访问该局部被fina 修饰的局部变量
3.被fianl修饰的方法,不能被重写