• ベストアンサー

「ラッパークラス」の存在意義が分かりません。

「ラッパークラス」の存在意義が分かりません。 ラッパークラスの使い方などについての解説はよく目にしますが、 その意義となると、明確な説明を見たことがありません。 (本質問では、使い方を質問しているわけではありません。) どういう意味で、便利なのか、 つまり、その存在価値について、お聞きしたいのです。 これがないと乗り越えられない壁があるのでしょうか。 その壁を乗り越えるための道具として、用意されたものであるなら、 その壁というものを教えて頂きたいです。 どなたか宜しくお願い致します。

  • Java
  • 回答数11
  • ありがとう数17

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.4

個人的に納得している状況を話しますね。 プリミティブなデータ(例えばint)はそれ自体に実体が あるから、「インスタンス化」なんてしませんよね。 ということは「null」には絶対にならないわけです。 ところで、データベースからレコードを読み込み、整数型の フィールドのデータを受け取ることを想定します。 そのフィールドがnullだった場合、受け取る変数がint型で あったら、「nullであること」を表現できません。nullと 0は違いますからね。でも、Integer型の変数ならnullにする ことができます。それにtoStringで編集したりできるのも ウレシイところです。 あと、リフレクションをやると分かりますけど、実行させる メソッドに渡す変数は本体の定義がプリミティブ型でも、 オブジェクト型の配列にする必要があるので、ラッパークラスに 限られます。

nbsp0606
質問者

お礼

こちらの回答を読み、また一歩、理解が深まりました。 核心に触れた回答をありがとうございます。 ・プリミティブなデータ型では、nullを受け取れない。 ・オブジェクトならば、toStringメソッドで編集ができる。 (つまり、ラッパークラス付属の各メソッドが使える。 もっとも、そのメソッドの中に、どんな便利なものがあるのかが、 具体例として、ここでは知りたいわけですが。) ・リフレクションのことはまだ分かりませんが、このリフレクションの分野において、 プリミティブなデータをオブジェクト型に変換する必要性があり、その際に、 ラッパークラスのようなものがあると便利、ということですね。 以上、ざっくりとではありますが、ラッパークラスの意義が見えてきました。 大枠が掴めてきた、といった感じです。

その他の回答 (10)

  • hatimiti
  • ベストアンサー率68% (26/38)
回答No.11

ちょろっと調べてみましたが、あるサイトにこんなことが書かれていました。 「オブジェクト指向言語なのにプリミティブ型を残したのは,C,C++などの互換性と,メモリ節約のためである」 C,C++との互換性というのは、native キーワードを使用する際に関わってくるのでしょうかね?(私も native は使った事ないのでわかりませんが) メモリの節約というのはちょっと思っていました。無駄なものがない分、プリミティブのほうがメモリ節約になるかと思います。(int=4byte, Integer=8byte なのか?) あと、引数として扱う場合、プリミティブは値渡し、オブジェクトは参照渡しとなるという違いもあるかと思います。

nbsp0606
質問者

お礼

大変興味深く読ませて頂きました、 「プリミティブ型の存在意義」 についてのお話を。笑 CやC++との互換性(言語習得者への配慮的互換性といったところでしょうか)については、 その互換性は、本当に必要だったのか、と思えますけどね。 (もし、言語習得とは関係のない互換性、というのがあるのだとしたら、教えて頂けますでしょうか。CとJavaを連結?させてプログラムを組むなんて場合?の互換性?) 互換性の意味を取り違えると、せっかくのお話を誤解したままになってしまうので、 少々わざとらしく騒いでみました。笑 一方、そのあとに記述されていた、「メモリ節約のため」という所は、 私もその通りだと思います。この効果は言語設計の際、意図されていただろうと思います。 また、値渡し、参照渡しの件は、 むしろ、どちらかに統一されていた方が混乱が少なくて済むのではないかなと思えるので、 すべてをオブジェクトにし、渡し方もすべて参照渡しにする、 という方が良かったのではないか、という気もします。 以上、色々と考えさせられる回答でした。 大変参考になりました、ありがとうございます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.10

ちょろっと #7 に書いたんだけど, それをいうと「だったら最初から全部オブジェクトにしておけばいいじゃん」って突っ込まれそうな気がする>#9. 実際, 「純粋なオブジェクト指向言語」 (例えば Smalltalk) では「全てのものがオブジェクト」というきれいな世界を実現していたりしますし. で, こう考えると質問とは逆に「プリミティブ型の存在意義ってなんだろう」となってしまうわけでした. ああ, 質問に全く答えてないよ....

nbsp0606
質問者

お礼

確かに、そうですよね、 プリミティブ型の方が、Javaの世界では異端児であり、 この異端児の存在を許したせいで、 ラッパークラスなるものを存在させることになってしまった、 と考えると、 「プリミティブ型の存在意義ってなんだろう」 こう考える方が、自然と言えば自然のような気がしますね。 私はJavaの前に、PHPというオブジェクト指向なしでも扱える言語を使っていたため、 このJavaの世界において、プリミティブ型を基準に、 オブジェクト型という謎なヤツと格闘してきましたが、 このJavaの世界では、逆にプリミティブ型って何やねん、なんですね。笑 PHPから渡ってきた私からすると、 Javaのオブジェクト指向度は凄まじいと感じましたが、Smalltalkを知ると、 Javaはプリミティブ型というのを残している点で、 ちょこっとオブジェクト指向型としては、不完全なわけですね。 大変よくわかりました。 ちょっと賢くなりました。

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.9

 #3です。  また、抽象的な説明になりつつありますが、お許しを。  透過的に扱う例として、比べるというものがあるかもしれません。 int i = 1; String str = "文字列";  この二つは、比べることができません。 if (i == str) もだめですし、 if (str.equals(i))  も、だめです。 (オートボクシングについては、とりあえず忘れてください)  false が出てほしいのに、コンパイルエラーで、比べることすら許されません。  しかし、 Integer i = Integer.valueOf(1); String str = "文字列"; if (str.equals(i))  これは、可能で、ちゃんと、 false になります。  仮に、配列にプリミティブ型とオブジェクト型が混在できたとしましょう。  その中から、あるデータと同じものを探すというのは、ありそうなことです。  そんな時はいったいどうしましょう?  プリミティブ型とオブジェクト型の型検査ができたとしても(Java では無理ですが) 1. 配列からデータを一つ取り出す。 2. プリミティブ型かオブジェクト型かを調べる。 3. プリミティブ型なら、比べるデータとさらに型があっているかどうか調べ、違うならfalse。 4. 同じなら、改めて、比べる  こんな複雑なことをするくらいなら、最初からラッパークラスに包んで、すべて equals メソッドで比べた方が、透過的で、シンプルです。

nbsp0606
質問者

お礼

文字修飾情報の例で、さらに詰めて補足して頂けるものと期待しておりましたが、 今度はちょっと角度を変え、equals()に着目した例でした。 複数(例としてここでは2つ)の変数のデータ比較をする際、 それら複数の変数の型が、それぞれプリミティブ型より、それぞれオブジェクト型である方が、 都合が良い、ということですよね? オブジェクト型どうしの比較であれば、 equals()を使うことができ、これを使うことで簡単に比較結果を得られるからです。 比較対象にある複数の変数がそれぞれ、 プリミティブ型かつ同一の型(intどうしとか)ならば、 わざわざラッパークラスを出すまでもないのでしょうが、 このような、かなり限定されたケースは珍しく、 より汎用的に、複数の変数を比較することを考えた場合には、 ラッパークラスでもって、equals()を使い、目的を果たす方が楽、 ということなのでしょう。 データを、プリミティブ型からオブジェクト型に昇格(?笑)させることで、 より複雑な扱い方が可能になる、とも言えますでしょうか。 できることが広がったという意味で複雑になったように思いますが、 それを使うことで、単純な方法で、したいことができるようになったわけで、 そこに、このラッパークラスの真価(存在意義)があるのでしょう。 バラバラなプリミティブ型のデータを、 皆、オブジェクト型にラップすることで、 共通した扱い方が可能となる、そんなイメージがわいてきました。 プリミティブ型と、オブジェクト型がそれぞれどういう仕様で、 また、両者がどう異なるのか、を理解することが、 もしかしたら、本問の解決の近道なのかもしれません。 いやはや、おかげさまで、ゴールは近そうです。笑

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.8

 #3です。  長々と書いてしまいましたが、どちらかというと、 > プリミティブ型とオブジェクト型、型が違うからと言って、 >「文字の色」「太字か否か」「大きさ」などを別々の場所に >格納するのはおかしな話です。 > すべてをオブジェクト型にしてしまえば、これらの意味情報を >同列に扱うことでできるのです。  こっちを言いたかったわけです。  「文字の色」「太字」「大きさ」、これらは、文字列を修飾する情報という点で仲間です。  できるなら、「文字列修飾情報」という一つの袋にまとめて入れておきたいわけです。  それなのに、 「文字の色はColorクラスなのでオブジェクト袋に入れて、太字はboolean袋に入れて、大きさはinteger袋に入れよう」  なんて事をやっていると、情報がバラバラになってしまいます。  重要なのはデータの意味であって、型ではありません。  すべてをオブジェクト型として、情報を透過的かつシンプルに扱うというのは、オブジェクト指向では、重要なのです。  似たような考え方として、抽象クラスやインターフェースが存在します。  これらも、なくてもプログラムは作れますが、使いこなせば、同じ意味を持つ違うクラスを透過的かつシンプルに扱えるようになります。

nbsp0606
質問者

お礼

>どちらかというと、(中略)こっちを言いたかったわけです。 そっちでしたか、すみません。笑 >文字列修飾情報という一つの袋にまとめて入れておきたい >なんて事をやっていると、情報がバラバラになってしまいます。 そういった概念をまず、頭に入れておきます。言わんとすることはよく分かります。 例えば、PHPという言語の配列では、データ型関係なく、 値を配列に格納していけます。 つまり、 arr = array(); arr[0] = 5; arr[1] = "たこやき"; arr[2] = TRUE; ということができます。 この場合、配列arr の中には、数値も文字列も真偽値も入っていることになります。 もし、このようなことができるのであれば、 arr[0] = 1; arr[1] = "red"; arr[2] = "bold"; arr[3] = "24pt"; という風にすれば、 このarr1つで、文字列修飾情報を1箇所にまとめられたことになります。 で、これをJavaでするなら、 ラッパークラスを使うと便利ですよ、ということでしょうか? ちなみに、 >すべてをオブジェクト型にしてしまえば、これらの意味情報を同列に扱うことでできるのです。 とありましたが、 この「同列に扱う」とは、どういった意味でしょうか? プリミティブ型(int):ID情報 プリミティブ型(String):色情報 プリミティブ型(int):太さ情報 プリミティブ型(int):サイズ(pt)情報 ↓ オブジェクト型(object):ID情報 オブジェクト型(object):色情報 オブジェクト型(object):太さ情報 オブジェクト型(object):サイズ情報 こうすることで、何か良いことがあるのでしょうか? (私は何か勘違いをしてそうですが、誤解を恐れずに質問させて頂きました。笑) あえて、誇張して書いている部分もありますが、 それは問題箇所を明確にするためだったりします。(ほんとか。笑) また宜しければ、アドバイスをお願い致します。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.7

まあ確かに「ラッパクラスの意義」って難しいと思う. 逆に考えれば「プリミティブ型を含めてすべて『オブジェクト』としておけば『ラッパクラス』そのものが不要」なので.... そういう意味では「最初の『アレ』な設計を覆い隠す」というのが意義なのかもしれない.

nbsp0606
質問者

お礼

またしてもありがとうございます。 皆さんからアドバイスを受けてきて、今思うことは、 私の疑問というのは、つまり、 プリミティブ型を、オブジェクト型に変換する意義、 が分からん、ということなのでしょうね。 どうして、プリミティブ型のままじゃダメなのさー!! え、なになにっ、 オブジェクト型じゃないと、受け付けないメソッド野郎が存在するからだと? また、 オブジェクト型にすることで、便利なメソッドが使えるようになり、 プリミティブ型ではできなかったことが、できるようになるだって?? それは本当か! というオチで、大雑把には、よろしいでしょうか。 と、今、どなたかに質問したいと思っているのですが…。 なお、もしまだ、隠されている意義が他にもあるようでしたら、 追加して頂けると嬉しいです。

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.6

 #3です。  ArrayListじゃあ納得できませんか。  では、もっと、具体的に。  サンプルコードをみてください。 public class Test extends JFrame {   JTextPane textPane;   DefaultStyledDocument document;   public static void main(String[] args) {     SwingUtilities.invokeLater(new Runnable() {       public void run() {         Test frame = new Test();         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         frame.setSize(400, 300);         frame.setVisible(true);       }     });   }   public Test() {     document = new DefaultStyledDocument();     textPane = new JTextPane(document);     try {       //属性情報を作成       SimpleAttributeSet attribute = new SimpleAttributeSet();       //属性情報の文字色に赤を設定       attribute.addAttribute(StyleConstants.Foreground, Color.RED);       //属性情報に太字を設定       attribute.addAttribute(StyleConstants.Bold, Boolean.TRUE);       //属性情報に文字サイズ20を設定       attribute.addAttribute(StyleConstants.FontSize, Integer.valueOf(20));       //ドキュメントにその属性情報つきの文字列を挿入       document.insertString(0, "あいうえお\n", attribute);     } catch (BadLocationException ex) {       ex.printStackTrace();     }     add(textPane, BorderLayout.CENTER);   } }  属性情報の作成部分をみてください。  文字色を赤、太字、サイズを設定しています。  太字とサイズの第2引数に注目してみてください。  ラッパークラスです。  どうしてでしょう?  それは、このメソッドの第2引数がObject型しか受け付けないから、致し方なくラッパークラスにせざるを得ません。 「いやいや、こんなのメソッドオーバーロードで対処可能でしょう。このメソッドを作った人が手抜きです」  と、言うかもしれませんが、そんなに単純ではありません。  SimpleAttributeSet クラスは、内部では Hashtable を使ってこれらの情報を格納しますので、結局、最終的にはラッパークラスにせざるを得なくなります。  プリミティブ型とオブジェクト型、型が違うからと言って、「文字の色」「太字か否か」「大きさ」などを別々の場所に格納するのはおかしな話です。  すべてをオブジェクト型にしてしまえば、これらの意味情報を同列に扱うことでできるのです。

nbsp0606
質問者

お礼

わざわざ、私のために長いコードを書いて説明下さり、誠にありがとうございます。 こんなにして頂いたにも関わらず、 なんと、私はそれでもまだよく分からない状態なのです。苦笑 回答をまとめますと、 要するに、 「このメソッドの第2引数がObject型しか受け付けないから、致し方なくラッパークラスにせざるを得ません」 ということですよね。 つまり、オブジェクト型しか受け付けないメソッドがこの世には存在し、 そういう時には、プリミティブ型でデータを渡すことはできないので、 ラッパークラスで、そのプリミティブ型のデータをオブジェクト型に変換する必要がある、 ということなのでしょう。 nda23さんの回答にあったような意味合いですよね?、おそらく。 さて、具体例を書いて頂きましたが、 本件は、「もう、これでもかというほど、単純なコード」では、説明不可能な事例なのでしょうか。 もっとこう、なんと言いますか、 「すぱっ、うわっ、そっか! なるほどー。どひゃー。」的なコードを 実はこっそり期待しております。 もしよろしければ、また教えてください。^^

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.5

ラッパークラスは、既存のライブラリを流用するときに力を発揮します。 似たような機能を提供するクラスAとクラスBがあり、 提供する機能の違いとかの理由で、 この二つのクラスを使い分けしたい場合を考えます。 (例えば、特殊な画像フォーマットに対する読み書きを行いたい場合とかで、 全形式を網羅するライブラリが無いから、画像フォーマットごとに複数のライブラリを使い分ける必要がある、とか) ここでAとBは機能は似てますが、メソッド名などはてんでバラバラだったら… そうなると、Aを使うコードとBを使うコードは別個に書く必要が出てきます。 そういうとき、同じインターフェースを持つラッパークラスを作り、 それを通してAとBを使うようにすると、 利用するコード側は共通化できますので、無駄がなくなりシンプルにできます。

nbsp0606
質問者

お礼

うぬぉ? 今までの回答と、何か違うぞ。。。と思いながら、最後まで読み進めましたところ、 これは、自作ラッパークラスの意義、についての説明ということが分かりました。 誠に申し訳ありません。 そういうものもあるのですね、、、。 ここでは、ライブラリにある、 なんといいますか、プリミティブ型をオブジェクト型に変換する、 あの例のラッパークラスというやつについて、質問していたのでした。 しかし、頂いた回答は、それはそれで、いつかお役に立てたいと思います。 私のために回答下さり、ありがとうございました。

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.3

 こんにちは。 >こんな私に、端的な例として、何か挙げて下さると >大変有り難く思います。最も単純な例で結構です。 int n = 1; ArrayList list = new ArrayList(); 「ああ、ArrayListは、Object型しか入らない。どうしよう」 「えーい、包んじゃえー」 list.add(new Integer(n));

nbsp0606
質問者

お礼

私にもう少し力があれば、おそらく、言わんとすることは理解できるのだと思います。 ここで理解を阻む壁となっているのは、ArrayListですね。 ArrayListなしの、端的な別の例を挙げて頂けると有り難いです。 この例ですと、 オブジェクト型のInteger(n)を使う前提で、 それを入れるのに、ArrayListを使っているように思えてしまいました。 つまり、ArrayListの方に目が行ってしまったのです。 ちょっとバカなことをここで書きますが、 int n = 1; をオブジェクト型にしないで、 そのまま、int型で、配列にでも入れて使えば良いのでは? と思えてしまうのです。 たぶんこのように書くと、 いやいや、きみ、そうではなくて、 この int型のnをだね、オブジェクト型にして、使いたいのだよ。 だから、Integer(n)としているのではないか。 と言われてしまいそうなのですが、 そこがそもそも、違っていて、 私が知りたいのは、 「この int型のnをだね、オブジェクト型にして、使いたいのだよ。」 の理由なんです。 なぜ、オブジェクト型に変換(つまり、ラッパークラスの利用)をしたいのか、 ということです。 その具体例で良さそうなものが、もし、ありましたら教えて下さい。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

ラッパー(wrapper)、要は「包む」ことですね。 何を包んでいるのかというと、「面倒な手続き一切合財」であるものがほとんどです。 ある機能を実現するのに必要な手続きを全てラッパー関数内に押し込めて、使う人はその関数を呼ぶだけにしておけば非常に楽ですし、間違いも起こりにくいですよね? これについては、使う方よりも使わない方に壁がある事が多いです。 ないと面倒、ってところから来ているので。

nbsp0606
質問者

お礼

「ないと面倒、ってところから来ている」 無いとどのくらい面倒なのでしょうね? (有るとどのくらい楽なのでしょうね?) JAVA超初心者の私からすると、 何が便利なのか、さっぱり分からないのです。 こんな私に、端的な例として、何か挙げて下さると大変有り難く思います。 最も単純な例で結構です。 もし可能でしたら、また色々と教えて下さい。宜しくお願い致します。

  • chie65535
  • ベストアンサー率43% (8512/19350)
回答No.1

存在意義は「あると楽」というだけ。 言わば「ライブラリと同じ」です。 ライブラリを一切使わなくとも、ハナから全部自分で書けば、文字列を数値に変換したり、その逆も可能です。 それと同じで、ラッパークラスを一切使わなくとも、ハナから全部自分で書けば、ラッパークラスで出来る事は全部出来ます。 でも「ハナから全部自分で書くのは面倒」だし「誰かが同じようなモノをクラス化して用意してくれれば、みんなが使う」でしょう? で「みんなが使う」には「統一規格」になっていた方が便利だから「統一化して標準化」って事になりますよね? そして「統一化して標準化」した結果「今あるラッパークラス」が存在します。 乗り越えられない壁がある訳じゃないけど、人間ってのは「徒歩よりも自転車」「自転車よりもバイク」「バイクよりも自動車」「自動車よりもタクシー(自分で運転しない分、楽)」と「出来る限りラクをしたいイキモノ」なので「ラクできると言う事実が存在意義になり得る」のです。

nbsp0606
質問者

お礼

「こういうものが使えると楽だろう、だから作ったのです」 といった性質のものなのですね。 よく分かりました。 で、肝心の、 「具体的に、どう楽になったのか」 について、お聞きしたいのですが、もしお分かりでしたら教えて下さい。 つまり、 これがないと、どう不便なのか、 もっと言うと、 「これがないと、どういった面倒な作業を強いられるのか、 そして、 これがあることで、それがどう楽になるのか」 について、大変興味があります。 「ラッパークラスがあることで、 このラッパークラスを使うと、こういう作業をすることになります。」 という作業はある程度、目にしてきましたが、 「ラッパークラスがないと、 こういったことをしたいときに、こんな大変な作業を強いられます。」 といった、具体的コード例を示した形での記述は見たことがありません。 もちろん、こうした事は他のライブラリについても同様に言えることだと思うのですが、 ここでは特に、このラッパークラスについて、 私はその利便性(の具体的内容)を知りたく思い、今回、質問させて頂きました。 もし宜しければ、また色々と教えてください。

関連するQ&A

  • ラッパークラスって何ですか?

    PHPにおける、ラッパークラスの定義を教えてください。 検索すると、JAVAに関する説明しか出てこなかったので…。 親クラスってことでしょうか? 例えば、$_SESSION変数のラッパークラス って、どんな意味なのでしょうか? $_SESSIONに関する処理を自分で使いやすいように まとめたクラスのことでしょうか? 普通のクラスとは、何が違うのでしょうか?

    • ベストアンサー
    • PHP
  • データ保持クラスでラッパークラスとシリアライズ

    C#を使いDataContractSerializerでXML保存をしています。 基本のデータ型で例えば電話番号とかEmailアドレス、また作業時間やIDなんてのもあとで処理しやすいようにラッパークラスを作ると良いとアドバイスを受けました。 そこで検索をかけるとオブジェクト指向エクササイズなんていうものの中にズバリな説明があったのですが保存を考えるとどうもメリットが分かりません。 こういう基本型で細々とラッパークラスを作るとなると、保存処理が結構面倒くさくなる気がします。 私の処理の仕方がまずいだけかもしれませんが。 アドバイスを下さった方に聞いたのですが時間がなかったので詳しい説明もなく、大して変わらないと言われました。 私としては一つクラスが増えると[DataContract]が増える上に、要素が増えてネストされる分XMLも見づらくなるのですが、そこまで気にする方がおかしいのでしょうか? 仮に保存をrdbmsにしても処理がめんどうな気がします。 やってること(処理)が単純すぎて処理の記述が増えた分面倒なだけでしょうか? 確かに意味づけで便利かなーと思うこともありますが。 そのアドバイスを下さった方が次くるのが1月後なので、どうにもモヤモヤしてしまい質問させて貰いました。

  • 人間の存在意義、存在価値って何なんでしょう?

    人間の存在意義、存在価値って何なんでしょう? 自分の存在意義は他人が決める? 自分の存在価値は自分自身で作り出すことは出来ずに他人からの評価があってこその自分自身であるという。 要するに友達や親や知り合いがいない人は自分が死んでも誰も存在を認めている者がいないので社会から死んでる消えても何も世の中は変化しないということは存在価値はないというよりマイナスである。 死んでから知り合う数の方が多い。死んでから遺品整理とかの業者が部屋を片付けに来るわけでその遺品整理の業者や火葬場の手配など知り合いたくもない人たちと知り合うことになる。 でAppleの創業者のスティーブジョブズは社長で知り合いが多かったはずなのに死んでも何も社会は変化しなかった。 要するにスティーブジョブズの価値は給料を払えていたということだけに過ぎない価値だったわけだ。死んだ後も後継人の社長が社員たちに給料を支払い続けて次の製品をリリース出来たらスティーブジョブズが死んでも社会的混乱は起こらなかった。 要するに、その人の価値、存在意義は他者によって幾ら評価されても死んだら価値がなくなる。 その人の存在価値は生きている間の他者からの評価ってことになる。 スティーブジョブズですら死んだら存在価値は無くなった。 他人に幾ら評価されても存在意義は無くなるってことは、その人は生きていても存在価値はあったのか疑いたくなる。 でもスティーブジョブズがいなかったらiPhoneは誕生していなかったので存在意義はあったと思う。 人間の存在意義、存在価値って何なんでしょう?

  • 金融機関の存在意義について。

    質問です! 「金融機関の存在意義について経済学ではどのように説明をおこなっているか解説しなさい。」という問題にとても苦戦しています。どなたか分かる方がいたら、お力を貸して頂けませんか? よろしくお願いします。

  • 自己の存在意義について

    カテがわからないので、ここのカテで質問させていただきます。 自己の存在意義について、つまり、私が生まれた意味について私はかなり長いこと、考え続けてきましたが、分りません。 というよりは、知識が増えるにつけ、分らなくなったと言ってもいいかもしれませんが・・・。 自己の存在意義は、当人が死ぬ間際になって、(当人の人生の初めから終わりまでを振り返った時に)初めてみえてくるものでしょうか? それとも、死んでもなお、誰にも分らないものなのでしょうか?

  • ラッパーの学歴って知られてないですが・・・

    洋ラップを浅くですが昔から聴いているのですが、 シーンがとても大きくなってきてゲットーやスラム出身のラッパーがほとんどっていうわけでもなくなってきた気がします。 その中で大学に行ったりしてたラッパーとかもいていいような気がしますが、あまり聞きません。 興味本位の質問で深い意味は特にないのですが、高学歴(高卒以上として)なラッパーを挙げてほしいです。おねがいします。

  • 企業の存在意義

    すごくどうでもいいので、時間がある方・時間に余裕のある方返答ください。 今回の質問は会社の存在意義についてです。 どのようにして会社は存在しているのか、ということではなく、会社はなぜ存在するのか、ということです。深く考えず、そのままの意味で捉えていただきたいです。 ・・・国語力がなくてどう説明していいのかわかりません← そもそもどうして会社は存在しているのでしょうか? 正解はないと思うのですが、ぜひ皆様の意見をお聞かせ願いたいです。 注意してほしい点は、原因ではなく、理由ですかね?orz なんと説明していいのやら・・・ 洋服屋で例を挙げるなら 商品・サービスが売れて利益があがるから!・・・× 自分の好きなことでお店をやってみたかったから・・・◯ です! なんとなく理解していただけたでしょうか・・・orz それを普通の企業に置き換えて考えてみてください! カテゴリもこれで正しいのでしょうか・・・。 本当に下らない質問・わかりにくい質問ですが、時間に余裕のある方、お返事願います!

  • PHPのラッパー関数について

    御世話になります。 PHPのクラスを作るときに、以下のような、いわゆるラッパー関数というものをよく目にしますが、このようなものをわざわざ定義する意味がよく分かりません。 例えば、ある文字列の両脇からスペースを削除するのに public function Value($string){ return trim($string): } という関数を定義するのと、 trim($string) というPHPの組み込み関数を直接使うのには、どのような違いがあるのでしょうか? またほかの例としては public function allLowerCase($string){ return strtolower(trim($string)); } と strtolower(trim($string)) とはどうでしょうか。 このようなラッパー関数を定義するメリットといったものを、どなたかご説明頂けると有難いのですが。どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 「意味」と「意義」

    ある国語辞典で調べると 意義=(1)ことばなどによって現される内容、意味、(2)事柄などのもつ価値や重要さ 意味=(1)言語・表情・身振り・動作・記号・作品など、人間の感覚でとらえうる形で表現されたものに含まれる内容や意図。(2)ことばが指し示す概念。意義。……あと、「意味」のほうには長々と解説がありましたが、面倒くさいので記述しません。 どちらの解説にも、それぞれ 「意味」と「意義」という単語が出てきます。 質問なのですが、 質問(1)=どのように使い分けるのでしょうか? 質問(2)=使い分けることに「約束事」があるのですか? 質問(3)=例えば、「日本の歴史における明治維新の意味は何でしょうか?」と問われた場合と、「日本の歴史における明治維新の意義は何でしょうか?」 と問われた場合の答えは変わってきますか? 変わってくるとしたら、どのように変わりますか? 「日本の歴史における明治維新の意味は何でしょうか?」というところは、歴史に限らず、他の分野の例で回答していただいてもかまいません。

  • 死刑の存在意義

    死刑の存在意義は唯一、財政、これに尽きると思います。 もし十分な財源があるなら一生償い続けさせればいいんですよ。 懲役1000年でも1万年でもしたらいいんです。 刑務所が一杯になるし養いきれんから死刑にするだけです。 昔とある番組で懲役13日(だっけ?)とかいう話がありました。 凶悪犯を薬で眠らせて夢を見せ、夢の中で過酷な拷問を課します。 受刑者が13日を耐えきったと思って目を開けると、現実世界では5分しか経っていません。 つまり13日は受刑者にとっては、48672日、実に133年以上に及ぶというお話しです。 フィクションですが、こういった技術がもし実用化されれば、死刑はなくなるでしょう。 つまり死刑はキャパシティ的に仕方なくやっているものであって、 存在意義は財源だということです。 そこで質問です。みなさんは 死刑の存在意義について いかがお考えですか?

専門家に質問してみよう