前言:
C#屬於面嚮對象語言,所謂面向對象就是把相關的數據和方法組織爲一個整體來看待,從更高的層次來進行系統建模,更貼近事物的自然運行模式。
正文:
1,C#語言的三層基本結構:
通常我們在打開VS工程的時候,會出現如下界面:
大括號代表不同的層級,其中namespace叫做命名空間,class叫做類,main叫做函數或者方法。你可以理解爲namespace爲一所大房子,class是裏面的冰箱、彩電、洗衣機或者小板凳;而方法就是各類傢俱所具有的功能,比如說冰箱能製冷,洗衣機可以洗衣服。通常意義上,這三層基本結構能適用於大部分工作場合。
2,新建一個基本類
如上圖所示,新建了一個橢圓類,類中聲明瞭屬性和方法。但目前方法裏面啥都沒有,所以需要我們補齊方法:
這裏需要指出的是,通常在我們工作中,要遵循以下規則:
1,屬性名小寫,方法名首字母大寫
2,儘量不要起無意義的名字,比如說abcd這種
3,時刻記得寫註釋
而要調用這個類,就需要返回我們主函數中,通常指的的是Main函數,新建這個類:
static void Main(string[] args)
{
Circle _myC = new Circle();
}
之後給_myC賦值,爲了方便操作,我們使用輸入函數:
最後調用方法:
//調用方法
_myC.Area();
_myC.Perimeter();
主函數全部截屏爲:
然後我們可以運行測試,代碼部分在習題1的答案中。
練習題:
1,定義一個Circle(棚圓)的類,其數據成員是榆圓外切矩形的左上角和右下角兩點的座標,定義計算面積和周長的成員方法,然後調用主程序驗證。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/// <summary>
/// 1.定義一個Circle(棚圓)的類,其數據成員是榆圓外切矩形的左上角和右下角兩點
/// 的座標,定義計算面積和周長的成員方法,然後調用主程序驗證。
/// </summary>
namespace testProject
{
class Program
{
static void Main(string[] args)
{
Circle _myC = new Circle();
//屬於屬性值
Console.WriteLine("左上角的x座標爲:");
_myC.leftUp[0] = float.Parse(Console.ReadLine());
Console.WriteLine("左上角的y座標爲:");
_myC.leftUp[1] = float.Parse(Console.ReadLine());
Console.WriteLine("右下角的x座標爲:");
_myC.rightDown[0] = float.Parse(Console.ReadLine());
Console.WriteLine("右下角的y座標爲:");
_myC.rightDown[1] = float.Parse(Console.ReadLine());
//調用方法
_myC.Area();
_myC.Perimeter();
Console.ReadLine();
}
}
//橢圓類
public class Circle
{
//左上角
public float[] leftUp = new float[2];
//右下角
public float[] rightDown = new float[2];
//計算面積方法
public void Area()
{
//橢圓面積公式:S=π(圓周率)×a×b,其中a、b分別是橢圓的長半軸,短半軸的長
float _a = rightDown[0] - leftUp[0];//x值相減
float _b = leftUp[1]- rightDown[1];//y值相減
float _area = (float)(_a * _b * Math.PI);
_area = Math.Abs(_area);
Console.WriteLine("面積爲" + _area);
}
//計算周長的方法
public void Perimeter()
{
//橢圓周長公式:L=2πb+4(a-b)
float _a = rightDown[0] - leftUp[0];//x值相減
float _b = leftUp[1] - rightDown[1];//y值相減
//如果是瘦高型的橢圓,即_a<_b,則需要交換_a、_b
if (_a < _b)
{
float _min = _a;//中間變量
_a = _b;
_b = _min;
}
float _perimeter = (float)(2 * Math.PI * _b + 4*(_a - _b));
Console.WriteLine("周長爲" + _perimeter);
}
}
}