zoukankan      html  css  js  c++  java
  • Objec类和final关键字的用法

     

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

  • 相关阅读:
    IDEA2019.1.2破解教程
    Java基础 -- 常见异常
    Java基础 -- Java基本类(部分)
    Java基础 -- IO流
    Java基础 -- Java方法
    Java数组
    IDEA首次配置问题
    Java开发环境搭建
    dos的几种打开方式和基本dos命令
    SpringBoot内外部配置文件加载和优先级
  • 原文地址:https://www.cnblogs.com/warrior4236/p/6055738.html
Copyright © 2011-2022 走看看