私は、さまざまな 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: スタティックが追加されたまま barfs が追加されます。新しいエラー メッセージは次のとおりです。
>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入門…
関数とメソッドの違い、またはまったく新しいプログラムを開始していない場合、「クラスの新しいインスタンスを作成する」の意味がわかりません。