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

    
    一.Object类中的equals()方法
    equals(Object obj) :指示其它某个对象是否与此对象“相等”。

    返回值类型是boolean Oblect类中的equals方法 public boolean equals(Object obj) 姓名和年龄都同样,为同一个人 假设要比較两个人是否为同一个人,Person类就要复写equals方法 class Person { private String name; private int age; public Person(){} public Person(String name,int age) {this.name = name;this.age = age;}

    	public void setName(String name)
    	{this.name = name;}
    	public String getName()
    	{return name;}
    	public void setAge(int age)
    	{this.age = age;}
    	public int getAge()
    	{return age;}
    	public boolean equals(Object obj)
    	{
    		if(this == obj)
    		{return true;}
    		if(obj instanceof Person)
    		{
    		Person p1 = (Person)obj;
    		return (this.getName()== p1.getName())&& (this.getAge()== p1.getAge());			}
    		return false;
    	}
    }
    class PersonDemo
    {
    	public static void main(String[] args)
    	{   Person p1 = new Person("张三",25);
    		Person p2 = new Person("张三",25);
            System.out.println( p1.equals(p2));
    	}
    }
     
    
    
    二.Object类中的toString方法
     public String toString()
     返回该对象的字符串表示。通常。toString 方法会返回一个
     “以文本方式表示”此对象的字符串。结果应是一个简明但易
     于读懂的信息表达式。建议全部子类都重写此方法。 
    
    class Person
    {
    	private String name;
    	private int age;
    	public Person(){}
    	public Person(String name,int age)
    	{this.name = name; this.age = age;}
    	public void setName(String name)
    	{this.name = name;}
    	public String getName()
    	{return name;}
    	public void setAge(int age)
    	{this.age = age;}
    	public int getAge()
    	{return age;}
    	public String toString()
    	{
          return name;
        }
    }
    class Day02
    {
    	public static void main(String[] args)
    	{
    		Person p1 = new Person("张三",25);
    		Person p2 = new Person("张三",24);
            System.out.println( p1.toString());//
    		//没有toString()方法输出的是Person@1db9742
    		//返回的是一个字符串,由“@”和此对象哈希码的
    		//无符号十六进制表示组成,比較难懂,建议定义toString()
    		//方法,复写父类Object的toString方法,自己定义字符串表现形式
            //有了toString方法后,覆写了object类中的toString方法
    		//自己定义了返回的字符串表现形式,输出结果就是:张三
    	}
    }
    
    
    
    
    三.Object类中的getClass
    返回的的是当前对象所属类的字节码文件对象(Class)
    
    一个字节码文件对象能够相应好几个对象
    所以 System.out.println(cls1 == cls2);//true
    
    而Class类中有getName()方法,getField()方法,getMethod()方法等等
                   
    public final Class<?> getClass()
    class Person
    {
    	private String name;
    	private int age;
    	public Person(){}
    	public Person(String name,int age)
    	{this.name = name; this.age = age;}
    	public void setName(String name)
    	{this.name = name;}
    	public String getName()
    	{return name;}
    	public void setAge(int age)
    	{this.age = age;}
    	public int getAge()
    	{return age;}
    }
    class Day02
    {
    	public static void main(String[] args)
    	{
    		Person p1 = new Person("zhangsan",24);
    		Person p2 = new Person("lisi",25);
      Class cls1 = p1.getClass();
    		Class cls2 = p2.getClass();
            System.out.println(cls1);//class Person
    		System.out.println(cls2);//class Person
    		System.out.println(cls1 == cls2);//true
            System.out.println(cls1.getName());//Person
           }
    }
    
    

  • 相关阅读:
    2020-09-05:虚拟内存知道么?什么时候使用虚拟内存?虚拟内存除了扩大内存还有什么用?
    2020-09-04:函数调用约定了解么?
    2020-09-03:裸写算法:回形矩阵遍历。
    2020-09-02:Sqoop的工作原理?
    2020-09-01:mysql里什么是检查点、保存点和中间点?
    2020-08-31:描述HTTP的版本之间的区别,主要是1.0/1.1/2.0三个版本的区别。
    2020-08-30:裸写算法:二叉树两个节点的最近公共祖先。
    2020-08-29:进程线程的区别,除了包含关系之外的一些区别,底层详细信息?
    2020-08-28:边缘网关协议了解么?简单描述一下。
    2020-08-27:OpenStack与Docker的区别?
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6766869.html
Copyright © 2011-2022 走看看