【发布时间】:2017-11-21 23:13:17
【问题描述】:
我的意思是,Java 是否有存在于我可以声明的类之外的函数? (比如,在主课之前) 这是我可以在 C++ 和 JS 等中做的事情。
【问题讨论】:
标签: java
我的意思是,Java 是否有存在于我可以声明的类之外的函数? (比如,在主课之前) 这是我可以在 C++ 和 JS 等中做的事情。
【问题讨论】:
标签: java
声明method to be static 使其非面向对象。它的范围超出了该类的任何实例。通过类名 Person.doSomething 而不是实例调用。
通常称为“class method”,尽管这在我看来有点用词不当。该名称暗示了它不存在的面向对象。 Java 根本没有其他地方可以存储“只是一个函数”,因此这些函数被固定在一个类上。我认为它们是孤立的代码,没有其他地方可以住。有些人认为这种安排在 Java 中是一个糟糕的设计选择,在 Java 中,明确持有非面向对象的代码会更好。
您可以将类方法视为“只是一个函数”,因为它不是对象的行为。
Java 8 及更高版本支持lambda expressions,您可以像传递数据一样传递一大块可执行文件。这称为functional programming,与object-oriented programming 不同。
这有点像“只是一个函数”,但它的范围包括其定义类中的元素。
【讨论】: