我试图通过尝试并查看会发生什么来弄清楚我是否理解各种 java 内容(然后,不可避免地,试图找出问题所在)。我想我不懂函数,因为我所做的每一次尝试都导致 DrJava 犹豫不决。
我现在想做的最接近工作的一个是
import java.awt.Color;
public class Functional {
int r;
int g;
int b;
public int re(int r){
r = (int)(Math.random() * (255 - 0)) + 0;
return r;
}
public int gr(int g){
g = (int)(Math.random() * (255 - 0)) + 0;
return g;
}
public int bl(int b){
b = (int)(Math.random() * (255 - 0)) + 0;
return b;
}
public void main(String[] args) {
StdDraw.setPenColor(new Color (r, b, g));
StdDraw.filledCircle(.5, .5, .6);
StdDraw.setPenColor( new Color (r, g, b));
StdDraw.filledCircle(.5, .5, .2);
}
}
它可以编译,但是当我尝试运行它时 java barfs.
编辑:我不知道技术术语是什么,当它在屏幕上喷出红色代码时,老师只是称之为呕吐。
编辑 2: 仍然会重新添加静态数据。新的错误消息是
>java.lang.NullPointerException
>at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>at java.lang.reflect.Method.invoke(Unknown Source)
>at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
编辑 3:
(另外,如果您没有任何严肃的编程背景,请不要尝试那样学习。>事情可能会变得棘手。)
但是...但是课程是CS简介...
我不明白函数和方法之间有什么区别,或者如果您没有开始一个全新的程序,“创建类的新实例”意味着什么。