[英]Java: What is the difference between subroutine and methods?
有什么区别?
public write(){
// dostuff
}
代码在子例程,方法还是程序块上方?
我不理解这些术语,因为它们的含义是如此相似?
因此,如果我非常严格和学究,那会是哪一个? 我更喜欢将它们称为子例程,这严格正确吗?
编程语言:JAVA
编辑:谢谢,我现在明白了,但是调用它的最安全方法是什么? 块? 我使用多种编程语言,术语“块”足够了吗?
我可以将函数称为块吗?
那么我可以将所有内容都视为一个块吗? 对我来说会更容易,对吗?
我不会将块称为函数或子例程,但会将函数,方法等称为块。 称它们为方块会好吗?
那么,这是否意味着有些准确? 不能在程序块外部访问局部变量(是的,在某些情况下,这是不正确的)。
以上都不是,因为它没有返回值。 如果它是名为write.java的文件中名为write的类的无参数构造函数,则只有“正确”。 甚至违反了Sun Java编码标准。
子例程是功能语言或过程语言(例如FORTRAN和COBOL)的术语。 这些语言将数据和方法分开,方法对它们给出的数据进行操作。
对象将数据和方法封装到实例中。 大多数面向对象的程序员都更喜欢方法。 您对子例程的“首选项”会将您标记为古雅且不合时宜。
我再也听不到“子程序”。 如果我是你,我会习惯“方法”。
首先,您拥有的是构造函数,而不是方法,返回void(nothing)的正确方法就是这样的(根据C#或Java语法):
public void write()
{}
现在,关于您最初提出的问题: 子例程和方法之间有什么区别 ?恩,基本上没有任何区别 。 但是,如果您想更深入一点,那么我们将不得不进行IMO的汇编编程。 实际上,汇编中的子例程与方法在两点上有所不同:
而且,您可能会问自己:那么,我该如何处理任何事情,该子例程如何工作? 在汇编程序中,寄存器是在其中发挥作用的,而不是像在每种高级编程语言中使用方法那样将参数传递给子例程,而必须在调用子例程之前保存要处理的值(参数),确保在到达子例程之前该值不会受到影响。 以同样的方式,将结果值保存在另一个寄存器中,以备后用。 还有其他一些在组装中执行此操作的方法,通常也可以通过使用堆栈中的推入和弹出值来完成此操作,但是我想我的观点很清楚。 如果可以满足任何要求,我将使用简单的子例程在程序集中向您发布一个o代码,以添加两个数字:
org 00H
mov R3,#10 ;save the first parameter
mov R4,#20 ;save the second parameter
call Sum ;execute the subroutine
mov A,R3 ;mov 30 to accumulator
Sum: ;subroutine declaration
add R3,R4
ret
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.