为什么我们需要双重定义从 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);

}


SMILET
浏览 130回答 3
3回答

繁华开满天机

什么是list?public static void print(list) {&nbsp; &nbsp; for (String word : list) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println( word );&nbsp; &nbsp; }}在面向对象编程的上下文中,假设一个外部类想要使用此方法。它会在这里传递什么?这里能传入什么?它怎么会知道?从根本上说,您对variables和parameters之间的区别感到困惑。两者都必须是类型的,因为 Java 是一种强类型语言,但两者都不一定相互关联。您可以使用与稍后声明的变量名称相同的参数以提高可读性,但没有其他规定为此在任何地方设置。为了说明这一点,这里再次使用相同的方法:public static void print(ArrayList<String> l) {&nbsp; &nbsp; for (String word : l) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println( word );&nbsp; &nbsp; }}参数的名称无关紧要,只要输入的是。

繁星淼淼

Java 是一种强静态类型语言,它要求您声明该方法接受的类型。如果您不希望该方法接受任何类型的列表,您可以这样做:// this method can accept an ArrayList, LinkedList, etcpublic static void print(List<String> list) {&nbsp; &nbsp; for (String word : list) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println( word );&nbsp; &nbsp; }}public static void main(String[] args) {&nbsp; &nbsp; ArrayList<String> list = new ArrayList<String>();&nbsp; &nbsp; list.add("Java");&nbsp; &nbsp; list.add("Python");&nbsp; &nbsp; list.add("Ruby");&nbsp; &nbsp; list.add("C++");&nbsp; &nbsp; print(list);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java