您的位置:首页 > 移动开发 > Objective-C

Object的学习

2020-08-17 17:23 1001 查看

Object是long包的类,是所以类的根类,包括数组

  • 在这个类上的所以方法,会被继承到所以的类和数组中
  • 设计者意图:只要是类就应该具有的方法都会无条件定义在Object中,所以这些方法的重要性和常用性一定是共用性最强的
  • Object类中每个方法的使用:
  • getClass()——Java进阶阶段“反射”
  • hashCode()——Java集合框架
  • equals()——比较两个物理位置不同的同类型对象是否内容相同
  • 由于Object是根类,所以无法确认每个自定义子类的比较规则,只能采用“==”方法,因此equals需要每个自定义的子类进行重写
  • 误区:
  • 1、不是每个属性相等,equals方法就会返回true。equals相等为“业务相等”
  • 2、遗留问题——equals方法的重写,往往需要配合hashCode方法的重写
  • clone()——Java进阶“原型模式”
  • toString()——返回对象的字符串描述
  • Object中,返回的是形如:“类的限定名@16进制哈希值”
  • “类的限定名”说明这个对象属于哪个数据类型的
  • “16进制哈希值”可以看作对象的引用,即对象所在的位置
  • 在自定义类型中,为了看到更详细的自定义对象描述,toString需要每个自定义的子类进行重写
  • finalize()——销毁对象(Java在Object中写好销毁对象的实现,放在finalize中,GC会调用这个算法处理没有引用指向的对象)
  • 知道其存在和作用即可,往往在实现过程中不需要重写,也不需要调用,如果要重写,要加上super.finalize();的代码
  • 调用交给GC去自动调用
  • final:除了定义常量外,还是类和方法的“最终的,不能够变化的”
  • 1、变量不能修改	2、类不可被继承(终态类)	3、方法不能被改变(不包括构造方法)
  • final int max = 100;
  • public final void test(){  }
  • public final class Student{  }
  • wait()——Java进阶“多线程”
  • notify()——Java进阶“多线程”
  • notifyAll()——Java进阶“多线程”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: