• ベストアンサー

Javaの構文について

よろしくお願いします。 以下のようなJavaのプログラムがあるのですが、 Object str = new Object[]{"test"}; 右辺のnew Object[]{"test"}は、何をやっているのでしょうか? どなたかご教授願います。

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

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

  • ベストアンサー
  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.3

Object[] work = new Object[1]; work[0] = "test"; Object str = work; を1行で行っています。

asamn777
質問者

お礼

なるほど!理解しました。 分かり易い説明ありがとうございます。

その他の回答 (2)

回答No.2

こんにちは。 新しい「Object」という「配列型」のインスタンスを生成して、 要素の一つに「test」を入れるという作業を同時にやってます。 こんなのでいいのかな・・・? (^^ゞ

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

要素が "test" だけであるような Object の配列を作っている. そのままですが, 与えられた部分だけではこれ以上答えられないです.

関連するQ&A

  • Javaのインスタンス化の構文のイメージができない

    こんばんは。 Javaプログラマを勉強しています。 サンプルプログラムで、オブジェクトの作成時、左辺と右辺でクラス名が異なる場合、 その一文ではどういうことが行われているのかイメージができません。 そこから原点に戻って、オブジェクトを作成する時の構文の一語一語の意味が分からなくなっています。 テキストによくある簡単な例だと、 ----------------- A a = new A(); ----------------- という構文があります。 この場合は左辺のAと右辺のAが同じであるため、このような構文が普通だと思い、ずっと理解した気になっていました。 ところが、 ----------------- class A {  … } class B extends A{  … } public class Main(){ public static void main(String[] args){  A a = new B();  … } ----------------- という構文が出てきた時、 A a = new B();  で、左辺のAと右辺のBは違っても大丈夫なの?何故違うの?どういう場合にこのような構文を使うの? などの疑問が出てきて、 そもそもインスタンス化の構文 A a = new A(); のそれぞれは何を意味しているのか判らなくなり、 どこからどうやって理解していけば良いのか途方にくれています。 aはインスタンス化したオブジェクトの変数名であることは理解しています。 左辺のAと、右辺のAとnew演算子をどう理解すれば良いのか悩んでいます。 自分も何が分からないかを上手く説明できないのですが、 よろしくお願いします。

  • JAVAと構文解析器(cabocha)の連結について

    現在、eclipseでJAVAをやっています。(環境はwindows XPです。) JAVAから構文解析器(cabocha)を用いて、文章を解析させたいと考えています。 [やりたいこと] 1.INPUTファイルを自動生成(ファイルA.txt)をする。 2.ファイルAの内容をコマンドプロンプトからCabochaを実行し、   解析を行う。 3.その結果をOUTPUTファイル(ファイルB.txt)に保存し、出力させる。 そこで、2番について教えていただきたいのですが、JAVAからコマンドプロンプロトを実行し、 cd c:\program files\cabocha\bin cabocha.exe -f1 input.txt --output=output.txt の2行をペーストし、cabochaを実行させたいのですが、どのようにすればよいのでしょうか。 自分がわかっているプログラム以下のところまでです。 [プログラム] public static void main(String[] args) throws IOException{ File file1 = new File("C:\\Program Files\\CaboCha\\bin\\input.txt"); try{ String str=null; InputStreamReader reader=new InputStreamReader(System.in); BufferedReader buffreader =new BufferedReader(reader); System.out.println("文字を入力してください。"); str = buffreader.readLine(); PrintWriter pr =new PrintWriter(new BufferedWriter(new FileWriter("C:\\Program Files\\CaboCha\\bin\\input.txt"))); pr.write(str); System.out.println(str+"が書き込まれました。"); pr.close(); Runtime rt = Runtime.getRuntime(); Process pro = rt.exec("C:\\WINDOWS\\system32\\cmd.exe"); } 誰かわかる方、ご教授お願いいたします。

  • 基本的な構文について

    いつも参考にさせて頂いています。 基本的なことなのですが、宜しくお願いします。 以下のBeanクラスがあるとします。 -------bean class public class Bean { private String str; public String getStr() { return str; } public String setStr(String str) { this.str = str; } } --------------- プロパティstrを取得してあるメソッドに引数として渡す場合、1と2ではどちらが適切でしょうか? 1. public class Test { Bean bean = new Bean(); String testStr = bean.getStr();   methodAAA( testStr ); } 2. public class Test { Bean bean = new Bean(); methodAAA( bean.getStr() ); } 1のほうが新しいオブジェクトを作成してしまうのでコストがかかってしまう気がするのですがいかがでしょうか。 methodAAA( bean.getStr(). … )と長くなる場合は一度違うオブジェクトに格納したほうがいいとか… 双方ともにメリットデメリットあるとは思いますが、噛み砕いて説明して頂けると助かります。

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

    キーボードから入力をして、その後str[0][0]とstr[1][0]の文字を繋げたいのですがエラーとなってしまいます。どう変えたらよいでしょうか。 以下がプログラムです。 import java.io.*; import java.lang.*; import java.net.*; import java.awt.*; class gugu3 { public static void main(String[] args) throws IOException { int KEYWORDMAX=10; int CNTMAX=100; String [][]str = new String[KEYWORDMAX][CNTMAX]; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line=null; for (int i=0;i<KEYWORDMAX;i++){ System.out.println("第"+(i+1)+"番目のキーワードを設定しますか?(y/n)"); line=br.readLine(); if(line.equals("n")) break; for (int s=0;s<CNTMAX;s++){ System.out.println("キーワードを入力してください(終了=0)"); line=br.readLine(); if(line.equals("0"))break; str[s][i]=line; } } String keyword = new String(str[0][0]" "str[1][0]); System.out.println("キーワードは "+keyword); } } 以下はエラー表示です。 gugu3.java:24: ')' がありません。 String keyword = new String(str[0][0]" "str[1][0]); ^ gugu3.java:24: 文ではありません。 String keyword = new String(str[0][0]" "str[1][0]); ^ gugu3.java:24: ';' がありません。 String keyword = new String(str[0][0]" "str[1][0]); ^ エラー 3 個

    • ベストアンサー
    • Java
  • java練習

    import java.util.Scanner; class test { public static void main (String[ ] args) throws IOException { System.out.println("文章を入力してください。"); BufferedReader input = new BufferedReader (new InputStreamReader (System.in)); String str = input.readLine( ); if (str == A) { str ="10"; } else if (str == 64) { str ="100"; } else if (str == 3E8) { str ="1000"; } else if (str == FF) { str ="255"; } else if (str == 100) { str ="256"; } System.out.println(" str + "); } } 今プログラミングの練習で文字や数字を判別するプログラムを作っています。 とりあえず16進数を入力したら10進数に変換されるプログラムを書いてたんですけどコンパイルしたらどうしてもエラーが出てきてしまいます。 調べてもよくわかりません、助けてください。

  • javaについて

    以下のようにキーボードから入力していくプログラムを試行しているのですが、エラーが出てくるので行き詰まっています。 理想的にはキーボードに”あいう”エンター”えおか”エンターと打ち込んだら str[0]=あいう str[1]=えおか と表示させていきたいのですが、よろしくお願いします。 import java.io.*; import java.lang.*; import java.net.*; import java.awt.*; class gugu2 { public static void main(String[] args) throws IOException { int i=0; while(i<2){ System.out.println("キーワード入力"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String input = br.readLine(); char str[] = input.toCharArray(); System.out.println("キーワードは" + str[]); i=i+1; } for(i=0;i<2;i++){ System.out.println(str[]); } } } これがエラー表示です。 gugu2.java:17: '.class' がありません。 System.out.println("キーワードは" + str[]); ^ gugu2.java:21: '.class' がありません。 System.out.println(str[]); ^ エラー 2 個

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

    このように出力されるプログラムを考えています ↓ 受験者人数を入力してください 3 3人分の点数を入力してください 50 80 20 1人目の点数は50です 2人目の点数は80です 3人目の点数は20です 最高点は80です っという感じのプログラムを考えています。 そしていまここまでプログラムを書いたのはいいのですが 感じんの最高点が表示されません・・・ import java.io.*; class test{ public static void main(String[] args) throws IOException{ System.out.println("テストの受験者数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str =br.readLine(); int num = Integer.parseInt(str); int test[] = new int[num]; int max=0; System.out.println(test.length +"人の点数を入力してください"); for(int i=0; i<num; i++){ String str1 = br.readLine(); test[i] = Integer.parseInt(str1); } for(int i=0; j<num; i++){ System.out.println((i+1)+"番目の人の点数は"+ test[i]+"です。"); if(test[i]>max){ max=test[i]; } } System.out.println("最高点は" +max+ "です。"); } } どこをどのように直せば最高点が表示されるようになるでしょうか? ご指摘おねがいします。

  • java プログラミングについて

    独学でjavaに挑戦中ですが、書店で購入した本のソースプログラムを少し変えたいのですが、ご教授をお願いします。数当てゲームのプログラムで、一つの設問を正解すると終了するゲームですが、複数の設問を設定したいのです、質問がうまく伝わるか不安ですがよろしくお願いします、プログラムを少しだけ書いておきます。 import java.io.*; class Mojiretuate { public static void main(String[] args) throws IOException { String str = "こんにちは";  /*質問箇所*/ String str2; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("文字列当てゲームです。"); System.out.println("答えは何かのあいさつです。"); for(;;){ System.out.println("\n入力:"); str2 = br.readLine(); System.out.println("入力文字列の長さ:" + str2.length()); if(str.equals(str2)){ System.out.println("正解です!"); break; } 

    • ベストアンサー
    • Java
  • Javaを勉強しています。

    現在、Javaの勉強中なので初歩的な質問ですみません。 #色々な本やググってみたのですが、未だ理解できないでいます。 Javaでは、たとえば(1)のように左辺(List)の型と右辺(ArrayList)の型が 違う場合でも問題なく使用できるようです。 (1)と(2)で何の違いがあるのか理解できておりません。 何が違うのでしょうか。 (1)List<Integer> i = new ArrayList<Integer>(); (2)ArrayList<Integer> i = new ArrayList<Integer>(); その類件としては以下があります。。 (3)Map y = new HashMap(); (4)HashMap y = new HashMap(); ご教授いただけますと幸いです。 宜しくお願いいたします。

  • JAVAの文法について教えてください。

    JAVAを学習しはじめたばかりの初心者です。 下記のプログラムに関してわからないので教えてください。 下記はtest.gif画像を表示するプログラムなのですが、 イメージを表示するために import java.awt.Graphicsをインポートして、 Image im でオブジェクトを宣言するのはわかるのですが、 通常はこの後に im = new Image() のようにインスタンス化する必要があると思うのですが、 このプログラムにはありません。 なぜ不要なのでしょうか? ********************** import java.applet.Applet; import java.awt.Graphics; import java.awt.Image; public class MyImage extends Applet{ Image im; public void init(){ im = getImage( getDocumentBase(), "test/test.gif" ); } public void paint(Graphics g){ g.drawImage( im ,10,10, this); } }

    • ベストアンサー
    • Java