• ベストアンサー

Stringとは一体何だ?

Stringは型なのでしょうか?それともクラスなのでしょうか? Stringは参照型の型で、クラスを表す、つまり文字列を表す参照型の型であり文字列を表すクラスでしょうか?説明が悪くてごめんなさい。Java歴二週間です。

  • Java
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

Javaの慣例として,クラス名は英大文字で始めます。 String は英大文字で始まっていますので,クラスです。 ........ で,回答は終わりなのですが,まぜっかえすような追記を。 クラスというのはそもそも,型なんですよ。 国語辞典における「型」の説明は,「クラス」の説明としてそのまま使えます。 -------- 3 (型)ある物のかたちを作り出すためのもの。鋳型、型紙などの類。 6 (型)事物を類別するとき、その個々に共通した特徴を表している形式、形態。 http://dictionary.goo.ne.jp/leaf/jn2/41603/m0u/%E5%9E%8B/ -------- ただ今回,質問者は > Stringは型なのでしょうか?それともクラスなのでしょうか? と,両者を相反するものとして立てています。 であるなら,質問者のいう「型」とは, 次の図における大分類・中分類・小分類なども含めた広義の(国語辞典的な)「型」ではなく, http://toronto12.seesaa.net/article/138035545.html 【基本データ型(プリミティブ型)】のことを指すのが妥当かな,と思いました。 ちなみに,元の質問文には次のような文章が登場するのですが。 > Stringは....文字列を表す参照型の型であり文字列を表すクラスでしょうか? 前述のとおり「型」という言葉を広義に捉えるのなら,私はこの文章は別に間違っていないと思います。しかし狭義に【基本データ型】のことを指しているのなら,明らかに間違っています。

Pro-Good
質問者

お礼

お礼遅くなってごめんなさい。とても参考になりました。これからはだれかに尋ねる前にちゃんと辞書引いてみます。有難う御座いました。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4843/10252)
回答No.2

クラスです。 Javaのプリミティブ型は、boolean, byte, char, short, int, long, float, double だけです。 Stringは文字列を保持する/表すために使われるクラスです。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

Javaの世界では全てのものはオブジェクトというもので表現されます クラスというのはオブジェクトの設計図であり、 インスタンスはクラスを元に作られた活性中の状態にあるオブジェクトのことです java.lang.Stringは いわゆる「文字列」を表すクラスです メソッドというのはこのオブジェクトにはこういう機能がある という方針で作られるものです 例えば「車」というオブジェクトには「走る」という機能があるので メソッド「走る」を持たせるとか Stringの各メソッドもそういう方針で設計されています

関連するQ&A

  • Stringクラスの変数の格納アドレスを知りたい

    いつもお世話になります。 Javaの文字列クラスのStringは参照型ですが、この変数の値が格納されたアドレスを知るためにはどうすればよいのでしょうか。eclipse上で、文字列の変数に対してtoString()を試してみたところ、格納されている文字列が出力されました。 ※自作したクラス、たとえばtest.MyClassだとすれば、toString()を用いれば「test.MyClass@01234」というような表記で出力されますが、このような情報を取得するにはどうすればよいでしょうか。 宜しくお願いします。

    • ベストアンサー
    • Java
  • Java Stringに関して

       お世話になります。  SJC-Pの学習をしているのですが、Stringに関して、とある教科書に  以下のように記述されていましたが意味がわかりません。  わかりやすく教えていただけたらと思います。  教科書の文章(以下)   同じリテラル文字列に再び出会った場合、コンパイラは既にプール内  に格納されている文字列を使います。(3つ以上の参照変数が同じ  文字列を参照する可能性があるため、この処理はスレッドセーフ  ではない。)  上記文章の( ) で囲まれた部分の意味がまったくわかりません。  よろしくお願いします。

  • char型とstring型について

    char型とstring型について質問があります。 言語はC++です。 以下の関数があったとします。 void test(string a, string b string c){ 処理 } この関数を下記のように利用した場合について質問があります。 a.引数に直接文字列を挿入したケース test("aaa","bbb","ccc") b.変数に文字列を設定し、変数を引数にしたケース string a="aaa" string b="bbb" string c="ccc" test(a,b,c) (1)はコンパイルエラーになり、(2)は成功しました。 同じ様に見えるのですが、何が違うのでしょうか? また、関数の引数の型をchar*にした場合、(1)(2)のケースでコンパイルが通りました。char*型だと何が違うのでしょうか?

  • String str = (String)url

    classファイルでのアプレットで、自分のパスを編集しようと思っています。 自分のパスをgetCodeBase()で得て、文字列として認識させたいのだけど それができていません。 String str; str = getCodeBase().toString; コンパイルエラー シンボル: 変数 toString 位置 : java.net.URL の クラス strBuf = getCodeBase().toString; getCodeBase()はStringでなく、URL型を返すみたいです。 これを文字列のように編集したいからSrting型にしたいんだけど どうすればいいんですか?

    • ベストアンサー
    • Java
  • string型とsbyte*型の変換

    現在、C++で作成したクラスを、 C#から呼び出し実行しようとしております。 C++側での引数のデータ型は、「char *」 、 C#側での引数は、「sbyte*」となっています。 このクラスに対し、C#側から文字列をC++側に渡したい場合、 string型からsbyte*型へ変換しなければならないと 考えているのですが、その方法がわかりません。 そもそもの考え方が正しいのかどうかもわからない状態ですので、 質問そのものがとんちんかんなことを聞いているのかも知れませんが、 どうぞよろしくお願いいたします。

  • stringオブジェクト

    あるテキストの問題に 「STRINGオブジェクトはいくつ作成されますか? String a,b,c; a="1234"; b=a; c=a+b; 」 というのがあったんですが、答えは2個でaとb。 cはストリング文字列だから、という答えでした・・・ えーーー?!? とびっくりしてしまいました。 なぜなら、"1234"というのも文字列だと認識していたからです。 StringオブジェクトとString文字列の境目は何ですか?

    • ベストアンサー
    • Java
  • VC String型のエンディアン変換

    お世話になります String型の文字列のそれぞれの文字(一文字ずつ)の エンディアンを変更したいのですが、簡単な方法はないでしょうか? 今考えている方法は Stringから一文字ずつcharに入れ込んで このcharをシフトとマスクで入れ替える方法なのですが ((val<<8) & 0xff00) | ((val>>8) & 0x00ff) エンディアン変換の前後でString⇒charとchar⇒Stringを行うので、 少し煩雑になるのが気になっております。 型変換無しでエンディアン変換できないでしょうか

  • STLのto_stringにlong double

    こんばんは。 STLにto_string関数を見つけました。 変数の型を見るとlong doubleもサポートしているようなので値を入れてみたところfloat値を文字列に変換したものしか得られませんでした。 どのようにすればlong doubleを文字列として取得できるのでしょうか? 環境はVisualStudio2013です。

  • Stringクラスは他のクラスとどう違う?

    Objectクラスを抽象クラスとするサブクラスに Stringというクラスがあります。 ストリングオブジェクトの宣言は下記のようにします。 String[] url = new String[2]; ストリングクラスは以下のように宣言時に初期化が可能です。 String[] url = {"honyahonya.com","0"}; また、以下のような指定も出来ます。 this.method( new String[]{"honyahonya.com","0"} ); そこで質問ですが Stringとはなぜこのような扱い方ができるのですか? 他のクラスとは、例外的に扱いが違うだけなのですか? 初期化で指定した文字列はどのように解釈されて、どういう 扱いがされているのでしょうか? 普段はなんとも思わず使っていますが なんとなく気になりませんか・・・。

    • ベストアンサー
    • Java
  • stringについて

    確認したいのですが、ある関数の引数はconst string& strでやる場合 文字列リテラルは、ヒープが確保してそれをポインタであるstringに渡される。だからコピーされる手間が減るとういことでよろしいのでしょうか? 環境はvisual C++ 2005です。