主要知识点概括
主函数代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Csharp封装
{
class Child
{
//快捷键Ctrl +R+E 快速实现封装
string _name;
public string Name
{
get { return _name; } //只读访问器
set { _name = value; }//写访问器
}
int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
int _height;
public int Height
{
get { return _height; }
set { _height = value; }
}
string _sex;
public string Sex
{
get { return _sex; }
set {
if(value=="男"||value=="女") //对属性访问的约束条件
_sex = value;
}
}
public void play() //方法的声明
{ // 方法的定义
Console.WriteLine("I am play football!");
}
public void EatSuger(string suger) //有参数的方法,这里suger为形参
{
if (suger == "榴莲糖")
{
Console.WriteLine("我最讨厌吃这种糖了");
}
else
{
Console.WriteLine("我喜欢这个糖");
}
}
public void EatSuger(int count) //方法的重载(函数名可以相同,但是参数的类型不能相同)
{
if (count > 3)
Console.WriteLine("糖吃多了对牙齿不好");
else
Console.WriteLine("吃吧,吃吧");
}
public void EatSuger(int count,string suger) //方法的重载
{
if (count > 2 && suger == "牛奶糖")
{
Console.WriteLine("这种糖不能多吃了");
return; //结束方法的调用,不执行后面的语句,提高程序的效率
}
else if (count > 3)
Console.WriteLine("不能再吃了");
}
public int Add(int a,int b)
{
int sum = a + b;
return sum; //在方法中是用return 的作用,这个方法的作用是进行求和
//但是我们并没有直接在方法里输出求和的值,因为我们希望
//我们的方法只去完成一些特定的功能,如果加入输出结果反而
//会使我们的方法受到限制
}
public Child() /*1.构造方法通常声明为pulic
2.构造方法没有返回值
3.构造方法名一般和类名相同
(PS:和C++相同)
*/
{
Name = "周星星";
}
public Child(string name, string Sex, int age)
{
Name = name;
this.Sex = Sex; //this指向当前对象,在参数名和属性名字重名时有效解决,通常这个指针是隐藏的
Age = age;
}
}
}
Child 类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Csharp封装
{
class Program
{
static void Main(string[] args)
{
Child xiaoming = new Child();//声明和实例化对象
xiaoming.Name = "小明";
xiaoming.Age = 8;
xiaoming.Sex = "男";
xiaoming.Height = 120;
Console.WriteLine("我叫"+xiaoming.Name+",我今年"+xiaoming.Age+"岁。");
xiaoming.play();
xiaoming.EatSuger("榴莲糖"); //方法的调用,“榴莲糖为实参”将这个实际参数传递给形参suger
xiaoming.EatSuger(3, "牛奶糖");//方法的重载
int sum;
sum=xiaoming.Add(3, 7); //返回值的接收
Console.WriteLine("两个数的和是:" + sum);
Child child = new Child();/*调用构造方法,构造方法的作用:为属性赋值。
如果没有定义构造方法,则会提供一个默认的无参构造方法。
如果显示了构造方法,则没有默认构造方法。
构造方法的调用只能用new 方法名()的方式调用
*/
Console.WriteLine("我的名字是:" + child.Name); //构造方法中已经将name的属性初始化
Child child1 = new Child("王尼玛", "男", 11);
Console.WriteLine("我的名字是" + child1.Name + "我是" + child1.Sex + "孩儿" + "我今年" + child1.Age + "岁");//有参构造方法的调用
Child child3 = new Child() { Age = 7, Name = "小明" };//对象初始化器,必须要有无参函数的一个定义,否则不能使用
}
}
}