• ベストアンサー

キャストの仕方?

EXPRESSの回答

  • EXPRESS
  • ベストアンサー率0% (0/1)
回答No.2

配列の中身が生成されていないようです。 コンストラクタで public DemoData(){ for(int i=0; i<rots.length; i++) { rots[i] = new Rots(); } } こんな感じにすると、NullPointerExceptionは、でなくなります。

shootingfish
質問者

お礼

vmlinuzさん、EXPRESSさん どうもありがとうございました。 おかげでエラーが消えました。 初歩的なことがわかってなくて、苦労してます。 本当にありがとうございました。

関連するQ&A

  • さっきの質問の続きなんですが。。。。。

    class Rots{ double thetaX, thetaY, thetaZ; } public class DemoData{ Rots[] rots = new Rots[16]; public DemoData(){ for(int i=0; i<rots.length; i++) { rots[i] = new Rots(); } } void changeTheta(int i, double dx, double dy){ rots[i].thetaX += dx; rots[i].thetaY += dy; System.out.println("rots[i].dx= "+rots[i].thetaX ); } } というプログラムがあります。他のファイルで DemoData dd = new DemoData(); if(j<=16 && j>=0) dd.changeTheta(j, thetax, thetay); と2回以上呼ぶと、rots[i].thetaX、rots[i].thetaY の値が加算されずに、毎回渡されたままのdx、dy の値がプリントされてしまいます。どうしてでしょうか? もう一度助けてください。お願いします。

    • ベストアンサー
    • Java
  • 配列を使った・・・。

    配列を使って簡単な迷路を作っているのですが、なかなかうまくいきません。 0を" "1を"■"を表示させたいのですがうまくいきません。 何処を直せばいいのか教えてください。 public class Sample1 { public static void main (String[]args) { int [][] data = { {1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1}, {1,0,1,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1}, {1,0,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,1,1,1}, {1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0,1,1,1}, {1,1,1,1,1,0,0,0,0,1,0,1,0,0,0,0,1,1,1,1}, {1,1,1,1,1,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1}, {1,1,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1}, {1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1}, {1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1}, {1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} }; for (int i=0; i<10; i++) { for (int j=0; j<20; j++) { System.out.print(data [i][j]); } if(data [i][j] = 1){ System.out.println("■"); }else{ System.out.println(" "); } } } }

    • ベストアンサー
    • Java
  • プログラムの合体。

    jump7799_4836さん 2018/7/2103:34:44 public class Test2 { public static int メソッド () { System.out.println("メソッド()が呼ばれました"); return 0; } public static int メソッド (int i) { System.out.println("メソッド(int i)が呼ばれました"); return i; } public static int メソッド (int i, int j) { System.out.println("メソッド(int i, int j)が呼ばれました"); return i; } public static int メソッド (short s) { System.out.println("メソッド(short s)が呼ばれました"); return s; } public static int メソッド (double d) { System.out.println("メソッド(double d)が呼ばれました"); return (int) d; } } public メソッド class Test2 { public メソッド static void main(String[] args) { Test2.メソッド (); Test2.メソッド (1); Test2.メソッド (1,2); Test2.メソッド (1.1); Test2.メソッド ((short) 1); Test2.メソッド ((double)1); } } kouzou@GD348ZZD9:/WORK$ javac Test2.java Test2.java:29: エラー: class、interfaceまたはenumがありません public メソッド class Test2 { ^ Test2.java:30: エラー: <identifier>がありません public メソッド static void main(String[] args) { ^ エラー2個 2つのプログラムが合体することってあるのですか? いつもすみません。 解説のほど、宜しくお願い申し上げます。

    • ベストアンサー
    • Java
  • 並び換えるクラスについて

    小さい順に並べかえをテストするクラスが下のように指定されている場合、 小さい順に並べかえ処理をするクラスはどのようにすればいいのでしょう? class SortTest{ public static void main(String[] args){ int[] arri = {3, 2, 8, 7, 4, 6, 1, 0, 5, 9}; System.out.println(); System.out.print("\tソート前:"); arrayPrintln(arri); tool.Sort.ascendBubble(arri); // クラスメソッドに処理を委譲 System.out.print("\tソート後:"); arrayPrintln(arri); System.out.println(); double[] arrd = {3.3, 2.2, 8.8, 7.7, 4.4, 6.6, 1.1, 0.0, 5.5, 9.9}; System.out.println(); System.out.print("\tソート前:"); arrayPrintln(arrd); tool.Sort.ascendBubble(arrd); // クラスメソッドに処理を委譲 System.out.print("\tソート後:"); arrayPrintln(arrd); System.out.println(); } //配列の値を出力するメソッド******************* public static void arrayPrintln(int[] arr){ for(int i=0; i<arr.length; i++){ System.out.print(arr[i] + " "); } System.out.println(""); } public static void arrayPrintln(double[] arr){ for(int i=0; i<arr.length; i++){ System.out.print(arr[i] + " "); } System.out.println(""); } } 初心者な私がggったりして作成したやつが↓です。 class Sort{ public ascendBubble(int[] arri); public ascendBubble(double[] arri); //public void getArri(){ //public void getArri(String[] arri){ public void getArri(int[] arri){ for(int i=0;i<arri.length-1;i++){ for(int j=arri.length-1;j>i;j--){ if(arri[j]<arri[j-1]){ int t=arri[j]; arri[j]=arri[j-1]; arri[j-1]=t; } } } } public void getArri(double[] arri){ for(int i=0;i<arri.length-1;i++){ for(int j=arri.length-1;j>i;j--){ if(arri[j]<arri[j-1]){ int t=arri[j]; arri[j]=arri[j-1]; arri[j-1]=t; } } } } } わかりずらいかと思いますが、 アドバイスの方よろしくお願いします。

  • 対数表のプログラミング java

    どうもです。 以下のプログラミングをjavaで作成したいのですが、どうすればよいでしょうか? x = 1.00, 1.01, 1.02,・・・, 5.47, 5.48, 5.49に対して、log(10)xを示す対数表を作成しなさい 書式指定無し ちなみに自分で書いてみたらこうなりました import java.until.Scanner; class Taisuu { public static void main(String[] args) { final int N = 10; final int N = 100; System.out.println("+0.00%1d", j); System.out.println(); double base = 1; for (int i=0; i<M; ++i) { double x = base + 0.01*i; System.out.printf("%4.2f", x); for (int j=0; j<N; ++j) { double dx = 0.001*j; int log10x = (int)(1000000*Math.log10(x+dx)); System.out.printf("%06d", log10x); } System.out.println(); } } }

  • javaのプログラムについて

    java始めたばかりの者です。 class sample1 { public static void main(String[] args) { for(int i=1; i<=5; i++){ for(int j=0; j<i; j++){ System.out.println("*"); } System.out.println("\n"); } } } これを実行すると * * * * * * * * * * * * * * * こうなってしまい * ** *** **** ***** このようにするにはどうしたらいいのでしょうか??

    • ベストアンサー
    • Java
  • 実行するにはどうすれば良いのでしょうか?

    まず、 class Car{ private String name; private int width; private int height; private int length; private double x; private double y; private double fuel; Car(String name,int width,int height,int length,double fuel){ this.name=name; this.width=width; this.height=height; this.length=length; this.fuel=fuel; x=y=0; } double getX() {return x;} double getY() {return y;} double getFuel() {return fuel;} void putSpec(){ System.out.println("名前:"+name); System.out.println("車幅:"+width+"mm"); System.out.println("車高:"+height+"mm"); System.out.println("車長:"+length+"mm"); } boolean move(double dx, double dy){ double dist = Math.sqrt(dx*dx+dy*dy); if(dist < fuel) return false; else { fuel -= dist; x += dx; y +=dy; return true; } } } のファイルをcar.javaと名前をつけて保存しました。 次に import java.util.Scanner; class CarTester2{ public static void main(String[] args){ Scanner stdIn = new Scanner(System.in); System.out.println("車のデータを入力せよ。"); System.out.println("名前は:"); String name = stdIn.next(); System.out.println("車幅は:"); int width = stdIn.nextInt(); System.out.println("高さは:"); int height =stdIn.nextInt(); System.out.println("長さは:"); int length =stdIn.nextInt(); System.out.println("ガソリン量は:"); double fuel= stdIn.nextDouble(); Car myCar = new Car(name,width,height,length,fuel); while(true){ System.out.println("現在地("+myCar.getX()+","+myCar.getY()+")・残り燃料"+myCar.getFuel()); System.out.print("移動しますか[0…No/1…Yes]:"); if(stdIn.nextInt()==0) break; System.out.print("X方向の移動距離:"); double dx = stdIn.nextDouble(); System.out.print("Y方向の移動距離:"); double dy = stdIn.nextDouble(); if(!myCar.move(dx,dy)) System.out.println("燃料が足りません!"); } } } のファイルをCarTester2.javaという名前で保存しました。 この2つのファイルは同一フォルダに入っています。 それで、 javac CarTester2.javaという風にコンパイルしても 「エラー4  変数myCarのシンボルが見つけられません」 といった感じにコンパイルエラーとなってしまいます。 何が原因なのでしょうか?

  • java iを1づつ増やすプログラムと2づつ増やすプログラム

    次のようにすればiを1づつ増やして表示されます。 class Calc{   int i=1;   int add(){     return i++;   } } class Count{   public static void main(String[] args){     Calc calc = new Calc();     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());   } } 実行結果 i = 1 i = 2 i = 3 しかし次のように2づつ増やそうとすると、 class Calc{   int i=1;   int add(){     return i+2;   } } class Count{   public static void main(String[] args){     Calc calc = new Calc();     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());   } } 実行結果 i = 3 i = 3 i = 3 このようになってしまいます。どこがおかしいのでしょうか?

    • ベストアンサー
    • Java
  • JAVAコンストラクタについて

    JAVA のコンストラクタ定義の際に、下記のようにコンストラクタにvoidを付けた時と付けない時の処理結果が変わるのはなぜでしょうか。 (1) class O { protected int d; O(){ System.out.println("O = " + d); } } class Study_6_3main_void { public static void main(String args[]) { int i = 1; O OO = new O(); System.out.println("O = "); } } (2) class O { protected int d; void O(){ System.out.println("O = " + d); } } class Study_6_3main_void { public static void main(String args[]) { int i = 1; O OO = new O(); System.out.println("O = "); } } 実行結果 (1) O = 0 O = (2) O = 以上です。回答の程よろしくおねがいします。

    • ベストアンサー
    • Java
  • フローチャートが作れず、困っています

    下のjavaソースコードのフローチャートを作りたいのですがわかりません。誰か教えてください。 import java.io.*; public class Sosuu { public static void main(String[] args) throws IOException { BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("いくつまでの素数を表示するか入力してください"); try{ Prime prm = new Prime(Integer.parseInt(buf.readLine())); prm.calc(); }catch(NumberFormatException e){ System.out.println("数字を入力してください"); } } } class Prime { int endNum; public Prime(int endNum){ this.endNum = endNum; } public void calc(){ if(endNum <= 2){ System.out.println("2以上の数値を入力してください"); return; } for(int i = 2; i <= endNum; i++){ for(int k = 2; k <= i; k++){ if(k == i) System.out.println(Integer.toString(i)); else if((i % k) == 0) break; } } } }