参考案例之“对象调用方法时,如何在方法中使用对象,例如(root.display()的display方法中使用root)”
一、对象调用方法时,如何在方法中使用对象,例如(root.display()的display方法中使用root)
1.测试方法
@Test
public void suanfa24()
{
TreeNode root = new TreeNode(3, new TreeNode(9), new TreeNode(20, new TreeNode(15), new TreeNode(7))); System.out.println("root.display() = " + root.display());
}
2.树节点的被调用方法display()
package com.bessky.pss.wzw.SuanFa; import java.util.ArrayList;
import java.util.List; /**
* 树节点类
*
* @author 王子威
* @date 2022/7/27
*/
public class TreeNode
{
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) {this.val = val;}
TreeNode(int val, TreeNode left, TreeNode right){
this.val = val;
this.left = left;
this.right = right;
} /**
* 遍历显示
*
* @return
*/
public String display()
{
// 创建存储先序遍历后的结果
List<Integer> results = new ArrayList<>(); // 调用:递归方法
this.inorder(this, results); return results.toString();
} /**
* 递归方法体
*
* @param root
* @param results
*/
public void inorder(TreeNode root, List<Integer> results)
{
if (root == null)
{
return ;
}
// 调用:当最左时就存储 || 或左没有时存储
results.add(root.val);
// 调用:递归方法(先把最左边的拿到)
inorder(root.left, results);
// 调用:递归方法(左没有时就递归右边)
inorder(root.right, results);
}
}
3.总结
- 这里直接使用this 就是对象本身了,也就是root.display()的root了
- 先序遍历 和 中序遍历 和 后序遍历 展示的结果是不一样的,大部分都是使用先序遍历来回显
参考案例之“对象调用方法时,如何在方法中使用对象,例如(root.display()的display方法中使用root)”的更多相关文章
- 解决win10环境下python Selenuim调用Chrome时提示data 及Chrome正在受自动软件控制的方法
用python自动访问谷歌浏览器时会出现data界面,很是烦人.在网上搜索,有说是因为webdriver和google版本不匹配导致的,就下过各种版本,结果都一样. 后来明白了,出现data的原因只是 ...
- Android app启动activity并调用onCreate()方法时都默默地干了什么?
Android app启动activity并调用onCreate() 方法时都默默地干了什么? 在AndroidManifest.xml文件中的<intent-filter>元素中有这 ...
- 重载equals方法时要遵守的通用约定--自反性,对称性,传递性,一致性,非空性
本文涉及到的概念 1.为什么重载equals方法时,要遵守通用约定 2.重载equals方法时,要遵守哪些通用约定 为什么重载equals方法时,要遵守通用约定 Object类的非final方法都 ...
- 错误笔记 对象为null时调用改对象的方法会报错
对象为null时调用改对象的方法会报错
- Day_08【面向对象】扩展案例3_使用多态的形式创建缉毒狗对象,调用缉毒方法和吼叫方法
分析以下需求,并用代码实现: 1.定义动物类: 行为: 吼叫:没有具体的吼叫行为 吃饭:没有具体的吃饭行为 2.定义缉毒接口 行为: 缉毒 3.定义缉毒狗:犬的一种 行为: 吼叫:汪汪叫 吃饭:狗啃骨 ...
- [bug]spring项目通过反射测试私有方法时,注入对象异常
背景 遇到问题:在进行Spring单元测试编写时,发现被测方法是一个私有方法,无法直接通过注入对象调用 解决思路:首先想到通过反射获取该私有方法的访问权限,并传入注入对象,最终调用对象的私有方法. 出 ...
- python: 面向对象:类和对象调用类中的变量和方法
一. 面向对象初识 我们在生活中做事都是面向过程的,前面实现一些基本逻辑功能代码也是用面向过程的语句实现的,后来学了函数,把这些功能又装到了函数里.但用面向过程的方法去写程序,只能实现一个功能,我们要 ...
- 使用引用类型变量来访问所引用对象的属性和方法时,Java 虚拟机绑定规则
通过引用类型变量来访问所引用对象的属性和方法时,Java 虚拟机将采用以下绑定规则: 实例方法与引用变量实际引用的对象的方法进行绑定,这种绑定属于动态绑定,因为是在运行时由 Java 虚拟机动态决定的 ...
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
C#编译器优化那点事 使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码 ...
- Mybatis:解决调用带有集合类型形参的mapper方法时,集合参数为空或null的问题
此文章有问题,待修改! 使用Mybatis时,有时需要批量增删改查,这时就要向mapper方法中传入集合类型(List或Set)参数,下面是一个示例. // 该文件不完整,只展现关键部分 @Mappe ...
随机推荐
- linux的使用(2)
1,覆盖 > cat 文件名a>文件名b:将文档a覆盖文档b 2,追加 >> cat 文档名a>>文档名b:将文档a追加到文档b后 追加错误 上图所示:尽量使用字母 ...
- QT5笔记: 31. 文件目录操作
开发的时候,QtCreator F1 查看相关类的信息
- 傻妞教程——对接mongoDB使用返佣系统
使用docker安装mongo 1.安装 1.1 拉取mongo镜像 docker pull mongo:4.4 1.2 创建mongo数据持久化目录 mkdir -p /docker_volume/ ...
- SIT、UAT以及PROD环境的区别
题记部分 一.SIT环境 SIT(System Integration Testing)环境主要用于系统集成测试,旨在验证系统中不通模块之间的集成和交互是否正常工作.这个环境通常用于开发团队内部进 ...
- Git - 安装Git
下载>> 安装 >> 下载 登录Git官网:https://git-scm.com/ 点击想要安装的版本 安装 1. 点击下一步(Next) 2. 选择安装路径 3. Git相 ...
- Opera打不开网页解决办法
打开目录C:\Users\用户名\AppData\Roaming\Opera Software\Opera Stable 2.查找{"country":"CN" ...
- vim使用技巧记录
1.查找 '/' + 要找的字符串(正则表达式) + Enter # 查找偏移 'n': 查找下一个 'N': 查找上一个 大小写敏感性:字符串尾接\c不敏感,\C敏感 可以~/.vimrc在配置中配 ...
- Creo 4.0二次开发工具框架搭建
一.新建MFC DLL工程 二.配置项目属性 附加依赖项中输入:netapi32.lib;psapi.lib;mpr.lib;wsock32.lib;protk_dll_NU.lib;protk_d ...
- 大型通用电子制造执行系统(MES)
简介: 系统参考西门子MOM智能制造Opcenter工业软件制造执行系统Camstar电子套件人机料法环数据建模业务对象和车间生产执行事务逻辑,采用面向对象分层设计与C#编程开发:包含电子制造企业 ...
- 关于项目中 "不能创建大小为 8190 的行,该大小大于所允许的最大行大小 8060 "的处理
由于产品底层设计的情况,sqlserver 列设置了 可以随用户 创建自动生成 项目特殊,设置的列过多,有三四百列(通常不会过多) 数据无法正常保存,报错"不能创建大小为 8190 的行, ...