【问题标题】:Methods with parameters带参数的方法
【发布时间】:2015-07-29 01:26:17
【问题描述】:

在方法参数中声明变量和在方法中声明变量有区别吗?两者都打印出相同的变量,但我想有区别。

【问题讨论】:

  • 您能否添加一些代码示例来解释您的意思?我认为两者之间存在非常显着的差异,但我不确定我是否理解正确。
  • 一个参数包含一个值,当您调用函数时可以将其传递给方法。在方法中声明的变量不会。
  • Eclipse标签应该去掉,这只是一个Java问题。

标签: java variables methods parameters


【解决方案1】:

通过将变量标记为方法参数,您可以将变量传递给方法

public void printIt(String text){
   System.out.println(text);
}

但是如果你在这样的方法中声明变量:

public void printIt(){
   String name;
   //you can't pass 
}

【讨论】:

  • 谢谢,你帮了大忙
【解决方案2】:

如果您指的是我认为的您,那么两者之间存在很大差异。以此为例:

public void printText() {
    System.out.println("Hello World");
}

这会打印出文本Hello World。现在看看这个方法:

printText("Hello World");
public void printText(String text) {
    System.out.println(text);
}

这两个示例中的后者提供了更大的灵活性,因为您可以使用任何您喜欢的参数调用该方法,而前者每次只会打印Hello World。当然,根据您希望方法执行的操作,一种形式可能比另一种更合适,但方法参数允许可重用​​性。

【讨论】:

    【解决方案3】:

    来自Javadoc

    局部变量 类似于对象在字段中存储其状态的方式, 方法通常会将其临时状态存储在局部变量中。这 声明局部变量的语法类似于声明字段 (例如,int count = 0;)。没有特殊的关键字指定 作为局部变量;这一决心完全来自 声明变量的位置——在 方法的打开和关闭大括号。因此,局部变量是 仅对声明它们的方法可见;他们不是 可从班级的其他人访问。

    参数 ...回想一下 main 方法的签名是公开的 静态无效main(String[] args)。这里,args 变量是 此方法的参数。要记住的重要一点是 参数总是被分类为"variables" 而不是"fields"

    【讨论】:

      【解决方案4】:

      并且还通过在 Java 中的方法中定义参数(我想 C++ 也是如此),这会导致 方法重载

      请看下面提供的示例:

       public void createPerson(int ID, String name) {
            // do something here
        }
      
        public void createPerson(double height, String name) {
            // do something here
        }
      
        public void createPerson(double height, String name, boolean testIt) {
            // do something here
        }
      

      所以它的帮助基本上是改变方法的方法签名,这导致开发人员在3个方法中实现不同的不同方法体,但名称相同但方法不同签名。

      进一步了解以下来自 Oracle Java 的 link 中的方法。

      希望这对您的问题有所帮助。

      【讨论】:

        猜你喜欢
        • 2013-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-19
        • 2012-10-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多