在方法的括号中使用参数和没有参数之间的区别是什么

时间:2012-11-03 02:57:36

标签: java

有什么区别:

1)

public void Angle(double f_angle) 
{
    if (f_angle <= 15 && f_Angle >= -15)
    {
        fAngle = 1000 * f_Angle * Math.PI / 180000;
    } else
        system.out.println("Firing Angle: " + f_Angle + " is not between -15 and 15.");

2)

public static int f_angle

public void Angle() 
{ ;
    if (f_angle <= 15 && f_Angle >= -15)
    {
        fAngle = 1000 * f_Angle * Math.PI / 180000;
    } else
        system.out.println("Firing Angle: " + f_Angle + " is not between -15 and 15.");

5 个答案:

答案 0 :(得分:1)

不同之处在于线程安全性和便利性:

  • 您可以从多个线程成功同时调用第一个方法;用第二种方法是不可能的。
  • 调用者很清楚f_angle是方法的参数;第二种方法没有这种清晰度。

答案 1 :(得分:0)

参数添加到方法签名中。即使名称相同,它们也是不同的方法,因为它们的签名是不同的。这样你就可以创建重载方法。

答案 2 :(得分:0)

这称为method Overloading

方法通常会过载,以增加操作的特异性或使调用者更灵活地控制方法的操作方式。

答案 3 :(得分:0)

示例#2 对类中的变量进行操作,该变量实现名为 Angle 的方法(应以小写字母开头)。

示例#1 对从某处传递给 Angle 方法的参数进行操作。

正如@dasblinkenlight所指出的,这对线程安全有影响。

答案 4 :(得分:0)

我认为你的问题的答案是局部和全局变量之间的差异;它们由变量生命周期范围区分。

为函数定义参数时,它就像一个局部变量,一旦函数完成,执行变量就会被销毁(例#1)。变量范围仅限于功能块。

但是即使函数执行完毕并且所有函数都可以访问它,全局变量(例#2)也存在。