C#基础系列第二篇
<div id="cnblogs_post_body">前言: 完全是我在学习过程中记录的笔记,只不过分享一下让很多刚开始学习.net编程的人能够很快的学会C#语言[*]使用面向对象
(1) 首先写一个类,来描述对象
(2)使用这个类实例化对象
(3)使用这个对象
[*]类
(1) 就是用来描述对象的模板
1)通过特征 字段和属性
2)行为,能力 方法
class Cup
{
//类的成员
//特征
public int Volume;
public int height;
public string mater;
//行为
public void PackAble()
{
Console.WriteLine("我可以装水");
}
}
实例化:
static void Main(string[] args)
{
Cup cup = new Cup();
cup.Volume = 200;
cup.height = 15;
cup.mater = "玻璃";
cup.PackAble();
Console.ReadKey();
}
[*]构造方法
(1) 为字段赋初值
语法: 类名(参数)
{
//成员及执行方法
}
public void DisPlay()
{
Console.WriteLine("我是一个{0}ml,高为{1}Cm,用{2}材料做的杯具", volume, height, mater);
}
public Cup(int volume, int height, string mater)
{
this.volume = volume;
this.height = height;
this.mater = mater;
}
//执行
static void Main(string[] args)
{
Cup cup = new Cup(300, 20, "玻璃");
cup.DisPlay();
Console.ReadKey();
}
(2)如果写类的时候没有提供构造方法,系统会自动的提供一个无参构造方法
(3)如果添加了自定义的构造方法,那么系统不会在添加无参构造方法属性
[*]属性
(1) 就是限制字段访问并提供字段访问方法的一个数据类型
(2)属性就是方法
(3)get表示获取值得那个方法
(4)set表示设置那个值得方法
class Cup
{
//字段
private int volume;
private int height;
private string mater;
//属性
public int Volume
{
get { return volume; }
set
{
if (value > 0)
{
volume = value;
}
else
{
Console.WriteLine("容量不能小于0");
}
}
}
}
//执行
static void Main(string[] args)
{
Cup cup = new Cup();
cup.Volume = 100;
Console.WriteLine(cup.Volume);
Console.ReadKey();
}
(5)自动属性
等价于一个字段+get,set属性(属性中无任何逻辑处理)
语法:public 返回类型 属性名{get;set;}
public string Name { get; set; }
执行:
Person p = new Person();
p.Name = "韩迎龙";
Console.WriteLine(p.Name);
Console.ReadKey();
(6)属性不具备存储数据的能力,存储数据是存储在字段里面的
(7)提供get表示可以得到字段的数据(只读属性)
(8)提供set表示可以为字段赋值(只写属性)
(9)提供get,set则表示可读可写属性继承
[*]电子计算器
(1) 首先建立一个Calculator类,在这个类里面实现了计算的方法
<div class="cnblogs_Highlighter"> class Calculator { private int num1; private int num2; private string oper; public int Num1 { get { return num1; } set { num1 = value; } } public int Num2 { get { return num2; } set { num2 = value; } } public string Oper { get { return oper; } set { oper = value; } } public int Calculating() { int res = 0; switch (oper) { case "+": res = num1 + num2; break; case "-": res = num1 - num2; break; case "*": res = num1 * num2; break; case "/": res = num1 / num2; break; } return res; } } (2)在Main方法中实现输出信息 static void Main(string[] args) { //找到对象 Calculator cal = new Calculator(); //输入数字与运算符 Console.Write("请输入第一个数字:"); cal.Num1 = GetInputNum(); Console.Write("请输入第一个数字:"); cal.Num2 = GetInputNum(); Console.Write("请输入运算符:"); cal.Oper = Console.ReadLine(); //使用对象的计算方法 int res = cal.Calculating(); //得到结果 Console.WriteLine("{0}{1}{2}={3}", cal.Num1, cal.Oper, cal.Num2, res); Console.ReadKey(); } public static int GetInputNum() { return GetInputNum(int.MinValue, int.MaxValue); } /// <summary> /// 完成int类型数据的输入,并返回,要求输入的数字在0到给定的数字之间 /// </summary> /// <param name="max">给定的数字的上限</param> /// <returns></returns> public static int GetInputNum(int max) { return GetInputNum(0, max); } /// <summary> /// 完成int数字的输入,要求在给定范围之间 /// </summary> /// <param name="min">给定范围的下线</param> /// <param name="max">给定范围的上线</param> /// <returns></returns> public static int GetInputNum(int min, int max) { string str = Console.ReadLine(); int num; while (true) { try { num = Convert.ToInt32(str); if (num > min && num < max) { break; } Console.Write("输入数字不再{0}到{1}之间,请重新输入", min, max); str = Console.ReadLine(); } catch { Console.Write("输入有误,请重新输入"); str = Console.ReadLine(); } } return num; }
页:
[1]