CGBTN2109-DAY11复习总结

默认实现:根据对象的地址值生成一个唯一的哈希码值

–重写后:根据传入的属性值生成哈希码

1.2 toString()


重写前:打印对象的地址值

注意:我们要牢记Object中的默认实现方式,只要与默认实现不同,说明当前类就重写了Object中的实现

至于重写后是什么样的效果,得看具体的重写方式:

自定义类Student重写后: 打印Student类型 + 属性 +属性值【这个是我们自己写的类】

String类重写后:打印的是字符串的具体内容【Java自带的类】

1.3 equals()


重写前:等等比较,比较的是两个对象的地址值

注意:我们要牢记Object中的默认实现方式,只要与默认实现不同,说明当前类就重写了Object中的实现

至于重写后是什么样的效果,得看具体的重写方式:

自定义类Student重写后:比较两个对象的类型+属性+属性值

String类重写后:比较的是两个字符串的具体内容

注意1:toString()不是我们主动调用的,是println()层层调用

如果你打印某个类的对象时,不想打印地址值,可以在这个类里添加重写的toString()

注意2:equals()与hashCode()的重写要一致,要重写都重写,要不重写都不重写

查找类的4种方式:

  1. 查API手册 点这里:API手册使用指导
  1. 连点两下Shift打开IDEA的搜索,注意勾选"include non-Project items",再搜Object
  1. 按住Ctrl点hashCode()
  1. 在拓展库External Libraries找到jdk1.8->rt.jar->java.lang.Object
public class TestObject {

2 String 类

================================================================================

  1. 底层的结构是字符数组char[ ]

  2. String的常用方法

String API总结

int hashCode() 返回此字符串的哈希码。

boolean equals(Object anObject) 将此字符串与指定的对象比较,比较的是重写后的串的具体内容

String toString() 返回此对象本身(它已经是一个字符串!)。

int length() 返回此字符串的长度。

String toUpperCase() 所有字符都转换为大写。

String toLowerCase() 所有字符都转换为小写

boolean startsWith(String prefix) 测试此字符串是否以指定的元素开头。

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

char charAt(int index) 返回指定索引/下标处的 char 值/字符

int indexOf(String str) 返回指定字符在此字符串中第一次出现处的索引。

int lastIndexOf(String str) 返回指定字符在此字符串中最后一次出现处的索引。

String concat(String str) 将指定字符串连接/拼接到此字符串的结尾,注意:不会改变原串

String[] split(String regex) 根据给定元素来分隔此字符串。

String trim() 返回去除首尾空格的字符串

byte[] getBytes() 把字符串存储到一个新的 byte 数组中

String substring(int beginIndex) 返回一个新子串,从指定下标处开始,包含指定下标

String substring(int beginIndex, int endIndex) 返回一个新子串,从执定下标开始,到结束下标为止,但不包含结束下标

static String valueOf(int i) 把int转成String

3 String的创建方式


方式一:

char[] values = {‘a’,‘b’,‘c’};

String s1 = new String(value);

注意:每new一次,创建一个String对象,存在堆中

方式二:

String s = “abc”;

注意:存在堆中的常量池中,有高效的效果,如果是第二次创建,不会新建

注意:== 比较的如果是引用类型,那么是地址值

注意:String重写了Object中的toString(),所以可以直接打印字符串的具体内容

String重写了Object中的equals(),所以比较的也是两个字符串的具体内容

4 内部类


  1. 我们可以把内部类看作是外部类的一个特殊的成员

  2. 内部类可以直接使用外部类的所有资源,包括私有资源

  3. 外部类想要使用内部类的资源,需要创建内部类的对象才能使用

4.1 成员内部类


位置:类里方法外

被private修饰

被私有化的内部类在main()中无法直接创建其对象

可以在私有内部类所处的外部类当中,创建一个公共的方法供外界调用,这个方法就可以用来创建私有内部类的对象并且调用私有内部类的功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值