对象
什么是对象?看得见,摸得到,具体的。但是:包包不是对象,我的包包才是对象
类
类:对现实生活中一类具有共同特征的事物的抽象。类的内部封装了方法,用于操作自身的成员
确定对象将会拥有的特征(属性)和行为(方法)
类中可以包含变量的定义和方法
举例:水果可以看作一个类(父类,基类)
苹果,葡萄,荔枝都是水果类的子类(派生类)
苹果的生产地,名称,价格,运输途径相当于该类的属性,苹果的种植方法相当于该类的方法。
类的定义语法
[访问修饰符] class 类名
{
成员;
......
}
#region 练习类的定义
//请练习定义一个人类,人类分别用三个变量来表示,姓名,性别,年龄
//有一个打招呼的方法,有一个走路的方法
public class Person
{
//字段(三个变量)
private string _name; //访问修饰符是private,那么这个字段就是私有的,外面不可以访问,可以通过属性在外面或其他地方进行访问
//属性
public string Name
{
get { return _name; }//读
set { _name = value; }//写
}
private char _gender;
public char Gender
{
get { return _gender; }
set { _gender = value; }
}
private int _age;
public int Age
{
get
{
return _age;
}
set
{
_age = value;
}
}
//方法
public void SayHello()
{
Console.WriteLine("hello大家好,我是人,年龄是{0}" ,Age );
}
public void Walk()
{
Console.WriteLine("走路");
}
}
#endregion
static void Main(string[] args)
{
#region 类的定义练习
Person per = new Person();//实例化这个类
per.Name = "大琪";
per.Gender = '女';
per.Age = 21;
Console.WriteLine(per.Age);
per.SayHello();
per.Walk();
Console.WriteLine(per.Name);
Console.ReadKey();
#endregion
}
访问修饰符
- public:公共成员,完全公开,没有访问限制。
- private:私有成员、在类的内部才可以访问。
- protected:保护成员,在类的内部才可以访问。
- internal:当前程序集内可以访问。
构造函数
构造函数是在创建给定类型的对象时执行的类方法,构造函数的命名必须和类名完全相同,用来创建对象时初始化对象。也就是给对象成员变量赋予初值,可以重载。
不带参数的构造函数称为“默认构造函数”,主要使用new运算符创建对象,不为new提供任何参数,就会调用默认构造函数,可以自定义构造函数,并且设置参数
类中默认带一个无参数的构造函数,一旦建立心的构造函数,默认的无参数的构造函数就会被干掉。
构造函数车票例子
public class Ticket
{
public Ticket(int distance)//一个车票的构造函数
{
if (distance < 0)
{
distance = 0;
}
this._distance = distance;//将Ticket构造函数传递过来的参数值distance赋值给本类中的_distance字段
}
int _distance;
public int Distance
{
get { return _distance; }
}
double _price;
public double Price
{
get
{
if (_distance <= 100) //如果字段_distance小于等于100
{
return _distance * 1.0;
}
else if (_distance <= 200)
{
return _distance * 0.95;
}
else if (_distance <= 300)
{
return _distance * 0.9;
}
else
{
return _distance * 0.8;
}
}
}
public void Show()
{
Console.WriteLine("{0}公里的价格为{1}",this.Distance ,this.Price );
}
}
static void Main(string[] args)
{
Ticket t = new Ticket(100); //实例化Ticket类,创建一个t的对象,并向对象的属性赋值
t.Show();
Console.ReadKey();
}