駆け出しエンジニアの気ままにブログ

このブログでは、駆け出しエンジニアの私が興味をもったトピックについて不定期に発信しています。

スポンサーサイト  

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

category: スポンサー広告

tb: --   cm: --

『EclipseでJavaの入出力を理解する』ための要点を忘れないようにまとめておく  

『EclipseでJavaの入出力を理解する』要点まとめ

programmingimage

前回に引き続き、開発環境としてEclipse(Indigo Service Release 2)を使ったJavaプログラムの書き方として、基本操作であるJavaの入出力制御について、備忘録、コピペ用としてまとめます。

対話システムを実現するためには必要不可欠な処理ですね。 やりたいことは、次のように「(コンソール画面で)ユーザーが入力した内容をコンピュータで受け取り、出力すること」です。 C言語でいうところの、"scanf()"、"prinft()"の処理にあたります。

 コンピュータ:あなたの名前を教えてください。
 <ユーザー入力>:○○
 コンピュータ:○○さん、こんにちは。

さっそく回答ですが、プログラムは以下の通りになります。

//SampleIO.java
package jp.javadrive;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class SampleIO {
   public static void main(String[] args) throws java.lang.Exception {
      BufferedReader in = new BufferedReader(
                          new InputStreamReader(System.in));
      System.out.println("コンピュータ:あなたの名前を教えてください。");
      System.out.print("<ユーザー入力>:");
      String name = in.readLine();
      in.close();
      System.out.println("コンピュータ:"+name +"さん、こんちには。");
   }
}


◆標準入出力(IO)関数

「java.io.BufferedReader」,「java.io.InputStreamReader」の2つのクラスをインポートします。

java.io.BufferedReaderのインスタンスを生成するためには、次のようにコーディングします。 java.lang.SystemクラスはSystemと省略できる点に注意してください。

java.io.BufferedReader in =
   new java.io.BufferedReader(
   new java.io.InputStreamReader(System.in));

java.io.InputStreamReaderクラスは、文字列データが流れている入力ストリームを使用するときに使い、この文字列データストリームをバッファリングする機能を追加したい場合に、java.io.BufferedReaderクラスを使います。 このように書くことで、キーボードからの入力を受け付けることができるようになります。 また、入力されるユーザーの名前を読み込むためには、readLineメソッドを使ってコーディングします。ここで、inはjava.io.BufferedReader型の変数だとします。

String line = in.readLine();
in.close();


◆ストリームについて

APIリファレンスによると、「標準エラー出力」ストリーム、「標準入力」ストリームのように、ストリームという用語が出てきています。 ストリームは「川の流れ、液体・気体などの一定の流れ」という意味で、入出力されるデータは「川の流れ」のように流れていくので、この用語が使われています。


◆書式付きの入出力について

同じプログラムを書式付きの入出力を使った別の方法でも実装できます。こちらの方が、C言語に近いですね。 入力データの読み込みについては標準入力ストリームとjava.util.Scannerクラスを使い、データの出力には、標準出力ストリームとjava.io.PrintStreamクラスのprintfメソッドを使います。

//SampleIO2.java
import java.util.Scanner;

public class SampleIO2 {
   public static void main(String[] args) throws java.lang.Exception {
      Scanner str = new Scanner(System.in);
      System.out.println("コンピュータ:あなたの名前を教えてください。");
      System.out.print("<ユーザー入力>:");
      String name = str.next();
      str.close();
      System.out.printf("コンピュータ:%sさん、こんにちは。", name);
   }
}


ということで、今回は以上です。Javaで活用できる入出力のioクラスの基本は抑えておきましょう。

次回は、入力データをファイルに格納したり、ファイルに格納されているデータを使って出力文章をなどの「ファイルへの入出力」を近いうちにまとめていきたいと思います。

今回も、最後まで付き合ってくれた方、本当にどうもありがとうございました。m(_ _)m

<参考>
@IT:EclipseでJavaの入出力を理解する

(2012年09月09日)

 


スポンサーサイト

category: Java

tb: 0   cm: 0

『EclipseでJavaプログラム入門』要点を忘れないようにまとめておく。   

『EclipseでJavaプログラム入門』の要点まとめ

PcProgramming

今回は、開発環境としてEclipse(Indigo Service Release 2)を使ったJavaプログラムの書き方を、備忘録、コピペ用としてまとめます。

EclipseはAndroidアプリの開発環境としても利用できます。また、AndroidアプリのプログラムはJavaプログラムが基本となっているので、Androidアプリの勉強にもなります。

とりあえずの目標は『簡単なことば遊びができる対話プログラム』を実装するレベルとします。

1)Javaプログラムの書き方

まずは基本的な構文です。Javaプログラムでは、まずパッケージ名を宣言し、クラス名、メソッド名の順に書いていきます。

//Sample Script Image
package パッケージ名;
public class クラス名{
 データ型 フィールド名;
 public static 戻り型 メソッド名(){処理}
}

Point 1) コメントアウトは "//コメント" または "/* コメント */" と書きます。
Point 2) クラス名 "public class Sample01" とファイル名(Sample01.java)は同一
Point 3) C言語でいうところの「関数」は、Javaでは「メソッド」と呼ばれます。



2)"Hello World" の書き方

具体的な mainメソッド部分は、以下の通り。
public static void main(String[] args){
 System.out.println("Hello World");
}

Stringの配列"args"をパラメータとして持ち、戻り値がない(void型)mainという名前のメソッドを使います。

Point 4) メソッドとは「クラスの振る舞い」をあらわすもので、次のように書きます。
戻り型 メソッド名(仮パラメータ型 仮パラメータ型){ 処理 }

Sample01.java //Hello World
package jp.javadrive;
public class Sample01 {
	public static void main(String[] args) {
		System.out.println("Hello World");
	}
}


3)繰り返し文、条件文の書き方

プログラムを書く上で必須となる、繰り返し文や条件文としてfor文とif文の書き方を紹介します。
また、サンプルプログラムとして、データ型、論理式の書き方についても例を挙げておきます。

Point 5) for文の書き方
for(int i=1; i<=10; i++){処理}

Point 6) if分の書き方
if(条件){処理}
else{処理}

Sample02.java //配列、for文、if文の練習
package jp.javadrive;
public class Sample02{
	public static void main(String[] args) {
		int[] list = new int[] {11,12,13,14,15};
		for (int i=0; i<=5; i++){
			if (i==5)System.out.println("finished");
			else{
				System.out.println(list[i]);
			}
		}
	}
}

Sample03.java //データ型、論理式など
package jp.javadrive;
public class Sample03 {
	public static void main(String[] args) {
		System.out.println(0);
		int i;
		i = 1;
		System.out.println(i);
		boolean b;
		b = true;
		System.out.println(b);
		
		System.out.println("\n");
		System.out.println(1+2);
		System.out.println(1+i*3);
		System.out.println(b && false);
		System.out.println(b || false);
		
	}

}


4)オブジェクト、クラス、インスタンスとは・・・

Point 7) オブジェクトは「実体」、クラスは「型」、インスタンスは「(クラスの)実体」をあらわします。

例えば、「人(という概念)」はクラスで、「アインシュタイン」や「ニュートン」はインスタンスとなります。
また、「たいやきの金型」はクラスで、「たいやき一つ一つ」がインスタンスとなります。

ここで、「オブジェクト」という言葉は設計段階で使い、「クラス」や「インスタンス」は実装段階で使うというように、少しレイヤーの違う言葉のようですので注意が必要です。細かくは、インスタンスオブジェクトと言った時には「ポインタ変数そのもの」を表し、インスタンスといった時には「ポインタ変数がさしている先の実体」を表すという違いがあるとか・・・。なかなかややこしいですね。

とりあえず、最初の段階では難しいことは考えずにオブジェクトという言葉は、オブジェクト=インスタンスと解釈することにしましょう。

Point 8) オブジェクト=インスタンスと思っておく。

自分で定義したクラスを使いたいときは、持たせたい特性("変数"や"メソッド")をあらかじめクラスファイルに定義することで、メインプログラムの中で、自作クラスのインスタンスを活用することができます。

例えば、座標軸上で点をあらわすポイントを例とした場合、クラス、インスタンス、オブジェクトは以下のように書くことができます。

まず、「点」を表すクラスを宣言します(Point.java)。
「点」はx座標とy座標の二つの座標を持つので、2つの整数を用意します(簡単のため、整数としました)。

public class Point{
 int p1;
 int p2;
}

メインプログラムの中で(クラスで定義した)ポイント型の変数を使う際、変数の宣言をします。ここで宣言した変数p(点p)をオブジェクトと呼びます。

Point p; 

上記で変数pを宣言しましたが、Javaでは宣言しただけでは「入れ物」は用意されないため、new演算子を使って入れ物をつくる必要があります。
この点pの入れ物(確保したメモリに格納されるもの)をインスタンスと呼びます。

p = new Point(); 

以下、サンプルとして、いくつかのクラスを作成し、プログラム中で使う書き方を紹介します。

Point.java //Pointのクラス
package jp.javadrive;
public class Point{
	int x;
	int y;
}

Line.java //Lineのクラス
package jp.javadrive;
public class Line{
	Point p0;
	Point p1;
}

Circle.java //Circleのクラス
package jp.javadrive;
public class Circle{
Point p0;
int r;
}

Triangle.java //Triangleのクラス
package jp.javadrive;
public class Triangle{
	Point p0;
	Point p1;
	Point p2;
}

SampleClass.java //Hello、Goodbyeをプリントするメソッドを持つクラス
package jp.javadrive;
public class SampleClass{
	public void sayHello(){
		System.out.println("Hello");
	}
	public void sayGoodbye(){
		System.out.println("Goodbye");
	}
}

Sample04.java //各種クラスからオブジェクト、インスタンスを作成
package jp.javadrive;
public class Sample04 {
	public static void main(String[] args) {
		SampleClass sample;
		sample = new SampleClass();
		sample.sayHello();

		Point o;
		Line line;
		Triangle triangle;
		Circle circle;
		o = new Point();
		line = new Line();
		triangle = new Triangle();
		circle = new Circle();
		o.x = 0;
		o.y = 0;
		Point point =new Point();
		point.x = 2;
		point.y = 3;
		line.p0 = point;
		point.x = 4;
		point.y = 9;
		line.p1 = point;
		triangle.p0 = new Point();
		triangle.p0.x = 3;
		triangle.p0.y = 9;
		triangle.p1 = new Point();
		triangle.p1.x = 4;
		triangle.p1.y = 3;
		triangle.p2 = new Point();
		triangle.p2.x = 4;
		triangle.p2.y = 6;
		circle.p0 = new Point();
		circle.p0.x = 10;
		circle.p0.y = 10;
		circle.r = 1;
		System.out.println(o.x);
		System.out.println(line.p0.x);
		System.out.println(line.p1.y);
		System.out.println(triangle.p2.x);
		System.out.println(circle.r);
	}
}

ということで、今回は以上です。

今回は、プログラムの基本となる「メソッド」「オブジェクト」「クラス」「インスタンス」などをサラッと確認してみました。
「ユーザ入力の処理」、「配列の扱い方」、「ファイルへの入出力」などなど、まだまだ基礎知識が必要ですので、また次回以降まとめていきます。

今回も、最後まで付き合ってくれた方、本当にどうもありがとうございました。m(_ _)m

<参考>
@IT:Eclipseではじめるプログラミング


(2012年08月17日)

 


category: Java

tb: 0   cm: 0

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。