- ベストアンサー
Objectクラスのオブジェクトををdoubleにしたいです。
こんにちは。 今スタックを使ってプログラムを組んでいます。 Double型のオブジェクトをスタックに入れて、次に取り出したとき、double型の変数として扱いたいです。 スタックをpopすると、Objectクラスのオブジェクトとしてpopしてくれると思うのですが、そのオブジェクトをdouble型の変数に変換する方法がわかりませんでした。 ちなみにpushはうまくいっているようです。 誰かお分かりでしたら教えてください。よろしくお願いします。
- gamemasterno1
- お礼率38% (5/13)
- Java
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
キャストと、Double クラスのメソッドを組合わせて使います。 ↓こんな感じ。 Double d = new Double(5.55); Stack stack = new Stack(); stack.push(d); // ここまでは、OK なんですよね double x; x = ((Double)stack.pop()).doubleValue(); // 一気に書くと、こういう感じ // 以下の二つのことをやってます Double y; y = (Double)stack.pop(); // キャストをやって x = y.doubleValue(); // Double のメソッドを使う
その他の回答 (1)
- BLACKTALON
- ベストアンサー率37% (110/293)
変換というか、とりあえず、doubleとして扱いたいので有れば、 DoubleクラスのインスタンスメソッドであるdoubleValue()はだめですかね?
関連するQ&A
- 整数値を任意のオブジェクトを格納できるスタッククラスに格納する方法
class ObjStack { private Object[] mBuf; private int mSP; public ObjStack(int size) { mSP = 0; mBuf = new Object[size]; } public int getSize() { return mBuf.length; } public int getNum() { return mSP; } public boolean isFull() { return mSP == mBuf.length; } public boolean isEmpty() { return mSP == 0; } public void push(Object x) { if (!isFull()) { mBuf[mSP++] = x; } } public Object top() { Object obj = null; if (!isEmpty()) { obj = mBuf[mSP-1]; } return obj; } public Object pop() { Object obj = null; if (!isEmpty()) { obj = mBuf[--mSP]; } return obj; } } 上のプログラムは任意のオブジェクトを格納できるスタッククラスです。 int型の値はオブジェクトではないので、このObjyStackクラスに格納することができない。 整数値をこのObjStackクラスに格納する方法を教えて下さい。
- ベストアンサー
- Java
- クラスから自分のオブジェクトを操作するには
高橋麻奈著の「やさしいJava」を買って、Javaプログラミングをはじめたのですが、どうしても分からないことがあるので質問させてください。 次のようなコードがあります。 class Abc{ public static void main(String arg[]){ Def de = new Def(); de.object_null(); Def de2 = new Def(); de2.object_null(); Ghi gh = new Ghi(); gh.object_null(); } } class Def{ int d,e,f; Abc abc; Def(Abc a,int i1,int i2){ //略 } public void object_null(Abc a){ abc = a; abc.de = null; } } class Ghi extends Def{ Ghi(Abc a,int i1,int i2){ super(a,i1,i2); } } Defクラス側から自分自身のクラス変数deをnullにする場合、public void object_null()メソッドのような方法でクラス変数を指定してnullにしていました。 しかし、この場合、クラス変数de2のobject_null()メソッドではde2をnullできないし、 サブクラスGhiから、クラス変数ghをnullにする場合も、クラス変数deを指定してしまいます。 クラス側から自分自身のクラス変数を指定する良い方法を教えてください。 よろしくお願いします。 #ここは半角スペース無効なんですね(^^;
- ベストアンサー
- Java
- クラス→スタックを使う
初歩的なとこですがすでに着いていけず困っています。 問題は、 下記のプログラムにおいて、スタックへ整数10を入れるには、push(10)としてメソッドpushを呼び出す。逆に、スタックから値を取り出すには、pop()メソッドを呼び出す。また、現在のスタックの先頭位置(スタックポインタsp)は、メソッドgetSP()を呼び出すことで得られる。今、整数10と20をこの順にスタックへ入れた後、スタックから先頭の要素(整数)を取り出す。ただし、取り出した値は出力する必要はない。そして、これらの操作(3回ある)が終わる毎に、その時のスタックポインタspの値を出力する。 このような動作をするようにmainメソッドを完成させ、実行結果を確かめなさい。 class Stack { int [] stack = new int[10]; int sp = 0; void push(int n){ if(sp < stack.length){ stack[sp] = n; sp++; } } void pop(){ if(sp > 0)sp--; } int getSp(){ return sp; } public static void main(String[] args){ // <この部分を完成させなさい> } } 宜しくお願いします!!
- ベストアンサー
- Java
- C++でのクラスオブジェクトの破棄
こんにちは。 C++では、プログラムの終了時に、全てのクラスオブジェクトは、デストラクタが呼び出されて破棄されますが、プログラムの途中で、クラスオブジェクトを明示的に破棄する方法はあるのでしょうか? 例えば、new演算子によってメモリを動的に割り当てたポインタなら、delete演算子で破棄できますが、 クラスオブジェクトにdelete演算子は使えないようです。 何かいい方法を知っておられる方がいらっしゃれば、是非アドバイスを頂きたいと思います。
- ベストアンサー
- C・C++・C#
- オブジェクトを配列として扱いたい
Java(オブジェクト指向)を始めて数日の者です。 LinkedListを利用し、インスタンス化したオブジェクトをListに入れて 扱えるようにしたいと考えています。 具体的には LinkedList<クラス名> array = new LinkedList<クラス名>(); クラス名 object1 = new クラス名(); -object1の処理- array.add(object1); -object1の処理- array.add(object1); -object1の処理- array.add(object1); このようにして、object1を配列で管理するイメージです。 object1の処理結果は、毎度変わっています。 しかしこれですと、最後のobject1の処理の内容がすべてのarray(i)に入ってしまいます。 要は、array(i)は全て、同じobject1を参照しているだけ。 object1の変更結果がarray(i)に入っていくというイメージでは無い、ということでしょうか? また、この他でインスタンス化したものを配列で管理できるような方法がございましたら、ご教授いただけると幸いです。m(_ _)m 動的に配列の要素数を変更(要素が追加)ができるようにしたいのです。
- ベストアンサー
- Java
- スタックを用いたプログラム
http://okwave.jp/qa4433705.html 先日教えて戴いた事でスタックがどういったものなのかは わかりましたが、実際にプログラムを作ってみると、 なかなかうまくいけません。再びアドバイスを戴ければと思ってます。 <プログラムの仕様> 入力数値をスタックに格納し'a'が入力されたら、 スタックに格納されている数値を全て取り出し、 平均値を出力するプログラム ・スタックは、push()関数およびpop()関数を実装する ・スタックへの要素の追加はpush()関数で行う ・スタックからの要素の取出はpop()関数で行う ・スタックのサイズは任意とする int push(int push_data); 引数: スタックに追加するデータ 戻り値: 成功の場合1、失敗の場合0を返す int pop(int *pop_data); 引数: スタックから取り出した値を格納するポインタ 戻り値: 成功の場合1、失敗の場合0を返す いざ、自分で作ってみると、 仕様通りには全く作れず、結局main関数ですべてを作って しまうことになってしまいます・・
- ベストアンサー
- C・C++・C#
- オブジェクトの呼び方
こんばんわ。 初歩的な質問になるんですが、 もしクラスA・B・Cがあったとして AでCのオブジェクトを作ったとします。 そのオブジェクトをBで呼ぶにはどうすればいいのでしょうか。 変数ではなくオブジェクトなので今まではそのまま呼び出せると思ってましたがそのままでは呼び出せませんでした。 やはりクラスが違うと何か必要なのでしょうか。 よろしくお願いします。
- ベストアンサー
- Java
- キューとスタックの問題です、宜しくお願いします
(多分基本情報処理に関する問題だと思うのですが)データ構造に関する問題です、いくら考えても分かりません、宜しくお願いします。 【問】空の状態のキューとスタックの二つのデータ構造がある。 次の手続きを順に実行した場合、変数xに代入されるデータはどれか。 ここで、 ・データyをスタックに挿入することをpush(y) ・スタックからデータを取り出すことをpop( ) ・データyをキューに挿入することをenq(y) ・キューからデータを取り出すことをdeq( ) と表す。 (1)push(a) (2)push (b) (3)enq(pop( )) (4)enq(c) (5)push(d) (6)push(dep( )) (7)pop( ) → x 以上の答えとして(6)にはbがスタックにpushされるので、後入れ先出し を考えると当然「xにはb」が入るはずなのですが、どうも答えは「d」となっています。 「d」は「b」より前にスタックされてますので、最新で取出される情報は「b」しかないと思うのですが、誰か誤りを指摘してください、宜しくお願いします。
- ベストアンサー
- その他(パソコン)
- スタックメモリについて
プログラムの起動時に、スタックメモリは初期化(NULLに設定)されるのでしょうか。 PUSH・POPで使用したらデータは残りますが、未使用の場合、初期化されているかの質問です。 グローバル変数の領域はクリアされると思われますが、スタックは不明です。 クリアされないときは、ほかのプログラムで使用されたゴミデータが 残っているのでしょうか 目的は、スタック領域でメモリ障害の場合動作が変わってしまうのか、確認したいためです。 すいませんが、よろしくお願いします。
- ベストアンサー
- C・C++・C#
- objectクラスの継承
下記の手順でobjectクラスの継承のプログラムを作成したのですが、作成する際に(1)の条件プログラムと(3)のプログラム内容、つまり意味が分かりません。これはどのようなプログラムにしたら一番いいですか?至急連絡をください。 手順 (1)Personオブジェクトの身長と体重の数値が両方とも一致していればtrue、そうでなければfalseをか えすように、equals()をオ ーバーライドする。 (2)main内で、Personクラスのstudent1、student2、student3オブジェクトを用意する。 (3)student1、student2は独立に用意し、同じ数値を代入する。student3にはstudent1を代入する。 (4)student1とstudent2に対してequals()メソッドを適用する。 (5)student1とstudent3に対してequals()メソッドを適用する 結果 student1とstudent2の内容が同じかどうか調べたところtrueでした。 student1とstudent3の内容が同じかどうか調べたところtrueでした。 class Person { private double height, weight; public void inputData(double ht, double wt) { height = ht; weight = wt; } public void showData() { System.out.println("身長: " + height + "cm, 体重:"+ weight + "kg"); } } class K4 { public static void main(String args[]) { Person student1 = new Person(); Person student2 = new Person(); Person student3 = new Person(); student3 = student1; boolean bl1 = student1.equals(student2); boolean bl2 = student1.equals(student3); System.out.println("student1とstudent2の内容が同じかどうか調べたところ"+bl1+"でした。"); System.out.println("student1とstudent3の内容が同じかどうか調べたところ"+bl2+"でした。"); } }
- ベストアンサー
- Java
お礼
できました。ありがとうございました。