0

私は、さまざまな 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入門…

関数とメソッドの違い、またはまったく新しいプログラムを開始していない場合、「クラスの新しいインスタンスを作成する」の意味がわかりません。

4

3 に答える 3

0

mws が言ったように、メイン メソッドは静的ではなく、色を生成するための関数が呼び出されることはありません。あなたの値がnullであることを意味します。ヒントとして、コンストラクターに変数名を含める必要はありません。

于 2013-10-30T20:29:47.313 に答える
0

メイン メソッドを静的にします。クラスの新しいインスタンスを作成します。(メイン関数内のものを別のメソッドに移動する必要があります。そうです、関数ではなくメソッドです。また、本格的なプログラミングのバックグラウンドがない場合は、そのように学ぼうとしないでください。物事はトリッキーで難しくなる可能性があります。)覚えておいてください。 、Google、ドキュメンテーションはあなたの友達です。

于 2013-10-30T20:27:13.823 に答える