Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将方法传递给来自不同类的另一个方法

将方法传递给来自不同类的另一个方法
EN

Stack Overflow用户
提问于 2014-10-25 01:52:58
回答 1查看 64关注 0票数 0

基本上,我编写了一个微分方程解算器类,它将从“方程”类中提取方程,并使用rK4方法求解它。

我遇到的主要问题是,如果不通过继承扩展并获得访问权限,或者在ODE类中创建公式方法的特定实例,我无法找到将方法发送到另一个类的方法。

例如,我如何让下面的代码工作?(请记住,我不允许在ODE类中创建公式方法的特定实例):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Equations {
  public double pressureDrp( double a, double b) {
   return a+b;  //this is just a dummy equation for the sake of the question
  }
  public double waffles( double a, double b) {
   return a-b;  //this is just a dummy equation for the sake of the question
  }

}

public class ODE {
  //x being a method being passed in of "Equations" type.
  public double rK4( Equation method x ) {
    return x(3, 4);   
     //this would return a value of 7 from the pressureDrp method in class Pressure
    //if I had passed in the waffles method instead I would of gotten a value of -1.
  }
}
EN

回答 1

Stack Overflow用户

发布于 2014-10-25 02:13:51

我将使用一个接口来封装二进制方法的概念,并允许回调,类似于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interface BinaryEquation {
   double operate(double d1, double d2);
}

然后可以将其放在您的公式类中,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Equations {
   public static class PressureDrop implements BinaryEquation {

      @Override
      public double operate(double d1, double d2) {
         return d1 + d2;
      }

   }

   public static class Waffles implements BinaryEquation {

      @Override
      public double operate(double d1, double d2) {
         return d1 - d2;
      }

   } 
}

并像这样使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class ODE {
   public double rk4(BinaryEquation eq) {
      return eq.operate(3, 4);   
   }
}

或者像这样更好:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class BinaryTest {
   public static void main(String[] args) {
      System.out.println("PressureDrop(3, 4): " + new Equations.PressureDrop().operate(3, 4));
      System.out.println("PressureDrop(3, 4): " + new Equations.Waffles().operate(3, 4));
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26558613

复制
相关文章
vue methods 方法中 方法 调用 另一个方法。
this.$options.methods.test2();一个方法调用另外一个方法;
小蔚
2019/09/11
4.2K0
程序员过关斩将--来自于静态方法和实例方法的联想翩翩
面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
架构师修行之路
2019/06/21
4810
程序员过关斩将--来自于静态方法和实例方法的联想翩翩
程序员过关斩将--来自于静态方法和实例方法的联想翩翩
这两周没有妹子来找我问问题,有点小伤感,所以耽误更新了。哈哈,别当真,因为菜菜这两周周末都有事(你可以认为去公司加班了),实在是没有精力,忘各位见谅!!
心莱科技雪雁
2019/06/15
4830
程序员过关斩将--来自于静态方法和实例方法的联想翩翩
HttpClient来自官方的JSON扩展方法
Json的序列化和反序列化是我们日常常见的操作,通过System.Net.Http.Json我们可以用少量的代码实现上述操作.正如在github设计文档中所描述
HueiFeng
2020/04/13
1.2K0
HttpClient来自官方的JSON扩展方法
Json的序列化和反序列化是我们日常常见的操作,通过System.Net.Http.Json我们可以用少量的代码实现上述操作.正如在github设计文档中所描述
HueiFeng
2020/04/15
1K0
父子组件传值方法
1. 子组件(<Invitation>)定义一个变量visible 2 . 父组件使用ref接收
全栈程序员站长
2022/08/29
5510
成员方法传参机制
1)程序运行到 AA obj = new AA(); 时,会创建一个AA对象,名字为 obj。
周小末天天开心
2022/10/26
5960
成员方法传参机制
Vue父子组件传值的方法[通俗易懂]
<input type=”button” value=”点击触发” @click=”childClick”>
全栈程序员站长
2022/08/30
1.1K0
Vue父子组件传值的方法[通俗易懂]
为什么我不推荐另外2种快速传几百G文件的方法!
我是@程序员小助手 Rman,昨天看到一个题目,说在两台PC之间快速传几百G的文件,有没有什么好的快的办法。
程序员小助手
2020/05/06
2.8K0
为什么我不推荐另外2种快速传几百G文件的方法!
React Router 使用 Url 传参后改变页面参数不刷新的解决方法
今天在写页面的时候发现一个问题,就是在 React Router 中使用了 Url 传参的功能,像这样:
Kindem
2022/08/12
4.2K0
将多个属性传递给 Vue 组件的几种方式
所有使用基于组件的体系结构(如Vue和React)的开发人员都知道,创建可重用组件是很困难的,而且大多数情况下,最终会通过传入大量的属性,以便从外部更容易地控制和自定义组件。这并不坏,但是传递大量属性确实会变得有点麻烦和丑陋。
前端小智@大迁世界
2020/05/11
1.9K0
成员方法传参机制(1)
1)程序运行到 AA obj = new AA(); 时,会创建一个AA对象,名字为 obj。
zxmttkx
2022/12/02
3940
成员方法传参机制(1)
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
2.7K0
激光熔覆工艺的两种不同类型方法
在该方法中,在激光熔覆处理之前,将熔覆材料放置在工作表面上,然后用激光熔化并凝结以形成熔覆层。预设包层材料的方法包括:
国盛激光
2022/10/13
7540
激光熔覆工艺的两种不同类型方法
java反射传参方法执行
java反射向方法传递参数并执行 需要反射的类和方法 package org.example; public class CjlTest { public static void cjlPrint(String test){ System.out.println("cjltest...,"+test); } } 反射执行实现 package org.example; import java.lang.reflect.InvocationTargetException;
司夜
2022/05/31
1.5K0
iframe怎么将参数传递给vue 父组件
在子页面的iframe中想将参数传递给Vue父组件,可以使用postMessage()方法将数据发送给父窗口。父组件可以通过监听message事件来接收并处理这些数据。
王小婷
2023/08/10
1.4K0
mybatis接口方法参数传参解读
如果参数只有一个的话,#{} 里面的内容就随便写了。对于 ${} 来说,注意加单引号。
一个风轻云淡
2023/10/15
2070
mybatis接口方法参数传参解读
点击加载更多

相似问题

尝试实现来自不同类的方法

117

来自不同类的同名调用方法

216

使用来自不同类的方法

34

来自不同类的Python调用方法

13

Java方法|传值

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文