- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lect04 类[V3]概要1
第4讲 类;类:相同特性(属性)和相同行为(方法)的对象
对象:类的实例化
面向对象的特性:抽象、封装、继承、多态
;数据成员:对事物属性的抽象
常量 ; 字段
函数成员:对事物行为的抽象和对数据的操作
方法; 属性; 事件
索引器; 重载运算符
构造函数;析构函数
内嵌类型:用户自定义类型
类;结构……;学习内容;一、函数成员;形式:名称必须与类名相同,没有返回值
作用:为新创建的对象分配空间,并为该对象的成员变量赋值。
分类:
静态: 没有参数和访问修饰符, 语法:
static 类名( ) { 初始化代码 }
实例(非静态):语法:
修饰符 类名(类型 参数1,…) { 初始化代码 }; class C
{
public int a;
public static int s;
static C()
{ s=123; }
public C(int a)
{ this.a = a; }
public C()
{ a = 456; }
};是全局或共享构造函数
只能给静态变量赋值。
不能直接调用静态构造函数,在类的第一个实例创建之前之前执行,且最多执行一次。;如果没有编写构造函数,将自动提供一个缺省构造函数
;析构函数与构造函数相反,当对象脱离其作用域时, 系统自动执行析构函数。
定义析构函数的的语法如下:
~类名(){ 析构代码 }
除非类中打开了非托管资源,否则不需要析构函数。;运算符重载:对已有的运算符重新进行定义,赋予其另一种功能, 以适应不同的数据类型
声明方式:
public static 返回类型 operator 运算符(类型 参数1,…)
{ 代码段 }
修饰符必须是public static,参数1-2个
可重载运算符:+、-、*、/、、 等;class Complex
{
double r, i; // r实部, i虚部
public Complex(double r0, double i0)
{ r = r0; i = i0; }
public static Complex operator +(Complex c1, Complex c2)
{ Complex c = new Complex(0, 0);
c.r = c1.r + c2.r;
c.i = c1.i + c2.i;
return c;
}
} ;(1)提供x和y两个数据字段;(2)提供一个构造函数;(3)重载减号运算符
;属性:专门封装字段;隐藏数据结构的细节
声明语法为:
修饰符 返回类型 属性名称
{
set { 设置代码;}
get { 获取代码; }
}
或者:
修饰符 返回类型 属性名称{set ; get ;}
;class Student
{ private string name; //姓名
private int age; //年龄
public string Name
{ set { name= value; } get { return name; } }
public int Age
{ set{ if( value0 ) age=0;
else age= value; }
get { return age; }
}
};class Student
{ private string name; //姓名
private int age; //年龄
public void SetName(string namevalue)
{ name= namevalue; }
public string GetName()
{ return name; }
public void SetAge(int agevalue)
{ if( ageva
文档评论(0)