fork download
  1. /*
  2.  * 問題:FunctionSet02クラスを継承して,関数f(x, z,w) = ax2 + bz2 + cw2を
  3.  * メソッドとして実装したFunctionSet04クラスを作成せよ
  4.  * また,f(x, z,w) = ax2 + bz2 + cw2 の実装は,メソッドのオーバーロードにあたるかオーバーライドにあたるかを
  5.  * コメント「//...」として付記せよ
  6.  * さらに,上で作成したメソッドを実行するためのメインメソッドをFunctionMain08クラスに作成し実行せよ.
  7.  * ただし,引数としてx = 2.0, z = 4.0,w = 1.0 を代入し,a = 1.0, b = 2.0, c = 3.0としたインスタンスメソッドと
  8.  * a = 3.0, b = 5.0, c = 7.0 としたインスタンスメソッドの2 つを実行するようにせよ.
  9.  */
  10.  
  11. class FunctionSet02 {
  12. double a;
  13. double b;
  14. //コンストラクタ
  15. FunctionSet02() {
  16. this.a = 1.0;
  17. this.b = 0.0;
  18. }
  19. //コンストラクタのオーバーロード
  20. FunctionSet02(double a, double b) {
  21. this.a = a;
  22. this.b = b;
  23. }
  24. //メソッド
  25. double f(double x) {
  26. return a * x + b;
  27. }
  28. }
  29.  
  30. class FunctionSet04 extends FunctionSet02 {
  31. double c;
  32. FunctionSet04(double a, double b, double c) {
  33. this.a = a;
  34. this.b = b;
  35. this.c = c;
  36. }
  37. // メソッドのオーバーロード
  38. double f(double x, double z, double w) {
  39. return a * Math.pow(x, 2) + b * Math.pow(z, 2) + c * Math.pow(w, 2);
  40. }
  41. }
  42.  
  43. class FunctionMain08 {
  44. public static void main(String[] args) {
  45. FunctionSet04 fs04_1 = new FunctionSet04(1.0, 2.0, 3.0);
  46. double f1 = fs04_1.f(2.0, 4.0, 1.0);
  47. FunctionSet04 fs04_2 = new FunctionSet04(3.0, 5.0, 7.0);
  48. double f2 = fs04_2.f(2.0, 4.0, 1.0);
  49. System.out.printf("f1 = %f, f2 = %f", f1, f2);
  50. }
  51. }
Success #stdin #stdout 0.07s 215488KB
stdin
Standard input is empty
stdout
f1 = 39.000000, f2 = 99.000000