我想要执行以下操作,但不知道如何完成,也许有人可以提供帮助:
我想在Processing中编写一个小型库,使学生能够使用面向对象的编程概念。我给你一个简单的例子:
在处理过程中,我可以通过键入简单地在草图中的某个位置创建一个点
point(30, 30);
point(20, 20);
等等。我想要实现的是将这些函数包装到我自己的类中,例如
class Point {
float xPos;
float yPos;
Point(float x, float y) {
xPos = x;
yPos = y;
point(x, y);
}
}
Point p = new Point(10,10);
这可能听起来很愚蠢,但这样我可以更好地使用面向对象的方法。
我现在的问题如下:假设我构建了几十个这样的类,并希望在图书馆中使用它们,以便学生可以简单地使用
import myLibrary:
Point P = new Point(10, 10);
我该怎么做?我知道官方网站上有一个教程,展示了在 Eclipse 中创建一个简单的库,但是我不能使用 Java 中的任何处理函数,可以吗?我想我的点类构造函数因此而无法工作。
感谢您的帮助
里科吉尔
最佳答案
I know that there's a tutorial on the official site which shows the creation of a simple library in Eclipse, but I can't use any processing functions in Java, can I?
当然可以。阅读 this tutorial以及乔治的回答,获取有关如何做到这一点的指南。基本上,您可以将Processing 用作Java 库,它使您可以访问Java 中的Processing 类和函数。您可以用 Java 编写库,将其导出为 .jar
文件,然后使用 George 的答案或通过拖动 .jar
文件将其添加到您的处理草图中直接进入您的处理编辑器。
I guess my constructor of the point class wouldn't work because of that.
您必须将Processing sketch 的实例传递给Point
构造函数,并使用它来访问Processing 的函数。像这样的事情:
class Point {
float xPos;
float yPos;
PApplet sketch;
Point(float x, float y, PApplet sketch) {
xPos = x;
yPos = y;
this.sketch = sketch;
}
void drawMe(){
sketch.point(xPos, yPos);
}
}
然后在您的草图中,您可以使用 this
关键字传递对库代码的自引用:
Point p = new Point(10, 10, this);
p.drawMe();
您还可以考虑简单地为您的 Point
类使用单独的选项卡,而不是整个外部库。
关于java - 在Processing中编写一个小型库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43066576/