java - 你好,Java中的置换方法
问题描述
我已经尝试过类似 c(procedure) 中的置换方法,但它没有用,我也不明白为什么它必须是静态的
public class permute {
public static void permute(int a,int b){
int x=a;
a=b;
b=x;
}
public static void main(String[] args){
int a=2;int b=4;
System.out.println("a= "+a+"b= "+b);
permute(a,b);
System.out.println("a= "+a+"b= "+b);
}
}
解决方案
您的“置换”方法也不起作用C
。C 和 Java 都是pass by value
. 您只是在该方法中本地交换变量。交换的值不会反映在调用者的这些变量的副本中。
对于 C,使用指针。
void permute(int * a, int * b)
.
对于 Java,使用 Integer 对象而不是原始 int。
public static void permute(Integer a, Integer b)
最后,如果您不希望在 Java 中将此方法声明为静态,则需要创建类的实例并调用该对象上的方法。您不能在静态上下文中调用非静态方法。
推荐阅读
- docker - 尽管尝试使用新的战争文件更新插件,但无法使用 docker 管道更新 Jenkins
- yugabyte-db - 如何使用 YCQL 查询返回特定的平板电脑
- python - 如何通过 python 脚本在浏览器中搜索一些内容?
- laravel - Laravel,带有惯性视图的 Jetstream 返回一个空白页
- outlook - 支持通配符或 RegEx 到 AppDomain Outlook 加载项清单
- ios - How to change CBAdvertisementDataLocalNameKey value from objective C?
- iframe - GTranslate 没有在 Iframe 中切换回 Eng
- hybris - Hybris 将 Product 转换为 VariantProduct
- javascript - 将 ref 作为道具传递以获取 offsetTop
- javascript - Crypto.js 安全