黑马程序员-day08-面向对象(Object类)

本文介绍Java中Object类的equals方法和toString方法的使用。通过重写equals方法实现自定义对象之间的年龄比较,并展示了如何利用toString方法来自动生成对象的字符串表示形式。
------- android培训java培训、期待与您交流! ----------

Object类
定义:
是所有对象的直接或者间接父类。该类中定义的肯定是所有对象都具备的功能。

Object类中的equals方法
作用:指示其他某个对象是否与此对象“相等”,就是比较哈希码值是否相等。
演示代码
import java.lang.reflect.Method;
 
/*
需求:比较两个人是不是同龄人
思路:重写父类的equals方法,定义自己特有比较方法
*/
//人类
class Person{ //extends Object
	private String name;
	private int age;
	
	Person(String name,int age){
		this.name = name;
		this.age = age;
	}
	//重写equals方法:比较两个人是不是同龄人
	public boolean equals(Object obj){
		//判断比较的对象是不是同类型对象
		if(obj instanceof Person){
		//多态,向下转型
		Person p = (Person)obj;
		return this.age == p.age;
		}
		return false;
	}
}

//猫类
class Cat{
}

//测试类
class ObjectDemo{
	public static void main(String[] args){
		Person p1 = new Person("hxm",20);
		Person p2 = new Person("lx",20);
		Cat c = new Cat();
		//同类型对象比较
		System.out.println(p1.equals(p2));
		//不同类型对象比较
		System.out.println(p1.equals(c));
		
		//获取Person类中方法
		System.out.println("获取Person类中方法");
		Method[] meth = p1.getClass().getMethods();
		for(int x=0; x<meth.length; x++){
			System.out.println(meth[x].toString());
		}
	}
}

Object类中的toString方法
作用:返回该对象的字符串表示。该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于: 
getClass().getName() + '@' + Integer.toHexString(hashCode())

注意:
输出语句打印对象时,会自动调用对象的toString方法。打印对象的字符串表现形式。
根据已有信息,虽然没有直接提及“黑马程序员 Java 第五天课程”的具体内容,但可以从提供的引用中归纳和推测出可能涉及的知识点。通常,在Java基础学习过程中,第五天的学习内容可能会涵盖语言核心部分的扩展,包括但不限于数据型、集合框架的进一步使用等。 ### 数据型与变量 在Java编程语言中,数据型决定了变量可以存储的数据种以及可以执行的操作。基本数据型包括整型(int)、浮点型(float、double)、字符型(char)和布尔型(boolean)等[^1]。例如: ```java int age = 30; double height = 1.75; char grade = 'A'; boolean isStudent = true; ``` ### 集合框架简介 集合是Java中用于存储和操作一组对象的容器。常见的集合接口包括List、Set和Map,其中ArrayList是List接口的一个实现,它允许存储重复元素,并且可以通过索引访问元素[^3]。以下是一个简单的示例,展示如何创建并使用ArrayList: ```java import java.util.ArrayList; public class CollectionExample { public static void main(String[] args) { // 创建一个ArrayList来存储字符串 ArrayList<String> names = new ArrayList<>(); // 添加元素到列表中 names.add("Alice"); names.add("Bob"); // 输出列表中的所有元素 for (String name : names) { System.out.println(name); } } } ``` ### 与对象的基础 Java程序的基本组成单位是定义了对象的属性和行为。通过创建对象的过程称为实例化。下面是一个简单的定义及其对象创建的例子: ```java // 定义一个Person public class Person { String name; int age; // 构造方法 public Person(String name, int age) { this.name = name; this.age = age; } // 方法 public void sayHello() { System.out.println("Hello, my name is " + name + " and I am " + age + " years old."); } } // 在另一个中使用Person public class TestPerson { public static void main(String[] args) { // 创建Person对象 Person person = new Person("John Doe", 25); // 调用对象的方法 person.sayHello(); } } ``` 以上内容代表了Java学习过程中的几个关键领域,这些可能是第五天课程的重点之一。具体到每一天的教学安排会依据教学计划有所不同。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值