※ ChatGPTを利用し、要約された質問です(原文:C シャープ クラスの使われたコードについて)
C#クラスの使われたコードについて
このQ&Aのポイント
C#初心者がクラスについて勉強しています。教科書のサンプルコードから要点を抽出し、クラスの使われ方を説明します。
CarpetCalculatorクラスの以下のメソッドが使われています:
- PricePerSqYard: 物件の価格を取得または設定するプロパティ
- CarpetCalculator(double price): 引数を指定してインスタンスを生成するコンストラクタ
- DetermineTotalCost(): 総コストを計算するメソッド
- SetNoOfSqYards(double length, double width): 長さと幅から面積を計算し、物件の面積を設定するメソッド
- ToString(): 結果を文字列に変換するメソッド
CarpetCalculatorAppクラスの以下のメソッドが使われています:
- Main(): ユーザーから長さと幅を入力し、CarpetCalculatorのインスタンスを生成して結果を表示するメソッド
C#初心者です。今クラスについて勉強しています。
教科書のサンプルコードを読み解いているのですが、どうも読み方が合ってるのか分かりません。
以下教科書のサンプルコードです。文字数の関係で全文載せれなかったので、必要な部分だけ載せています。lengthとwidthを求めるメソッドは存在しているのですが、省いています。
namespace Carpet
{
public class CarpetCalculator
{
private double pricePerSqYard;
private double noOfSqYards;
// Property of the pricePerSqYard data field
public double PricePerSqYard
{
get
{
return pricePerSqYard;
}
set
{
pricePerSqYard = value;
}
}
// Default constructor
public CarpetCalculator( )
{
//empty body
}
// One argument constructor
public CarpetCalculator(double price)
{
pricePerSqYard = price;
}
// Two argument constructor
public CarpetCalculator(double amountNeeded,
double price)
{
noOfSqYards = amountNeeded;
pricePerSqYard = price;
}
public double DetermineTotalCost( )
{
return (pricePerSqYard * noOfSqYards);
}
// One of the overloaded mutator methods
public void SetNoOfSqYards(double length,
double width)
{
const int SQ_FT_PER_SQ_YARD = 9;
noOfSqYards = length * width
/ SQ_FT_PER_SQ_YARD;
}
// One of the overloaded mutator methods
public void SetNoOfSqYards
(double squareYards)
{
noOfSqYards = squareYards;
}
// Accessor method
public double GetNoOfSqYards( )
{
return noOfSqYards;
}
public override string ToString( )
{
return "Price Per Square Yard: " +
pricePerSqYard.ToString("C") +
"\nTotal Square Yards: " +
noOfSqYards.ToString("F1") +
"\nTotal Price: " +
DetermineTotalCost().ToString("C");
}
}
}
public class CarpetCalculatorApp
{
public static void Main( )
{
CarpetCalculator berber =
new CarpetCalculator(17.95);
double roomWidth;
double roomLength;
// Call GetDimension( ) to get the length
roomLength = GetDimension("Length");
// Call GetDimension( ) again to get the width
roomWidth = GetDimension("Width");
berber.SetNoOfSqYards
(roomLength, roomWidth);
berber.PricePerSqYard = 25.99;
Console.Clear( );
Console.Write(berber);
Console.ReadLine();
}
このコード、public class CarpetCalculatorですが、実際には
public double PricePerSqYard
{
get
{
return pricePerSqYard;
}
set
{
pricePerSqYard = value;
}
}
と
public CarpetCalculator(double price)
{
pricePerSqYard = price;
}
と
public double DetermineTotalCost( )
{
return (pricePerSqYard * noOfSqYards);
}
と
public void SetNoOfSqYards(double length,
double width)
{
const int SQ_FT_PER_SQ_YARD = 9;
noOfSqYards = length * width
/ SQ_FT_PER_SQ_YARD;
}
と
public override string ToString( )
{
return "Price Per Square Yard: " +
pricePerSqYard.ToString("C") +
"\nTotal Square Yards: " +
noOfSqYards.ToString("F1") +
"\nTotal Price: " +
DetermineTotalCost().ToString("C");
}
の5つしか使われていないように思えるのですが・・・合ってますでしょうか?
それとも全てのクラスが使われてるのでしょうか?その場合、どういう順番で使われているのか教えてください。
お礼
大変遅くなりました。有難うございました!