1.一个对象的三个基本要素
1.属性
2.方法
3.事件
类的第三个成员:构造函数(一般是public的)
2.语法:
public 构造函数名([参数])
{
对象初始化语句;(给属性赋值的语句)
}
说明:1)构造函数名必须跟类名相同;
2)参数是可选的。
如果没有参数,叫做无参构造;
如果有参数,叫做带参构造;
3)在创建类时,如果没有添加构造函数,系统会默认提供一个无参构造的函数!
如果你添加了一个构造函数,系统就不会提供无参构造函数!
4)参数的作用:用于接收用户传递过来的数
3.修饰符
访问修饰符 | 说明 |
public | 公有访问。不受任何访问限制 |
protected | 保护访问。只能在本类和子类中访问 |
private | 私有访问。只能在本类成员中访问 |
internal | 内部访问。只能在本项目内访问 |
4.数据保存:
1.变量:
一个普通的数据用一个变量存储,比如一个姓名,一个年龄 int a=1,b=2,c=3,..... // 麻烦 数组:保存多个同类型的数据,比如10个整数 int[] a={1,2,3,...}; // 方便
一个图书馆,有非常多的图书,每本书都要描述: 编号 书名 作者 ....
一本书: int id=1; string name="c#"; ... 多本书: int[] ids={1,2,3,...}; string[] names={.......}; ....
非常麻烦,且数据之间没有体现关联
解决办法:把图书归为一类,再分别描述具体的图书
2、类:
表示一种类型的事物。比如教材,老师,学生...
同一类事物,会有共同的属性(外在的特点、特征)和行为(能做什么事情)
3、对象:
表示某种类型事物中的具体的一个。 比如张三这个学生,李四这个老师,C#这本书
类:群体,泛指 对象:个体,特指 两者之间的关系:类是对象的模板,对象是类的实例(实际的例子,具体的例子)。 对象的三要素:属性、行为(方法)、事件(对外部动作的响应,如按钮的单击事件)
4、定义类:
语法: [访问修饰符] class 类名 { 类的成员; }
说明: 1)class是定义类的关键字; 2)类名用跟这种事物含义相近的英文单词取名,大写开头(帕斯卡命名法) 3)访问修饰符是可选的(用于规定类的使用范围)
类的访问修饰符有两个: internal: 内部的 (表示该类可以在本项目内使用) (默认的) public: 公开的,公共的(表示该类可以在本项目内或其他项目中都可以使用)
举例: public class Cat // 定义Cat类 { }
4)类中成员:
a、字段:类中用于保存数据的变量
语法: [访问修饰符] 数据类型 字段名; eg: string name;
字段的访问修饰符有: private : 私有的 (只能在类内部使用) (默认) internal: 内部的 (只能在本项目中使用) public : 公开的 (在任何地方地方都可以使用) protected:受保护的 (在父子类中可以使用)
字段的访问修饰一般用private!!!!
字段私有,如何让外部能使用到字段呢?解决办法:用属性
b、属性:用于封装字段,提供对外访问接口! (包装一下字段,让字段可以间接地被外部使用!)
语法: [访问修饰符] 数据类型 属性名 { get{return 字段名;} set{字段名=value;} } 访问修饰符一般用public 。 一般来说,属性与字段一一对应。 属性名建议跟字段一致,把字段首字母变大写当做属性名
举例: public class Cat { private string name ; // 字段
// 属性 public string Name { get{return name;} // 读访问器 set{name=value;} // 写访问器 } }
5、创建对象:
语法:类名 对象名=new 类名
举例:Cat c1=new Cat();
访问属性: 对象名.属性名 Console.WriteLine(c1.Name);