Java 什么';s方法括号中使用参数和不使用参数之间的区别
这两者之间的区别是什么: (一)Java 什么';s方法括号中使用参数和不使用参数之间的区别,java,Java,这两者之间的区别是什么: (一) 公共空隙角(双f_角) { 如果(f_角=-15) { 方格=1000*f_角*Math.PI/180000; }否则 system.out.println(“发射角度:“+f_角度+”不在-15和15之间”); 和 (二) 公共静态int f_角度 公共空隙角() { ; 如果(f_角=-15) { 方格=1000*f_角*Math.PI/180000; }否则 system.out.println(“发射角度:“+f_角度+”不在-15和15之间”); 参
公共空隙角(双f_角)
{
如果(f_角=-15)
{
方格=1000*f_角*Math.PI/180000;
}否则
system.out.println(“发射角度:“+f_角度+”不在-15和15之间”);
和
(二)
公共静态int f_角度
公共空隙角()
{ ;
如果(f_角=-15)
{
方格=1000*f_角*Math.PI/180000;
}否则
system.out.println(“发射角度:“+f_角度+”不在-15和15之间”);
参数添加到方法签名中。尽管名称相同,但它们是不同的方法,因为它们的签名不同。这样,您可以创建重载方法。这称为
方法通常被重载,以增加操作的特殊性,或使调用方在控制方法的操作方式方面具有更大的灵活性。区别在于线程的安全性和方便性:
- 您可以从多个线程同时成功地调用第一个方法;第二个方法不可能做到这一点
- 调用者很清楚,
是方法的参数;第二种方法没有这样的清晰性f_angle
正如@dasblinkenlight所指出的,这对线程安全有影响。我认为对您的问题的回答是局部变量和全局变量之间的差异;它们由变量生存期和范围区分 当你为函数定义一个参数时,它就像一个局部变量,一旦函数执行完毕,变量就会被销毁(例如#1)。变量的作用域仅限于函数块
但是全局变量(示例2)即使函数已完成执行,并且所有函数都可以访问该函数,该函数仍然存在。区别在于该方法是否使用参数。您知道全局变量和局部变量之间的区别吗?因为这似乎就是问题的症结所在。根据上一个问题判断,您需要阅读基本java教程因此,方法应该以小写字母开头,变量名应该使用camelCase而不是下划线。不仅是安全性,而且是正确性。谁知道是什么方法在更改全局变量或它们在使用它做什么。(when位显然是线程安全性)你的意思是第二种方法可能可以接受任何值,而第一种方法只能接受int值吗?这只是为了用户安全吗?@treppenwitz不,这根本不是我的意思。Java允许你同时运行多个函数(在多处理器或多核的计算机上,这非常重要)。在这种情况下,两个不同的方法可以同时调用
Angle
——字面上来说。不可能同时将f_Angle
设置为两个不同的值,因此第二个方法不能使用,而第一个方法可以。@treppenwitz查找并。因此,在案例1中,我将无法使用变量f_Angle块外?不能。它的行为与函数内声明的局部变量相同。
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.");
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.");