質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

953閲覧

プロパティの更新と参照方法を教えてほしい

kkashi89sk

総合スコア12

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2021/05/25 15:11

実現したいこと
フィールド double x, y;
• コンストラクタは,x, y の座標を引数とし,対応するフィールドの値を初期化する.
• プロパティ X, Y を設定して x, y の更新/参照を可能とする.
• メソッド getCoord() は,引数無しで,座標を (xの値, yの値)形式の文字 列として返す.
• メソッド getDistance() は,引数に Point クラスのオブジェクトを渡し,2点間の距離を求めてdouble型で値を返す。
[しつもん]
このコードだとxとyの値を更新はできても前の値(初期値とか)を参照はできない?ので初期値などを参照する方法が知りたい。
getDistance() の引数がよくわかっていない。ある点Pとある点Qは両方初期値?その値が引数(4つ?)になるのか。それとも点Pを一つ指定して初期値をいれて、その値(x,y)を更新したものを点Qと置いてgetDistance() の引数に(ひとつ前のx,ひとつ前のy,今のx,今のy)とするのかを知りたい。

C#

1コード 2 3 4 5 6 7using System; 8using System.Collections.Generic; 9using System.Text; 10 namespace objectpurograming06 11 { 12class Point 13{ 14private double x; 15private double y; 16 public Point(double x,double y) 17 { this.x = x; this.y = y; 18} 19public double Getx 20{ 21set { this.x = value; } 22get { return x; } 23} public double Gety 24{ set { this.y = value; } 25 get { return y; } 26} 27 public double Changex(double x) 28{ 29this.x = x; 30return x; 31} 32 public double Changey(double y) 33{ 34 this.y = y; 35 return y; 36} 37 public string GetCoord() 38{ 39 return "(" +this.x + "," + this.y + ")"; 40} 41 public double getDistance(double X,double Y,double x, double y) 42{ 43double D =Math.Sqrt((X - x) * (X - x) + (Y - y) * (Y - y)); 44return (double)D; 45} 46} 47} 48 49 50 51 52 53 54using System; 55 namespace objectpurograming06 56 { 57 class Program 58{ 59 static void Main(string[] args) 60{ 61 Point point = new Point(10.0, 5.0); 62Console.WriteLine("点P(" + point.Getx + "," + point.Gety + ")"); 63 point.Getx = 3.0; 64 point.Gety = 2.0; 65 Console.WriteLine("点Q" + point.GetCoord()); 66 Console.WriteLine("PQ間の距離は:" + point.getDistance(point.Getx, point.Gety, point.Changex(10), point.Changey(5.0))); 67 point.Changex(7); 68 Console.WriteLine("P.Xは" + point.Changex(7)); 69 point.Changey(8); Console.WriteLine("Q.Yは" + point.Changey(8)); Console.WriteLine("現在の値は..."); 70point.Changey(5.0); 71 Console.WriteLine("点P" + point.GetCoord() ); 72 point.Changex(10.0); 73point.Changey(8); 74Console.WriteLine("点Q" + point.GetCoord() ); } } } 75 76 77 78 79 80 81 82 83 84 85

実行結果
点P(10,5)
点Q(3,2)
PQ間の距離は:7.615773105863909
P.Xは7
Q.Yは8
現在の値は...
点P(7,5)
点Q(10,8)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/05/25 22:25

学校の宿題とか研修の課題? であれば、先生、講師に聞こう。
guest

回答1

0

ベストアンサー

2つ点(Pointクラス)を表現するのに、1つのオブジェクト(変数point)を使いまわそうとしているところが根本的に間違っています。
Pointクラスのオブジェクトを2つ用意し、その2つのオブジェクトの距離を算出するのがGetDistanceというメソッドの処理になるはずです。

メソッド getDistance() は,引数に Point クラスのオブジェクトを渡し,

というのは上記の様に自分自身の座標と、引数で与えられるPointクラスのオブジェクトとの距離を求めろ、という意味です。

上記のことを理解してPointクラスからもう一度作り直しましょう。

投稿2021/05/25 15:46

hope_mucci

総合スコア4447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問