zoukankan      html  css  js  c++  java
  • Java 面向对象 --Object类

    Object类是所有类的父类;

    Object类的常用方法

    1,public String toString() 返回该对象的字符串表示。

    2,public boolean equals(Object obj) 指示其他某个对象是否与此对象“相等”

    package com.java1234.chap03.sec14;
     
    public class A{
     
        /**
         * Object是所有类的父类
         */
        public A() {
            super();
            // TODO Auto-generated constructor stub
        }
     
    }

    alt+shift+s 弹出菜单 ,然后Generate Constructors from Superclass 自动从父类生成构造方法,这里的super() 我们鼠标先移动上去

    然后按住ctrl,然后点进去,会进入到Object类:

    我们可以看到父类Object所有的方法,当然我们也可以通过ctrl+o 弹出outline,

    接下来讲toString()方法:

    我们先上一个类:

    package com.java1234.chap03.sec14;
     
    public class People {
     
        private String name;
     
        public People(String name) {
            super();
            this.name = name;
        }
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
     
        public static void main(String[] args) {
            People p1=new People("张三");
            System.out.println(p1);
            System.out.println(p1.toString());
        }
    }

    定义了一个name属性 生成了get set方法 以及main方法测试 

     

    运行输出:

    com.java1234.chap03.sec14.People@15db9742

    com.java1234.chap03.sec14.People@15db9742

    输出对象,默认调用的是toString()方法;

    这里我们通过修改toString()实现,来实现输出对象的结果:

    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return super.toString();
    }

    这里调用的是Object默认实现,我们来修改下:

    package com.java1234.chap03.sec14;
     
    public class People {
     
        private String name;
     
        public People(String name) {
            super();
            this.name = name;
        }
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
         
         
        @Override
        public String toString() {
            return this.getName();
        }
     
        public static void main(String[] args) {
            People p1=new People("张三");
            System.out.println(p1);
            System.out.println(p1.toString());
        }
    }

    运行输出:

    张三

    张三

     equals 是比较对象的引用,是否指向同一个堆内存;

    我们上下代码:

    package com.java1234.chap03.sec14;
     
    public class People {
     
        private String name;
     
        public People(String name) {
            super();
            this.name = name;
        }
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
         
     
        public static void main(String[] args) {
            People p1=new People("张三");
            People p2=new People("张三");
            System.out.println(p1.equals(p2));
        }
    }

    运行输出:

    false

     我们来重写下equals方法,来实现比较具体内容:

    package com.java1234.chap03.sec14;
     
    public class People {
     
        private String name;
     
        public People(String name) {
            super();
            this.name = name;
        }
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
         
         
     
        @Override
        public boolean equals(Object obj) {
            String name=((People)obj).getName();
            return this.name==name;
        }
     
        public static void main(String[] args) {
            People p1=new People("张三");
            People p2=new People("张三");
            People p3=new People("李四");
            System.out.println("p1.equals(p2):"+p1.equals(p2));
            System.out.println("p1.equals(p3):"+p1.equals(p3));
        }
    }

    运行输出:

    p1.equals(p2):true

    p1.equals(p3):false

     

  • 相关阅读:
    威胁情报网站
    python3实现telnet查看IP地址段端口开放情况
    python3实现指定IP多线程端口扫描
    安全网址导航
    python3调用exe程序编写cve20190708批量检测工具
    python3爬取网页中的邮箱地址
    黑客马拉松
    Nginx自定义模块编写:根据post参数路由到不同服务器
    Apache HTTP Server 与 Tomcat 的三种连接方式介绍
    Apache HTTP Server 与 Tomcat 的三种连接方式介绍
  • 原文地址:https://www.cnblogs.com/xyg-zyx/p/9827335.html
Copyright © 2011-2022 走看看