首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我正在尝试测试参数化的构造器和toString,但它不会工作

参数化的构造器和toString是面向对象编程中常用的概念和技术。

参数化的构造器是指在创建对象时,通过传入不同的参数来初始化对象的属性。通过参数化的构造器,可以根据不同的需求创建具有不同属性值的对象。这样可以提高代码的灵活性和复用性。

toString是一个方法,用于将对象转换为字符串表示。在Java中,每个类都继承了Object类,而Object类中的toString方法返回的是对象的类名和哈希码。但是,我们可以重写toString方法,根据自己的需求返回对象的特定字符串表示。

在测试参数化的构造器和toString时,需要注意以下几点:

  1. 确保构造器的参数类型和数量与对象的属性相匹配,以确保正确初始化对象。
  2. 在toString方法中,根据对象的属性,以字符串的形式返回对象的信息。可以使用字符串拼接或格式化输出的方式来构造返回的字符串。
  3. 在测试过程中,可以通过创建不同的对象实例,传入不同的参数,然后调用toString方法来验证构造器和toString的正确性。

以下是一个示例代码:

代码语言:txt
复制
public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }

    public static void main(String[] args) {
        Person person1 = new Person("Alice", 25);
        Person person2 = new Person("Bob", 30);

        System.out.println(person1.toString());
        System.out.println(person2.toString());
    }
}

输出结果为:

代码语言:txt
复制
Person [name=Alice, age=25]
Person [name=Bob, age=30]

在这个例子中,我们通过参数化的构造器初始化了两个Person对象,并通过重写toString方法,将对象的属性以字符串的形式返回。最后,在main方法中打印了两个对象的字符串表示。

对于参数化的构造器和toString的应用场景,可以在各种面向对象的编程任务中使用,例如创建对象、打印对象信息、日志记录等。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发:https://cloud.tencent.com/product/mobdev
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/tencent-metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET基础拾遗(2)面向对象实现异常处理基础

也正是因为接口具有很大灵活性抽象性,因此它在面向对象程序设计中更加出色地完成了抽象工作。 1.2 C#中重写、重载隐藏是什么鬼?   ...But,单纯诊断断言可能并不能完全满足测试需求,有时可能会需要大批代码方法去支持调试测试,这个时候就需要用到Conditional特性。...Conditional机制很简单,在编译时候编译会查看编译状态Conditional特性参数,如果两者匹配,则正常编译。否则,编译将简单地移除方法内所有内容。...异常是一种耗费资源机制,每当异常被抛出时,异常堆栈将会被建立,异常信息将被加载,而通常这些工作成本相对较高,并且在尝试性类型转换时,这些信息都没有意义。   ...So,在.NET中提供了另外一种语法来进行尝试类型转换,那就是关键字 is  as 所做工作。   (1)is 只负责检查类型兼容性,并返回结果:true false。

61210
  • JavaScript 编程精解 中文第三版 六、对象秘密

    这段代码使用了关键字this来输出正在说话兔子种类。我们回想一下applybind方法,这两个方法接受第一个参数可以用来模拟对象中方法调用。这两个方法会把第一个参数复制给this。...符号 多个接口可能为不同事物使用相同属性名称。 例如,可以定义一个接口,其中toString方法应该将对象转换为一段纱线。 一个对象不可能同时满足这个接口toString标准用法。...为了初始SymmetricMatrix实例,构造通过super关键字调用其超类构造。 这是必要,因为如果这个新对象行为(大致)像Matrix,它需要矩阵具有的实例属性。...继承可能是一个有用工具,并且现在在自己程序中使用它,但它不应该成为你第一个工具,你可能不应该积极寻找机会来构建类层次结构(类家族树)。...它构造创建一个空分组,add给分组添加一个值(但仅当它不是成员时),delete从组中删除它参数(如果它是成员),has 返回一个布尔值,表明其参数是否为分组成员。

    1.7K60

    Java编程思想第五版第八章 -复用

    每个非基本类型对象都有一个 toString() 方法,在编译需要字符串但它有对象特殊情况下调用该方法。...编译不会为每个引用创建一个默认对象,这是有意义,因为在许多情况下,这会导致不必要开销。初始引用有四种方法: 当对象被定义时。这意味着它们总是在调用构造函数之前初始。 在该类构造函数中。...即使不为 Cartoon 创建构造函数,编译也会为你合成一个无参数构造函数,调用基类构造函数。尝试删除 Cartoon 构造函数来查看这个。...带参数构造方法 上面的所有例子中构造函数都是无参数 ; 编译很容易调用这些构造函数,因为不需要参数。...,并要求你在构造函数开头就初始基类,但它并不监视你以确保你初始化了成员对象。

    80531

    Java编程思想第五版(On Java8)(二十四)-并发编程

    当编写这些类型程序时,你永远不会被底层系统工具屏蔽,甚至关于CPU缓存如何工作细节。最后,如果你非常小心,你创作东西在特定情况下起作用,但它在其他情况下不起作用。...你通常不能编写有用测试,因此你必须依靠代码检查结合深入并发知识来发现错误。 即使是有效程序也只能在其设计参数工作。当超出这些设计参数时,大多数并发程序会以某种方式失败。...**whenComplete()就像handle()**一样,你必须测试是否失败,但是该参数是使用者,并且不会修改正在传递结果对象。...确实,Java 语言规范 (JLS)自信满满地陈述道:“没必要使构造线程同步,因为它会锁定正在构造对象,直到构造完成初始后才对其他线程可见。”...尽管JLS(java语言规范)这样陈述道:“……它会锁定正在构造对象”,但这并不是真的——构造实际上只是一个静态方法,因此同步构造实际上会锁定该类Class对象。

    1.5K31

    为什么要放弃 Lombok ?

    进一步分析其源代码并理解相关注解工作原理后,发现并不需要使用一个非标准第三方库将Java转换为一个精巧而酷炫语言。...于是不得不将所有的Lombok注解从项目源代码中清除,并使用IDE自带功能生成getter/setter,equals,hashCode,toString以及构造等方法,你也可以使用Delombok...可读性差 Lombok隐藏了JavaBean封装细节,如果你使用@AllArgsConstructor注解,它将提供一个巨型构造,让外界有机会在初始对象时修改类中所有的属性。...首先,这是极其不安全,因为类中某系属性我们是不希望被修改;另外,如果某个类中有几十个属性存在,就会有一个包含几十个参数构造被Lombok注入到类中,这是不理智行为;其次,构造参数顺序完全由...如果你正在参与一个团队项目(或大型项目),考虑到后续升级与扩展,是否使用Lombok,请与你团队多沟通三思。

    98820

    Rxjs 响应式编程-第五章 使用Schedulers管理时间

    observeOnsubscribeOn是返回Observable实例副本运算符,但它使用Scheduler我们作为参数传递。...subscribeOn强制Observable订阅取消订阅工作(而不是通知)在特定Scheduler上运行。 与observeOn一样,它接受Scheduler作为参数。...在他们两个中我们都在浏览上抛出所有这些更新,这可能无法足够快地处理它们。之所以会发生这种情况,是因为浏览正在尝试渲染一个帧,然后它会收到渲染下一帧指令,因此它会丢弃当前帧以保持速度。...测试重点是避免bug错误,但如果你测试本身有错误,那这显然是有问题。 如果我们想要准确测试基于时间功能,自动测试变得非常缓慢。...在Obpectables中参数将要测试Scheduler总是一个好主意。

    1.3K30

    Lombok!代码简洁神器还是代码“亚健康”元凶?

    关于Lombok,DD是一个重度用户,从编写Spring Boot教程还是Spring Cloud教程中,都可以看到几乎每个例子里都有很多地方会用到,尤其是setget生成,以及构造函数生成...在进一步分析其源代码并理解相关注解工作原理后,发现并不需要使用一个非标准第三方库将Java转换为一个精巧而酷炫语言。...于是不得不将所有的Lombok注解从项目源代码中清除,并使用IDE自带功能生成getter/setter,equals,hashCode,toString以及构造等方法,你也可以使用Delombok...可读性差 Lombok隐藏了JavaBean封装细节,如果你使用@AllArgsConstructor注解,它将提供一个巨型构造,让外界有机会在初始对象时修改类中所有的属性。...首先,这是极其不安全,因为类中某系属性我们是不希望被修改;另外,如果某个类中有几十个属性存在,就会有一个包含几十个参数构造被Lombok注入到类中,这是不理智行为;其次,构造参数顺序完全由

    35820

    【网络安全】「漏洞复现」(四)NodeBB 被爆未授权拒绝服务攻击

    安全性可扩展性:NodeBB 采用现代 Web 开发框架,具有良好安全性可扩展性,可以通过插件系统灵活地扩展功能或自定义主题。...尽管 NodeBB 集群管理尝试生成新替代工作,但在短时间内多次使 NodeBB 工作崩溃后,可能会导致 NodeBB 集群管理终止。...; } ...}根据上述源码,只需要绕开 [3] 在 [4] 处抛出异常或者直接在 [1] 处抛出异常,都将导致 NodeBB 拒绝服务,因为在 /loader.js 中,集群管理尝试重新启动异常退出工作进程...通过 Socket.IO 事件名称对象类型进行 DoS结合 [1] 处将 eventName 转换成 String 处理方式,因此可以直接构造 eventName 为 {"toString": 1}...是 ,期待你关注,创作不易,请多多支持; 公众号:sidiot技术驿站; 系列专栏:安全测试工具技术:从漏洞扫描到渗透测试正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

    412100

    再见!Lombok ...

    进一步分析其源代码并理解相关注解工作原理后,发现并不需要使用一个非标准第三方库将Java转换为一个精巧而酷炫语言。...于是不得不将所有的Lombok注解从项目源代码中清除,并使用IDE自带功能生成getter/setter,equals,hashCode,toString以及构造等方法,你也可以使用Delombok...可读性差 Lombok隐藏了JavaBean封装细节,如果你使用@AllArgsConstructor注解,它将提供一个巨型构造,让外界有机会在初始对象时修改类中所有的属性。...首先,这是极其不安全,因为类中某系属性我们是不希望被修改;另外,如果某个类中有几十个属性存在,就会有一个包含几十个参数构造被Lombok注入到类中,这是不理智行为;其次,构造参数顺序完全由...如果你正在参与一个团队项目(或大型项目),考虑到后续升级与扩展,是否使用Lombok,请与你团队多沟通三思。

    54010

    线程池 RejectedExecutionHandler(拒绝策略)

    keepAliveTime, unit, workQueue,              Executors.defaultThreadFactory(), handler);     } 其中这些参数使用说明在一篇文章中已经有了介绍...());         } ◇DiscardPolicy 这个策略AbortPolicyslient版本,如果线程池队列满了,会直接丢掉这个任务并且不会有任何异常。...如果工作队列是一个优先队列,那么抛弃最旧策略,会抛弃优先级最高任务,因此最好不要将抛弃最旧饱和策略优先级队列放在一起使用。...由于执行任务需要一定时间,因此主线程至少在一定时间内不能提交任何任务,从而使得工作者线程有时间来处理正在执行任务。...当服务过载时,这种过载情况会逐渐向外蔓延开来——从线程池到工作队列到应用程序再到TCP层,最终到达客户端,导致服务在高负载情况下实现一种平缓性能降低。

    1.5K10

    5. 穿过拥挤的人潮,Spring已为你制作好高级赛道

    在介绍Spring众多内建转换里,故意留下一个尾巴,放在本文专门撰文讲解。...当匹配不到任何转换时,它用于兜底 默认转换注册情况 Spring新一代类型转换内建了非常多实现,这些在初始阶段大都被默认注册进去。...默认转换们,从而让Spring有了基础转换能力,进而完成绝大部分转换工作。...[20201219122106697.png#pic_center] 兜底转换 按照添加转换顺序,Spring在最后添加了4个通用转换器用于兜底,你可能平时并不关注它,但它实时就在发挥着它作用...: 存在一个参数,且参数类型是sourceClass类型构造 构造访问权限必须是public 特别值得注意是:此转换不支持Object.toString()方法将sourceType转换为java.lang.String

    60540

    transactionscope mysql_c# – 嵌套TransactionScope在测试中失败

    大家好,又见面了,是你们朋友全栈君。 正在使用MSTest通过 MySQL Connector使用EntityFramework 4.3对MysqL 5.5.19数据库运行一些自动测试....正在尝试数据库访问类库中使用TransactionScope在需要时执行回滚.另外,在测试代码中,希望在每次测试之前使用TransactionScope将数据库恢复到已知状态.使用TestInitialize...,它为提供了默认超时,理解为60秒.给定测试运行时间充足....测试安排使这个DoOtherDessertStuff函数失败并抛出异常,所以调用transScope.Complete();不会发生,并且在退出AddDessert函数中using块时会自动进行回滚...在这里遇到问题是,由于它使用MyTestInitialize函数中创建环境事务范围,因此测试Assert调用不会发生,因为事务范围回滚发生了 – 至少这是认为正在发生事情.验证了Transaction.Current.TransactionInformation.Statusis

    2.1K10

    JavaScript 权威指南第七版(GPT 重译)(四)

    构造函数调用与常规函数调用如此不同事实是我们给构造函数名称以大写字母开头另一个原因。构造函数被编写为以构造函数方式调用,并且如果以常规函数方式调用,它们通常不会正常工作。...左操作数应该是正在测试对象,右操作数应该是命名类构造函数。表达式 o instanceof C 在 o 继承自 C.prototype 时求值为 true。...尽管importexport多年来一直是语言一部分,但它们最近才被 Web 浏览 Node 实现。 作为一个实际问题,JavaScript 模块仍然依赖于代码捆绑工具。...代码与使用常规 JavaScript 数组完全相同,但在测试中使用 Uint8Array() 而不是 Array() 使代码运行速度超过四倍,并且使用内存少了八倍。...这些函数从未作为核心语言一部分标准但它们在所有浏览 Node 中都有效,并且是 JavaScript 标准库事实部分。

    46110

    5. 穿过拥挤的人潮,Spring已为你制作好高级赛道

    当匹配不到任何转换时,它用于兜底 默认转换注册情况 Spring新一代类型转换内建了非常多实现,这些在初始阶段大都被默认注册进去。...默认转换们,从而让Spring有了基础转换能力,进而完成绝大部分转换工作。...兜底转换 按照添加转换顺序,Spring在最后添加了4个通用转换器用于兜底,你可能平时并不关注它,但它实时就在发挥着它作用。...: 存在一个参数,且参数类型是sourceClass类型构造 构造访问权限必须是public 特别值得注意是:此转换不支持Object.toString()方法将sourceType转换为java.lang.String...构造 基本同静态工厂方法示例,略 使用场景 基于本转换可以完成任意对象 -> 任意对象转换,只需要遵循方法名/构造默认一切约定即可,在我们平时开发书写转换层时是非常有帮助,借助ConversionService

    41420

    Lombok!代码简洁神器还是代码“亚健康”元凶?

    进一步分析其源代码并理解相关注解工作原理后,发现并不需要使用一个非标准第三方库将Java转换为一个精巧而酷炫语言。...于是不得不将所有的Lombok注解从项目源代码中清除,并使用IDE自带功能生成getter/setter,equals,hashCode,toString以及构造等方法,你也可以使用Delombok...可读性差 Lombok隐藏了JavaBean封装细节,如果你使用@AllArgsConstructor注解,它将提供一个巨型构造,让外界有机会在初始对象时修改类中所有的属性。...首先,这是极其不安全,因为类中某系属性我们是不希望被修改;另外,如果某个类中有几十个属性存在,就会有一个包含几十个参数构造被Lombok注入到类中,这是不理智行为;其次,构造参数顺序完全由...得不偿失 使用Lombok,一时觉得很爽,但它却污染了你代码,破坏了Java代码完整性,可读性安全性,同时还增加团队技术债务,这是一种弊大于利,得不偿失操作。

    26120

    数据结构思维 第三章 `ArrayList`

    在列表中最后一个节点中,按照惯例,next是null。 ListNode提供了几个构造函数,可以让你为datanext提供值,或将它们初始化为默认值,null。...构造函数将head设为null,表示空列表,并将size设为0。 这个类使用类型参数E作为元素类型。如果你不熟悉类型参数,可能需要阅读本教程:http://thinkdast.com/types。...这个方法是私有的,因为它在这个类中使用,但它不是List接口一部分。 完成后,再次运行测试;testIndexOf,以及依赖于它其他测试现在应该通过。...一旦你实现能够工作,将它与仓库solution目录中版本比较。 3.6 垃圾回收注解 在MyArrayList以前练习中,如果需要,数字会增长,但它不会缩小。...该方法本身包含两个常数时间操作,所以它看起来像是常数时间。但是当你调用它时,你将使垃圾收集做一些工作,它与元素数成正比。所以也许我们应该将其认为是线性

    42020

    JavaScript 编程精解 中文第三版 八、Bug 错误

    语言 计算机能够自动地向我们指出许多错误,如果它足够了解我们正在尝试做什么。 但是这里 JavaScript 宽松是一个障碍。 它绑定属性概念很模糊,在实际运行程序之前很少会发现拼写错误。...如果你有兴趣为你程序添加更多严谨性,建议你尝试一下。 在本书中,我们将继续使用原始,危险,非类型 JavaScript 代码。...当程序执行到带有断点行时,它会暂停,并且你可以检查该点绑定值。 不会详细讨论,因为调试在不同浏览上有所不同,但请查看浏览开发人员工具或在 Web 上搜索来获取更多信息。...它没有定义它自己构造,这意味着它继承了Error构造,它需要一个字符串消息作为参数。 事实上,它根本没有定义任何东西 - 这个类是空。...这使得这种错误不太可能被忽视,并且当它们发生时更容易找到它们原因。 不建议尝试为每种可能不良输入编写断言。 这将是很多工作,并会产生非常杂乱代码。

    1.2K100
    领券