C面向对象程序设计.ppt
第四章 面向对象程序设计;4.1 面向对象的基本思想 ;全局数据;2.面向对象程序设计(OOP);对象A;面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范,其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计;从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。;3.面向对象程序设计的优点;4.2 面向对象程序设计基本概念;Tom;2. 类与对象;2.1.类与对象的概念
2.1.1 类
把众多的事物归纳、划分成一些类是人类在认识客观世界时经常采用的思维方法。分类的原则是抽象。
类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。
定义类的过程就是定义类的属性和服务的过程。 ;2.1.2 对象
定义类的目的是使用这些类???创建并操纵某个类的对象是使用类的主要手段。
对象是类的一个实例(instance)。
对象的生命期
创建
使用
清除;2.2 类的定义;例如,以下声明了一个Person类:
public class Person
{ public int pno; //编号
public string pname; //姓名
public void setdata(int no,string name)
{
pno=no; pname=name;
}
public void dispdata()
{
Console.WriteLine({0} {1}, pno, pname);
}
};;声明对象和创建对象的语法格式分别如下:
类名 对象名; //声明对象
对象名 = new 类名(); //创建对象
也可以在声明的同时创建对象:
类名 对象名 = new 类名();;2.4 类的成员;;;2.4.3 静态成员与实例成员
C#的类定义中可以包含两种成员:静态成员和非静态成员(也即实例成员)。使用了static修饰符的方法为静态成员,反之则是实例成员。
使用static修饰符声明属于类型本身而不是属于特定对象的静态成员。static修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。
静态成员属于类,在内存中只有一份,不必建立该类的实例,通过类名即可使用;而实例成员属于用该类创建的实例,要通过对象名使用。
非静态方法可以访问类中包括静态方法在内的所有成员,而静态方法只能访问类中的静态成员。 ;从内存管理的角度看,静态成员是在一个共享的内存空间中定义,所有对象都可以访问这个空间中的同一个静态成员;而非静态成员在对象被创建时形成自己的存储空间(这个空间是对象所拥有空间的一部分),这样不同的对象将形成不同的非静态成员(虽然它们的类型都一样)。
从访问的方式看,静态成员不需要(也不能)实例化,只要定义类了以后就可以通过类名来访问它;而非静态成员则需要在创建对象以后通过对象名来访问。;
声明静态成员是由修饰符static来完成,例如:
private static int y; //静态成员变量
public static void f(int x) { } //静态成员方法
;【例】 静态成员与非静态成员的区别。
class StaticCl
{
private string objName;
private int x; //非静态成员变量
private static int stx; //静态成员变量
public void setx(int x) //非静态成员方法
{
this.x = x;
}
public static void setstx(int y) //静态成员方法
{
stx = y; //在静态成员方法中不能使用关键字this
}
public void show() //非静态成员方法
{
Console.WriteLine(对象{0}:x =
原创力文档

文档评论(0)