java - 为什么我们需要双重定义从 main 传递到方法的变量?
问题描述
采取以下代码:
public static void print(ArrayList<String> list) {
for (String word : list) {
System.out.println( word );
}
}
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Java");
list.add("Python");
list.add("Ruby");
list.add("C++");
print(list);
}
为什么我们需要在main中将'list'定义为一个ArrayList,然后在方法中的参数中重新定义呢?为什么变量类型不能从 main 传递给方法?有什么办法可以做到这一点?您希望类型在 main 和 method 之间更改的任何示例?
感觉就像不得不两次不必要地执行相同的步骤。
例如,为什么我们不能只使用:
public static void print(list) {
for (String word : list) {
System.out.println( word );
}
}
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Java");
list.add("Python");
list.add("Ruby");
list.add("C++");
print(list);
}
解决方案
是什么list
?
public static void print(list) {
for (String word : list) {
System.out.println( word );
}
}
在面向对象编程的上下文中,假设一个外部类想要使用这个方法。它会在这里传递什么?它可以在这里传递什么?它怎么会知道?
从根本上说,您对variables和parameters之间的区别感到困惑。两者都必须是类型化的,因为 Java 是一种强类型语言,但两者都不一定相互关联。您可以有一个与稍后声明的变量命名相同的参数以提高可读性,但没有为此设置任何其他地方的强制要求。
为了清楚起见,这里再次使用相同的方法:
public static void print(ArrayList<String> l) {
for (String word : l) {
System.out.println( word );
}
}
参数的名称无关紧要,只要它是typed 即可。
推荐阅读
- git - 如何让 gitlab-ci 检出我的子模块?
- c# - 我在与列表有关的代码中看到了这一点,但我不确定它的作用
- c# - C# 代码,用于创建“格式化”的 PowerPoint 幻灯片
- python - 如何加载 Tensorflow 数据集“Iris”并将标签更改为 one-hot 编码
- c - C: 为什么这个服务器/客户端设置只能在一台计算机内工作?
- mysql - 编写mysql程序
- euler-angles - 如何获得两个 3D 向量之间的旋转(欧拉角)?(制作bvh格式)
- flutter - 我想在用户点击封面时查看 PDF 文件
- embedded-linux - 如何在 yocto 操作系统的 /usr/bin 中安装 libgpiod 二进制文件?
- mongodb - Mongodb 中的 $regularExpression 运算符不起作用