我了解几种编程语言。其中大部分是脚本语言,如lua、perl、JS、ruby等。
但最近,我开始使用 Java 进行编程,它运行得很安静。所以我一直在思考JS中存在的某个功能。也就是说,构造函数的原型(prototype)。为了进一步理解我的问题到底是什么,我将用 JS 举一个例子。假设您想要创建一个关于狗的应用程序。
function dog (){
this.property1 = value;
this.propertr2 = value2;
this.propertyN = valueN;
//etc.
}
//now, I will create several instances of the constructor in JS
var snoopy = new dog();
var buddy = new dog();
我对 JS 的了解最棒的部分是,您可以使用原型(prototype)关键字动态更改构造函数以及构造函数的所有实例(如在 JS 中调用的那样),如下所示:
dog.prototype.bark = function () {
console.log("Woof!");
};
这不仅改变了有关构造函数的信息,以便用构造函数创建的每只狗都知道如何吠叫,它还进行了更改,以便构造函数的所有实例都获取构造函数的信息原型(prototype)插入在本例中教狗如何吠叫。我们可以在下一个示例中看到:
var someOtherDog = new dog ();
someOtherDog.bark(); //output will be: Woof!
snoopy.bark(); //output will also be: Woof!
buddy.bark(); //you guessed it! it will also be: Woof!
因此,通过 JS 中的原型(prototype)关键字,我可以操作构造函数及其实例。现在,我的问题是:
如何在 java 中操作类及其实例?这可能吗? 如果是这样;我应该怎么做才能在java中做类似的事情?
class dog
{
private String hairColor;
public dog ()
{
hairColor = "Brown";
}
public static void main (String args[])
{
dog snoopy = new dog ();
dog buddy = new dog ();
//now, how do I manipulate the class like I did in JS?
}
}
最佳答案
问题是 lua 和 JavaScript 都是基于原型(prototype)的,而 Java 不是。您可以使用反射来完成类似的事情,但不能达到 JavaScript 级别。 Reflection
关于java - 如何操作java中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14187922/