Object类中的方法

本文详细讲解了Java中的四种重要方法:toString()用于对象字符串表示,equals()比较对象内容与引用,hashCode()生成唯一标识,getClass()获取类信息。通过实例演示了这些方法在对象比较和一致性中的作用。
摘要由CSDN通过智能技术生成

方法1、toString( )

属于超级父类Object ,调用或者不调用都会默认调用toString(),具体返回值会根据重写的内容,返回不同的内容;

public class Java14{
	private String name;
	private int age;
	
	public Java14(String name,int age){
		this.name=name;
		this.age=age;
	}
	public String toString(){
		return this.name+","+this.age;
	}
	public static void main(String [] args){
		Object md=new Java14("张三",30);
		System.out.println(md);
	}
}
public class Java13{
	public String toString(){
		return "你好";
	}
	public static void main (String [] args){
		Object md=new Java13();
		System.out.println(md );
	}
}

方法2、equals()

==比较的时基本数据类型 , equals比较的是引用数据类型;

== 比较的是【栈】中的地址,用来比较两个对象的【地址】是否相同;

equals 比较的是两个对象的【地址值】是否相同

String中的equals和Object中的equals方法不同, String中的比较的不仅是对象的地址,还会比较内存中的内容,只要满足其中一个条件就行

而Object中的equals方法,对比的是对象的地址,一但地址不同,就会返回false。功能和==相同,所以有时需要重写Object中的equals方法

public class Java18{
	 String name;
	 int age;
	
	public Java18(String name,int age){
		this.name=name;
		this.age=age;
	}
		public String getName(){return this.name;}
		public int getAge(){return this.age;}
		
		public boolean equals(Java18 another){
		//如果你自己的对象和传入的对象地址一致 返回true
		if(this == another){
			return true;
		}
		//如果地址不一样 我们就比较name和age是否一样 返回true
		if(this.name.equals(another.getName())&&this.age == another.getAge()){
			return true;
		}
		return false;
	}
	public String toString(){
		return this.name+","+this.age;
	}
	public static void main(String [] args){
		Java18 md=new Java18("张三",30);
		Java18 md1=new Java18("张三",30); 
		System.out.println(md.equals(md1));
		//String s1=new String("123");
		//String s2=new String("123");
		//System.out.println(s1.equals(s2));
	}
}

 

方法3、hashCode()

生成对象的唯一标识

public class Java19{
	private String name;
	private int age;
	
	public Java19(String name,int age){
		this.name=name;
		this.age=age;
	}
	
	public static void main(String [] args){
		Java19 md=new Java19("张三",20);
		Java19 md1=new Java19("张三",20);
		//hashCode()  对象md,md1的身份证
		System.out.println(md.hashCode());
		System.out.println(md1.hashCode());
	}
}

方法4、getClass()

获取该对象的所属类

public class Java20{
	private String name;
	private int age;
	
	public Java20(String name,int age){
		this.name=name;
		this.age=age;
	}
	
	public static void main(String [] args){
		Java20 md=new Java20("张三",20);
		Java20 md1=new Java20("张三",20);
		//getClass 就是看md,md1属于哪个类
		System.out.println(md.getClass());
		System.out.println(md1.getClass());
	}
}

final

1、用在变量

变量名称大写;

不能在修改变量值;

2、用在方法

不允许子类重写

3、用在类

结扎 无法被继承

public class Java21{
	//变量名NAME大写  NAME就是常量
	public final String NAME="张三";
	public static void main (String [] args){
		Java21 md = new Java21();
		System.out.println(md.NAME);
	}
}
public class Java21{
	//变量名NAME大写
	public final String NAME;
	public Java21(String name){
		this.NAME=name;
	}
	public static void main (String [] args){
		Java21 md = new Java21("王五");
		System.out.println(md.NAME);
	}
}
父类
public class Java21{
	//变量名NAME大写
	public final String NAME="张三";
	//加final 表示此方法为最终方法  不允许子类重写
	public final void eee(){
		System.out.println("040");
	}
}
子类继承父类
  public class Java22 extends Java21{
	public static void main(String [] args){
		Java22 md=new Java22();
		md.eee();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值