Java学习----day7——(1)Object类

Java对象与多态
本文介绍了Java中对象的默认行为及如何通过重写equals()和toString()方法来改变这些行为。同时探讨了Object类作为所有类的基类的重要性,并通过实例演示了多态性的应用。

在面对对象的学习过程中,对于类class的初始化设计有这么一句话:任何一个类都是默认继承Object类的,即所有类的最高等父类都是Object类。
在刚开始设计类的时候,这个类的原始板块就包含:

  1. equals():默认情况下比较引用地址;
  2. hashCode():(目前尚未接触到具体做法);
  3. toString():控制台打印对象时候调用;
    (System.out.println(a)=System.out.println(a.toString());

一般情况下,可以重新编辑equals()和toString()方法;


我自己的认识就是想到了对象的上转型的使用(Java中多态性体现);
可以接受父类的任意子类,不需要逐一接收子类实现;

package com.Example.chapter05;

/**
 * @author Administrator
 * @date : 2017年4月1日 下午8:25:23
 * @function : 主要学习Object类的使用
 */
public class ObjectDemo {
    public void getObject(Object o){
        System.out.println( o.toString());
    }
    public static void main(String[] args) {
     ObjectDemo demo=new ObjectDemo();
     Object aa=new AA();
     Object bb=new BB();
     demo.getObject(aa);
     demo.getObject(bb);
    }
}
class AA{
    public String toString(){

        return "这里是AA";
    }
}
class BB{
    public String toString(){

        return "这里是BB";
    }
}
### Java面向对象编程中常用的 #### 1. **Object ** `Object` 是所有 Java 的祖先(根基),每个都隐式或显式地继承自 `Object` 。这意味着所有的 Java 对象都可以调用 `Object` 中定义的方法,例如 `toString()`、`equals(Object obj)` 和 `hashCode()` 等方法[^1]。 以下是 `Object` 的一些常用方法: - `public String toString()`: 返回该对象的字符串表示形式。 - `public boolean equals(Object obj)`: 判断当前对象是否等于指定的对象。 - `protected void finalize() throws Throwable`: 当垃圾回收器决定释放此对象所占用的空间时,会自动调用此方法。 - `public int hashCode()`: 返回该对象的哈希码值。 这些方法通常会被子重写以适应特定的需求。 --- #### 2. **String ** `String` 用于处理不可变的字符序列。它是 Java 编程中最常使用的之一。由于其不可变性,在多线程环境中非常安全[^2]。 一些常见的操作包括: - 字符串连接:通过 `+` 或者 `concat(String str)` 方法完成。 - 子串提取:使用 `substring(int beginIndex, int endIndex)` 方法。 - 大小写转换:利用 `toLowerCase()` 和 `toUpperCase()` 方法。 示例代码如下: ```java String greeting = "Hello"; System.out.println(greeting.toUpperCase()); // 输出 HELLO ``` --- #### 3. **Integer 和其他包装** `Integer` 是基本数据型 `int` 的包装。它提供了许多有用的静态方法来处理整数型的数值运算和转换[^3]。 其他似的包装还包括: - `Boolean` (对应布尔) - `Double`, `Float` (对应浮点) - `Character` (对应字符) 以下是一个简单的例子展示如何创建并比较两个 `Integer` 对象: ```java Integer a = new Integer(42); Integer b = Integer.valueOf("42"); if (a.equals(b)) { System.out.println("Values are equal."); } ``` --- #### 4. **ArrayList ** `ArrayList` 属于集合框架的一部分,实现了动态数组的功能。它可以存储任意数量的对象,并允许随机访问其中的元素。 主要特点有: - 动态调整大小。 - 提供快速的随机访问能力。 - 不适合频繁插入删除场景下的性能优化需求。 实例化方式以及常见操作演示: ```java import java.util.ArrayList; ArrayList<String> list = new ArrayList<>(); list.add("Apple"); // 添加元素 list.remove(0); // 移除索引位置上的元素 for (String item : list) { System.out.println(item); } ``` --- #### 5. **HashMap ** `HashMap` 实现了基于键值对的数据结构——散列表。它的特点是能够高效地执行查找、插入和删除操作。 典型用途包括缓存机制的设计或者关联不同实体之间的映射关系。下面是一段简单程序片段用来初始化一个 HashMap 并对其进行查询: ```java import java.util.HashMap; HashMap<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); // 查询是否存在某个 key-value pair if (map.containsKey(1)) { System.out.println(map.get(1)); // 输出 One } ``` --- #### 6. **Date 和 Calendar ** 时间日期相关的处理经常需要用到 `Date` 及其改进版本 `Calendar` 来获取系统当前时间和日期信息。 虽然现代项目更倾向于采用 JSR-310 定义的新 API (`LocalDateTime`) 替代旧有的 Date/Time 库,但在遗留代码里仍然广泛存在这两种传统实现方式。 样例代码如下所示: ```java import java.util.Date; import java.util.Calendar; Date today = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(today); System.out.println(cal.YEAR + "-" + cal.MONTH + "-" + cal.DAY_OF_MONTH); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值