Coordinate3D.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | package jp.ac.utsunomiya_u.is; public class Coordinate3D extends Coordinate { /** * Z座標 */ private double z = 0.0 ; /** * コンストラクタ(デフォルト) */ Coordinate3D() { super (); z = 0.0 ; } /** * コンストラクタ * * @param x X座標 * @param y Y座標 * @param z Z座標 */ Coordinate3D( double x, double y, double z) { super (x, y); this .z = z; } /** * コンストラクタ(コピー) * * @param coordinate3D 3次元座標インスタンス */ Coordinate3D(Coordinate3D coordinate3D) { super (coordinate3D.getX(), coordinate3D.getY()); this .z = coordinate3D.z; } /** * セッタ for Z座標 * * @param z Z座標 */ void setZ( double z) { this .z = z; } /** * セッタ for X-Y-Z座標 * * @param x X座標 * @param y Y座標 * @param z Z座標 */ void set( double x, double y, double z) { super .set(x, y); this .z = z; } /** * ゲッタ for Z座標 * * @return Z座標 */ double getZ() { return z; } } |
Coordinate3DTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | package jp.ac.utsunomiya_u.is; public class Coordinate3DTest { public static void main(String[] args) { Coordinate3D coordinate3D = new Coordinate3D( 1 , 2 , 3 ); System.out.println( "x = " + coordinate3D.getX() + " y = " + coordinate3D.getY() + " z = " + coordinate3D.getZ()); coordinate3D.set( 4 , 5 , 6 ); System.out.println( "x = " + coordinate3D.getX() + " y = " + coordinate3D.getY() + " z = " + coordinate3D.getZ()); coordinate3D.setX( 7 ); coordinate3D.setY( 8 ); coordinate3D.setZ( 9 ); System.out.println( "x = " + coordinate3D.getX() + " y = " + coordinate3D.getY() + " z = " + coordinate3D.getZ()); } } |
出力
x = 1.0 y = 2.0 z = 3.0 x = 4.0 y = 5.0 z = 6.0 x = 7.0 y = 8.0 z = 9.0
1 | class ChildClass extends FatherClass, MotherClass |
1 | class Coordinate3D extends public Coordinate |
1 | final class Coordinate3D extends Coordinate |
Vehicle.java
1 2 3 4 5 6 7 8 | package jp.ac.utsunomiya_u.is; public class Vehicle { void printEnergySource() { System.out.println( "I am powered by gasoline." ); } } |
ElectricVehicle.java
1 2 3 4 5 6 7 8 9 | package jp.ac.utsunomiya_u.is; public class ElectricVehicle extends Vehicle { @Override void printEnergySource() { System.out.println( "I am powered by electricity." ); } } |
表記 | 意味 |
---|---|
@Deprecated | 非推奨扱い |
@Override | オーバーライド |
@SuppressWarnings | 警告メッセージ抑制 |
PlugInHybridVehicle.java
1 2 3 4 5 6 7 8 9 | package jp.ac.utsunomiya_u.is; public class PlugInHybridVehicle extends ElectricVehicle { @Override void printEnergySource() { System.out.println( "I am powered by galoline and electricity." ); } } |
VehicleTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 | package jp.ac.utsunomiya_u.is; public class VehicleTest { public static void main(String[] args) { Vehicle vehicle = new Vehicle(); vehicle.printEnergySource(); ElectricVehicle electricVehicle = new ElectricVehicle(); electricVehicle.printEnergySource(); PlugInHybridVehicle plugInHybridVehicle = new PlugInHybridVehicle(); plugInHybridVehicle.printEnergySource(); } } |
出力
I am powered by gasoline. I am powered by electricity. I am powered by galoline and electricity.
Coordinate3DTest.javaへの追加部分
1 | System.out.println(coordinate3D.toString()); |
出力
jp.ac.utsunomiya_u.is.Coordinate3D@15db9742
Coordinate3D.javaへの追加部分
1 2 3 4 5 6 7 8 9 | /** * toStringのオーバーライド * * @return X-Y-Z座標の文字列 */ @Override public String toString() { return "(" + getX() + ", " + getY() + ", " + getZ() + ")" ; } |
出力
(7.0, 8.0, 9.0)
VehicleTest.javaへの追加部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package jp.ac.utsunomiya_u.is; public class VehicleTest { static class NaturalGasVehicle extends Vehicle { @Override void printEnergySource() { System.out.println( "I am powered by natural gas." ); } } public static void main(String[] args) { Vehicle vehicle = new Vehicle(); vehicle.printEnergySource(); ElectricVehicle electricVehicle = new ElectricVehicle(); electricVehicle.printEnergySource(); PlugInHybridVehicle plugInHybridVehicle = new PlugInHybridVehicle(); plugInHybridVehicle.printEnergySource(); NaturalGasVehicle naturalGasVehicle = new NaturalGasVehicle(); naturalGasVehicle.printEnergySource(); } } |
InnerClassTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | package jp.ac.utsunomiya_u.is; import jp.ac.utsunomiya_u.is.test.OuterClassTest; public class InnerClassTest { InnerClassTest() { new InnerClassPrivate(); new InnerClassPackagePrivate(); new InnerClassProtected(); new InnerClassPublic(); new InnerClassPrivateStatic(); new InnerClassPackagePrivateStatic(); new InnerClassProtectedStatic(); new InnerClassPublicStatic(); //new OuterClassTest.InnerClassPrivate(); // privateメンバーにクラス外部からアクセスできません //new OuterClassTest.InnerClassPackagePrivate(); // publicでないメンバーにパッケージ外部からアクセスできません //new OuterClassTest.InnerClassProtected(); // publicでないメンバーにパッケージ外部からアクセスできません //new OuterClassTest.InnerClassPublic(); // 非staticメンバーのインナークラスをインスタンス化するためには,一度アウタークラスのインスタンスを生成しなければなりません OuterClassTest outerClassTest = new OuterClassTest(); OuterClassTest.InnerClassPublic innerClassPublic = outerClassTest. new InnerClassPublic(); //new OuterClassTest.InnerClassPrivateStatic(); // privateメンバーにクラス外部からアクセスできません //new OuterClassTest.InnerClassPackagePrivateStatic(); // publicでないメンバーにパッケージ外部からアクセスできません //new OuterClassTest.InnerClassProtectedStatic(); // publicでないメンバーにパッケージ外部からアクセスできません new OuterClassTest.InnerClassPublicStatic(); } private class InnerClassPrivate { InnerClassPrivate() { System.out.println(getClass().getName()); } }; class InnerClassPackagePrivate { InnerClassPackagePrivate() { System.out.println(getClass().getName()); } }; protected class InnerClassProtected { InnerClassProtected() { System.out.println(getClass().getName()); } } public class InnerClassPublic { public InnerClassPublic() { System.out.println(getClass().getName()); } } private static class InnerClassPrivateStatic { InnerClassPrivateStatic() { System.out.println(getClass().getName()); } }; static class InnerClassPackagePrivateStatic { InnerClassPackagePrivateStatic() { System.out.println(getClass().getName()); } }; protected static class InnerClassProtectedStatic { InnerClassProtectedStatic() { System.out.println(getClass().getName()); } } public static class InnerClassPublicStatic { public InnerClassPublicStatic() { System.out.println(getClass().getName()); } } public static void main(String[] args) { System.out.println( "##### Inner Class Test #####" ); new InnerClassTest(); System.out.println( "##### Outer Class Test #####" ); new OuterClassTest(); System.out.println( "##### Static Class Test #####" ); //new InnerClassPrivate(); // staticメソッドから非staticメンバーにアクセスできません //new InnerClassPackagePrivate(); // staticメソッドから非staticメンバーにアクセスできません //new InnerClassProtected(); // staticメソッドから非staticメンバーにアクセスできません //new InnerClassPublic(); // staticメソッドから非staticメンバーにアクセスできません new InnerClassPrivateStatic(); new InnerClassPackagePrivateStatic(); new InnerClassProtectedStatic(); new InnerClassPublicStatic(); System.out.println( "##### Local Class Test #####" ); int i = 0 ; final int f = 0 ; class LocalClass { public LocalClass() { //i = 1; // ローカルクラス内からアウターメソッドのローカル変数にアクセスすることは出来ません System.out.println(f); System.out.println(getClass().getName()); } } new LocalClass(); } } |
OuterClassTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | package jp.ac.utsunomiya_u.is.test; public class OuterClassTest { private int i = 0 ; private static int s = 0 ; public OuterClassTest() { new InnerClassPrivate(); new InnerClassPackagePrivate(); new InnerClassProtected(); new InnerClassPublic(); new InnerClassPrivateStatic(); new InnerClassPackagePrivateStatic(); new InnerClassProtectedStatic(); new InnerClassPublicStatic(); } private class InnerClassPrivate { //private static int ss =0; // staticフィールドは利用できません InnerClassPrivate() { i = 1 ; s = 1 ; System.out.println(getClass().getName()); } }; class InnerClassPackagePrivate { InnerClassPackagePrivate() { i = 1 ; s = 1 ; System.out.println(getClass().getName()); } }; protected class InnerClassProtected { InnerClassProtected() { i = 1 ; s = 1 ; System.out.println(getClass().getName()); } } public class InnerClassPublic { public InnerClassPublic() { i = 1 ; s = 1 ; System.out.println(getClass().getName()); } } private static class InnerClassPrivateStatic { private static int ss = 0 ; InnerClassPrivateStatic() { //i = 1; // 非staticメンバークラスはアウタークラスの非staticフィールドにアクセスできません s = 1 ; System.out.println(getClass().getName()); } }; static class InnerClassPackagePrivateStatic { InnerClassPackagePrivateStatic() { //i = 1; // 非staticメンバークラスはアウタークラスの非staticフィールドにアクセスできません s = 1 ; System.out.println(getClass().getName()); } }; protected static class InnerClassProtectedStatic { InnerClassProtectedStatic() { //i = 1; // 非staticメンバークラスはアウタークラスの非staticフィールドにアクセスできません s = 1 ; System.out.println(getClass().getName()); } } public static class InnerClassPublicStatic { public InnerClassPublicStatic() { //i = 1; // 非staticメンバークラスはアウタークラスの非staticフィールドにアクセスできません s = 1 ; System.out.println(getClass().getName()); } } } |
staticメンバークラス | アウタークラスのインスタンスを生成しなくいてもインスタンスを生成出来ます.staticメンバーにアクセスできます. |
---|---|
非staticメンバークラス | アウタークラスをインスタンス化しないとインスタンスを生成出来ません.staticメンバーにアクセスできません. |
ローカルクラス | メソッド内で定義されます.ローカル変数がそうであるように,static修飾子とアクセス修飾子(private, protected, public)をつけることはできません. |
匿名クラス | 次節参照 |
VehicleTest.javaへの追加部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package jp.ac.utsunomiya_u.is; public class VehicleTest { static class NaturalGasVehicle extends Vehicle { @Override void printEnergySource() { System.out.println( "I am powered by natural gas." ); } } public static void main(String[] args) { Vehicle vehicle = new Vehicle(); vehicle.printEnergySource(); ElectricVehicle electricVehicle = new ElectricVehicle(); electricVehicle.printEnergySource(); PlugInHybridVehicle plugInHybridVehicle = new PlugInHybridVehicle(); plugInHybridVehicle.printEnergySource(); NaturalGasVehicle naturalGasVehicle = new NaturalGasVehicle(); naturalGasVehicle.printEnergySource(); Vehicle vehicle2 = new Vehicle() { @Override void printEnergySource() { System.out.println( "I am powered by water." ); } }; vehicle2.printEnergySource(); } } |