java - 如何操作java中的类

标签 java javascript class dynamic

我了解几种编程语言。其中大部分是脚本语言,如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/

相关文章:

java - 如何使用 Sparql 检索给定单词的 DBPedia 'class' 属性?

java - 将 foreach 循环与另一个类中的方法结合使用 (Java)

使用绘制的 bufferedImage 调整 JFrame 大小时 Java 崩溃

java - 为 JTree 实现工具提示的最佳方式?

javascript - Css - 如何根据事件选项卡更改水印?

javascript - $.mobile.changePage 不加载 CSS

java - 如何获取音频文件的持续时间?

java - 如何在 Java 中比较字符串?

javascript - nodejs 等到循环中的所有 MongoDB 调用完成

c++ - 声明与 “Message::save(<error-type>& fol)” 不兼容