• 締切済み

エラー

java初心者です ある図形を描くプログラムなのですが★★のところで「Exception in thread "main" java.lang.NullPointerException」というエラーが出てまったく何も描きません。 コンストラクタなどがまだよく理解できていません。 それも含めてどなたか解説/アドバイス/模範回答などしていただけないでしょうか? public class ExOrbit{ public static void main(String[] args){ BodyOrbit orbit = new BodyOrbit(); BodyOrbit S = new BodyOrbit(); S.init(); /*orbit.init(170, 170, 10, 190);*/ while(true){   orbit.setD1(); ★ orbit.step();★ if(orbit.setD2() >= orbit.max0){ orbit.init(170, 170, 10); } } } } public class BodyOrbit{ public int x0, y0, dist0, max0; private int dist; public Turtle t; public BodyOrbit(){ x0=170; y0=170; dist0=10; max0=190; } public void init(){ this.x0 = x0; this.y0 = y0; this.dist0 = dist0; this.max0 = max0; this.dist = dist0; this.t = new Turtle(); this.t.move(this.x0, this.y0); this.t.penDown(); } public void init(int x0, int y0, int dist0){ this.dist = dist0; this.t.move(this.x0, this.y0); } public void setD1(){ this.dist+=10; } public void step(){ ★this.t.go(this.dist);★ this.t.rotate(120); } public int setD2(){ return this.dist; } }

みんなの回答

  • OKwebb
  • ベストアンサー率44% (92/208)
回答No.2

orbit の t が new されていないからじゃないだろうか。

346mouse
質問者

補足

initの中のthis.t=new Turtle(); だけじゃダメということですか?

回答No.1

アドバイス以前にコンパイルできません。

346mouse
質問者

補足

すいません なぜコンパイルができないかわからないので質問しました…

関連するQ&A