重庆—java互联网架构软件工程师学习记录—Day11(API 1)

本文介绍了Java中的Object类及其常用方法,包括equals()、hashCode()和toString(),并提供了示例代码展示如何重写这些方法。同时,文章详细讲解了String类的特点、不可变性以及常用方法,如charAt()、concat()、contains()、endsWith()和equals()。通过实例演示了这些方法的使用。内容旨在巩固和加深对Java基础知识的理解。
摘要由CSDN通过智能技术生成

Java互联网架构软件工程师——第一阶段

Day11–API 1



前言

今天就开始就要学习 API了,另外我们写代码还可以用IDEA来书写,安装教程等到后面找个时间来说吧


提示:以下是本篇文章正文内容,下面案例可供参考

一、Object

1.1 概述

类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。

1.2 常用方法

 boolean equals(Object obj)

指示其他某个对象是否与此对象“相等”。

 protected  void finalize()

当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

int hashCode()

返回该对象的哈希码值。

 String toString()

返回该对象的字符串表示。

1.3 入门案例

代码如下(示例):

// 测试 重写 Object 里的方法

//总结
//重写 toString():默认使用了父类的,打印的就是地址值,想要展示属性值
//重写 equals():默认使用父类的,就是 == 比较地址值,想比较属性
// IDEA自动生成 ---右键--Generate(alt+insert).....
// Eclispe自动生成 ---右键--Source--generate.....
public class Test02 {
    public static void main(String[] args) {
        //创建Student对象
        Student s = new Student("琳琳",201721400);

        // toString
        String s1 = s.toString();
        System.out.println(s1);


        //equals():比较两个对象是否相等,相等返回 true 不等 返回 flase
        Student x = new Student("蔡徐坤",20172);
        Student y = new Student("蔡徐坤",20172);
        boolean s2 =x.equals(y);
        // 用了 父类 Object 提供的 默认使用了 == 比较
        // == 比较基本类型的值本身
        // == 比较引用类型的地址值
        // 现在,不用地址值比较,想用属性是比较
        System.out.println(s2);//flase


    }
}
class Student{
    //TODO Constructors..
    public Student(){}

    public Student(String name, int id) {
        this.name = name;
        this.id = id;
    }

    private String name ;
    private int id ;

    //TODO get()/set()---右键--Generate(alt+insert)--getter and setter

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    // 重写 toString(),不想展示 地址值, 想展示...
    // generate --toString()
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", id=" + id +
                '}';
    }

    // 重写 equals()---默认的是比较地址值,想比较属性值
    //自动生成---右键 generate ---equals()and hashCode()
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        //把参数 obj 转型,转成 Student 类型
        Student student = (Student) o;
        //拿着属性比较,如果属性都一样,那就让equals()返回true
        return id == student.id &&
                Objects.equals(name, student.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, id);
    }
}

二、String

2.1 概述

String 类代表字符串
Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。

2.2 特点

源码摘抄:

public final class String  不能被继承
private final char value[];

String本质上维护了一个char[] 叫value,用来存储多个字符数据.而且String是一个常量,值不能被修改

2.3 常用方法

这里就拿几个常用的来展示,更多的用法去 JDK API手册上查找

charAt(int index)
     返回指定索引处的 char 值。

concat(String str)
     将指定字符串连接到此字符串的结尾。

contains(CharSequence s)
     当且仅当此字符串包含指定的 char 值序列时,返回 true。

endsWith(String suffix)
     测试此字符串是否以指定的后缀结束。

equals(Object anObject)
    将此字符串与指定的对象比较。

代码如下(示例):

// 测试 字符串
public class Test03 {
    public static void main(String[] args) {
        // 创建 String 对象
        //String()
        
        String x = new String();
        
        //TODO 特点 String底层是一个char[]
        //String(char[] vaule)
        
        char[] value={'h','e','l','l','o'};
        String x2 = new String(value);
        
        //调用方法
        //charAt(int index)
        //          返回指定索引处的 char 值。
        System.out.println(x2.charAt(2));//获取下标 2 对应的字符
        //concat(String str)
        //          将指定字符串连接到此字符串的结尾。
        System.out.println(x2.concat("456"));//在x2后面拼接字符串
        //contains(CharSequence s)
        //          当且仅当此字符串包含指定的 char 值序列时,返回 true。
        System.out.println(x2.contains("123"));//判断x2包含“123”吗?
        //endsWith(String suffix)
        //          测试此字符串是否以指定的后缀结束。
        System.out.println(x2.endsWith("ddd"));//判断x2是否以“ddd”结尾
        //equals(Object anObject)
        //          将此字符串与指定的对象比较。
        System.out.println(x2.equals("hello"));//判断x2是否与“hello”相等
    }
}

总结

总的来说,今天新内容就学了 Object和String,更多的是复习前面的知识点,只有前面的过关了,后面的才学得明白,加油吧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值