教育サーバーのページ
オンラインテキスト目次
情報リテラシー演習
ソフトウエア入門演習
以下のプログラムをコンパイルして、実行せよ。
┏━━━━━━━━━ Point.java ━━━━━━
/* Point.java */ public class Point { /** 座標x, y */ int x, y; /** 座標を表示する*/ void print(){ System.out.println(x + "," + y); } /** 座標を設定する*/ void set(int ptx, int pty){ x = ptx; y = pty; } /** 指定の点との距離を求めるメソッド1*/ double distance(int ptx, int pty){ double d; int dx = ptx - x; // x座標の差 int dy = pty - y; // y座標の差 d = Math.sqrt(dx * dx + dy * dy); //距離を求める return d; } /** 指定の点との距離を求めるメソッド2*/ double distance(Point pt){ double d; int dx = pt.x - x; // x座標の差 int dy = pt.y - y; // y座標の差 d = Math.sqrt(dx * dx + dy * dy); //距離を求める return d; } public static void main(String argv[]) { Point pt = new Point(); pt.set(10, 20); // distance()メソッド1のテスト double dist =pt.distance(0,0); //原点からの距離を求める System.out.println("Dist (0,0) - (10,20):" + dist); } }
演習1のプログラムをコンストラクタを使って記述せよ。 記述したプログラムをコンパイルし、実行せよ。
演習2で定義したコンストラクタPoint(int x, int y)を 以下のset()メソッドを使って書き直せ。
void set(int ptx, int pty) { x = ptx; y = pty; }また、書き直したプログラムをコンパイルし、実行せよ
次に示すソースコードをコンパイルし、実行せよ。 実行時の出力結果を示せ。
┏━━━━━━━━━ Point3DOverloadMethods.java ━━━━━━
/* Point3D.java */ class Point3D { double x; double y; double z; Point3D(double x) { this(x, 0, 0); } Point3D(double x, double y) { this(x, y, 0); } Point3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } void move(double x) { this.x = x; } void move(double x, double y) { this.x = x; this.y = y; } void move(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } } class Point3DOverloadMethods { public static void main(String args[]) { Point3D p = new Point3D(1.1, 3.4, -2.8); p.move(5); System.out.println("p.x = " + p.x); System.out.println("p.y = " + p.y); System.out.println("p.z = " + p.z); p.move(6,6); System.out.println("p.x = " + p.x); System.out.println("p.y = " + p.y); System.out.println("p.z = " + p.z); p.move(7,7,7); System.out.println("p.x = " + p.x); System.out.println("p.y = " + p.y); System.out.println("p.z = " + p.z); } }
また、上記のPoint3DOverloadMethods.java を1つのクラス(Point3D)からなるプログラム Point3D.javaに書き直し、コンパイルせよ。
次に示すソースコードをコンパイルし、実行せよ。 実行時の出力結果を示せ。
┏━━━━━━━━━ Class1.java ━━━━━━
/* VariableHidingDemo.java */ class Class1 { int i = 1000; void f() { System.out.println(i); for (int i = 0; i < 5; i++) { System.out.println(i + " "); } System.out.println(" "); System.out.println(i); } } class VariableHidingDemo { public static void main(String args[]) { Class1 class1 = new Class1(); Class1.f(); } }
また、上記のVariableHidingDemo.javaから、 クラスClass1からなるプログラムClass1.javaと クラスVariableHidingDemoからなるプログラム VariableHidingDemo.javaに書き直し、それぞれ をコンパイルせよ。さらに、プログラム実行の ために、以下のコマンドを実行せよ。
java VariableHidingDemo ↓
次に示すソースコードをコンパイルし、実行せよ。 実行時の出力結果を示せ。
┏━━━━━━━━━ MainClass.java ━━━━━━
/* MainClass.java */ public class MainClass { public static void main(String args[]) { Calc calc1 = new Calc(100); Calc calc1 = new Calc(200); System.out.println("calc = " + calc1.calc() + "calc2 = " + calc2.calc()); } }
┏━━━━━━━━━ Calc.java ━━━━━━━━━
class Calc { static int num1 = 0; int num2 = 0; int num3 = 0; Calc(int num) { num2 = num; } int calc(){ int num3 = num1 + num2; num1 = num3; return num3; } }
上記の2つのクラスからなるプログラムを1つのクラス (MainClass)からなるプログラムMainClass.javaに書き直し、 実行せよ。
永井 保夫 nagai@rsch.tuis.ac.jp