Java 面向对象 之 Object 类
http://www.verejava.com/?id=16992832835152
/** 知识点: Object 类 注意: 1. Object 是所有类的根类, 也就是说所有类默认都继承Object 只是省略没有写 2. 当 println()输出一个对象的时候 自动调用了 Object的 toString() 方法 3. Object toString() 方法返回的是 : 类名+@+16进制的哈希码hashCode地址 哈希码 代表对象的内存地址,所以如果比较两个对象的引用相等==必须 哈希码相等 4. Object equals(Object obj) 方法比较的也是引用内部是以==实现的 5. String 对象的equals()方法怎么是比较内容了? 6. 如果要equals()比较两个对象的内容相等我们需要复写equals 方法 7. 当Object的子类复写了 toString() 方法, println()输出时调用子类复写的 toString() 方法 8. 如果复写了equals()方法,为了保证对象相等哈希码hashcode必须相等的特性, 我们也要复写hashCode()方法使保持对象的一致性 9. Object 可以接收任意引用数据类型(类,数组,接口) 回顾知识点: 1. 如果一个类定义了带参数的构造方法, 当用不带参数的构造方法调用时,java 虚拟机不会自动生成默认的构造方法,必须得手动显示定义不带参数的默认构造方法。 */ public class TestObject { public static void main(String[] args) { //实例化一个 Student Object p = new Student("李明"); Student p2 = (Student) p; Student p3 = new Student("张涛"); Student p4 = new Student("李明"); System.out.println(p); System.out.println(p == p2); System.out.println(p3); System.out.println(p.equals(p3)); System.out.println(p == p4); System.out.println(p.equals(p4)); System.out.println(p); System.out.println(p4); Person p5 = new Student("李明"); System.out.println(p4.equals(p5)); String[] p6 = new String[1]; p6[0] = "李明"; System.out.println(p4.equals(p6)); } } interface Person { //什么人可以说话 public void say(); } class Student extends Object implements Person { private String name; public Student() { } public Student(String name) { this.name = name; } public String getName() { return this.name; } public void say() { System.out.println("学生会说英语"); } public boolean equals(Object obj) { //如果地址都相等, 两个对象肯定相等 if (this == obj) { return true; } //判断是否是 Student 对象实例 if (obj instanceof Student) { //将obj向下转型成 Student Student p = (Student) obj; //如果内容相等返回true if (this.name.equals(p.getName())) { return true; } } return false; } public int hashCode() { return this.name.hashCode(); } public String toString() { return this.name; } }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python爬虫环境常用库安装
Python爬虫环境常用库安装 1:urllib urllib.request 这两个库是python自带的库,不需要重新安装,在python中输入如下代码: import urllib import urllib.request response=urllib.request.urlopen("http://www.baidu.com") print(response) 1 2 3 4 返回结果为HTTPResponse的对象:<http.client.HTTPResponse object at 0x000001929C7525F8> 2:正则表达式模块 import re 1 该库为python自带的库,直接运行不报错,证明该库正确安装。 3:request库的安装 安装命令:pip install requests 验证该库是否安装成功,运行如下代码: import requests response=requests.get("http://www.baidu.com") print(response) 1 2 3 4:selenium库的安装 由于如果需要使用...
- 下一篇
Java 面向对象 之 多态
http://www.verejava.com/?id=16992838437553 /** 知识点: 多态 Polymorphism 1. 对象的多态性 分为三种: 方法的重载, 方法的覆盖, 对象的向上向下转型 2. 基本类型的向上向下转型 3. 对象的向上向下转型 : 必须发生在子类和父类之间 注意: 1. 子类对象 可以 转换成父类对象 但是转换后子类属性和方法不可见 当再转换成子类的时候 要强制类型转换 2. 如果直接实例父类然后 转成子类不允许 报异常 ClassCastException 3. 当子类复写了父类的方法, 子类转成父类后 调用的是子类复写的方法。 */ public class Polymorphism { public static void main(String[] args) { //类型的转换 byte a = 1; int b = 100; int c = 200; //小类型 -> 大类型 b = a; System.out.println(b); //大类型 -> 小类型 必须经过强制类型转换 并且转换以后可能丢失精度 a = (...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- CentOS8编译安装MySQL8.0.19
- CentOS7设置SWAP分区,小内存服务器的救世主
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池