没有继承如预期的Java +操作人员的行为

Jayden.Cameron:

我学习Java创建类,但遇到了奇怪的行为。

我想创建一个名为类My_class具有调用的方法add该方法应该采取的成员My_class并将其添加到另一构件My_class中,括号中指定。

例如,运行以下命令:

My_class first = new My_class(2);
My_class second = new My_class(6);
My_class answer = first.add(second);
System.out.println(answer);

应打印:

8

下面是我使用的代码My_class,但我一直运行到问题,关于如何My_class与交易+操作。我想,既然My_class是继承int,应该有没有问题,但很明显,我在这里失去了一些东西根本。

public class My_class {
    /* Data members*/
    private int integer;

    /* Constructors */
    public My_class(int i) {integer = i;}

    /* Methods */
    public My_class add(My_class new_integer) {
        return integer + new_integer;
    }

而不是预期的结果,我得到:

The operator + is undefined for the argument type(s) int, My_class

在此先感谢您的帮助!

TJ克劳德:

由于错误消息说,你想添加的intinteger)和My_classnew_integer)。你不能做到这一点。

如果你想使用的integer字段从new_integer,你必须明确地访问它:

return integer + new_integer.integer;
// -------------------------^^^^^^^^

(可能是最好的重命名new_integer参数的东西,并不意味着它是一个int,因为它不是,它是一个实例My_class。)

上述返回int,因此该方法将是:

public int add(My_class new_integer) {
// ----^^^
    return integer + new_integer.integer;
}

如果你想保持My_class的返回值add,你需要创建一个My_class实例:

public My_class add(My_class new_integer) {
    return new My_class(integer + new_integer.integer);
    // ----^^^^^^^^^^^^^-----------------------------^
}

附注:我也强烈鼓励使用总this.访问类的实例成员时,那么:

return this.integer + new_integer.integer;
// ----^^^^^

这是一个风格问题(Java编译器会推断出this.在必要时),但恕我直言,它提高了清晰度,因为integer其本身可以是一个局部变量,类名(虽然希望不是),静态成员,...


附注2:虽然你可以做任何你喜欢在自己的代码,铺天盖地的约定(也正式之一,PDF)是使用混合的情况下以大写字母开头的每个字,所以MyClass不是My_class

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

具有两个(或更多)具有相同密钥的数据帧的工作人员行为

数据流工作人员没有启动

如何列出所有Presto工作人员?

所有工作人员的重叠日期范围

从单个工作人员收到消息后发送所有工作人员消息

带有工作池的基准功能,但没有工作人员但测试结果更快

Heroku容器作为工作人员的部署没有开始

Phusion Passenger Rails 没有在工作人员之间平衡请求

没有虚拟继承的奇怪行为

同一个工作人员有X个任务从Y个任务中脱颖而出的机会(在Z个工作人员中)

jQuery .offset()。top没有预期的行为

相关子查询没有预期的行为

共享元素过渡没有预期的行为

JSON.parse没有预期的行为

没有预期行为的 while 循环

有没有办法使用 Docker 部署 Airflow 但使用不同的工作人员?

为什么在Java和C确实继承行为不同++与超致电(或没有)子的方法呢?

如何在python中使用带有队列的工作人员池?

如何在不使用所有工作人员的情况下限制大量任务

Anaconda(4.2)Python 2.7.14:确保已注册工作人员并拥有足够的资源

Python多处理池:如何知道池中的所有工作人员何时完成?

R doParallel foreach具有针对独立工作人员的错误处理

告诉Sidekiq使用所有可用的Heroku工作人员

如何确保有监督的工作人员(php)在GAE flex环境中运行良好?

有什么办法告诉RabbitMQ重新发送未确认的消息给工作人员?

AWS Step Functions-每个活动ARN有多个工作人员

具有不同 Azure 总线订阅的多个后台工作人员

Hangfire中具有不同工作人员计数的多个队列(服务器)

适用于Resque中所有工作人员的ActiveRecord :: RecordNotFound