博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objec类和final关键字的用法
阅读量:4324 次
发布时间:2019-06-06

本文共 1280 字,大约阅读时间需要 4 分钟。

 

         一、在继承中,子类继承父类,那父类继承谁呢,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修饰的方法,不能被重写

转载于:https://www.cnblogs.com/warrior4236/p/6055738.html

你可能感兴趣的文章
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_5_Stream流中的常用方法_map...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_6_Stream流中的常用方法_count...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_7_Stream流中的常用方法_limit...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_8_Stream流中的常用方法_skip...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_3_Stream流中的常用方法_filter...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_10_练习:集合元素处理(传统方式)...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_9_Stream流中的常用方法_concat...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_11_练习:集合元素处理(Stream方式)...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_1_方法引用基本介绍...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_2_方法引用_通过对象名引用成员方法...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_5_方法引用_通过this引用本类的成员...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_7方法引用_数组的构造器引用...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_3_方法引用_通过类名引用静态成员...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_3_Junit_使用步骤...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_6_方法引用_类的构造器(构造方法)引用...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_5_反射_概述
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_2_Junit_测试概述...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_7_反射_Class对象功能概述...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_4_Junit_@Before&@After...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_9_反射_Class对象功能_获取Constructor...
查看>>