C#002类,对象,类成员简介

本节内容

1.类(class)是现实世界事物的模型

2.类与对象的关系,什么时候叫“对象”什么时候叫“实例”

3.引用变量与实例的关系

4.类的三大成员:

①属性(Property);

②方法(Method);

③事件(Event)

5.类的静态成员与实例成员

①关于“绑定”(Binding)

1、类(class)是现实世界事物的模型

类是对现实世界事物进行抽象所得到的结果类包括“物质”(实体)与“运动”(逻辑)建模是一个去伪存真、由表及里的过程

2、类与对象的关系

①对象也叫实例,是类经过“实例化”后得到的内存中的实体

对象和实例是一回事:“Formallly “instance”is synonymous with “object”。“飞机”与“一架飞机”有何区别?天上有(一架)飞机——必需是实例飞,概念是不能飞的。有些类是不能实例化的,比如“数学”(Math class),我们不能说“一个数学”

②依照类,我们可以创建对象,这就是“实例化”现实世界中常称“对象”,程序世界中常称“实例”二者并无太大区别,常常混用,初学者不必迷惑

③使用new操作符创建类的实例:new Form();这叫创建实例

3、引用变量与实例的关系:如Form类:Form myForm;这样就声明了一个引用变量

myForm=new Form();该语句就是把new出来的实例交给myForm这个引用变量,用引用变量调用新建的这个实例,更方便的对实例的方法属性等进行访问。

孩子与气球:

形象的比喻:孩子相当于引用变量,气球相当于new出来的实例,

Form myForm=new Form();

该语句相当于让一个孩子牵住了一个气球。

有三种状态:

*气球不一定有孩子牵着:即new Form();没人牵着气球就飞走了,实际上在内存当中,内存垃圾收集器很快就把这个对象收回去了,把相应内存释放掉。

*有小朋友没有牵着气球:Form myForm;

*多个孩子可以牵着同一个气球:

Form myForm1;

Form myForm2;

myForm1=new Form();

myForm2=myForm1;

也可以通过同一根绳子牵着气球.

4、类的三大成员

①属性(Property)

存储数据,组合起来表示类或对象当前的状态

②方法(Method)

有C语言中的函数(function)进化而来,表示类或对象“能做什么”

工作中90%的时间是在与方法打交道,因为它是“真正做事”、“构成逻辑”的成员

③事件(Event)

类或对象通知其他类或对象的机制,为C#独有(Java通过其他方法实现这个机制)

善用事件机制非常重要(滥用事件可能搞项目搞砸)

④使用MSDN文档

某些特殊类或对象在成员方面侧重点不同

模型类或对象重在属性:如Entity Framework

工具类或对象重在方法:如Math,Console

通知类或对象重在事件:如各种Timer

5、静态成员与实例成员

静态(static)成员在语义上表示它是“类的成员”,实例(非静态)成员在语义上表示它是“对象的成员”。

①绑定(Binding)指的是编译器如何把一个成员或对象关联起来:

分为早绑定和晚绑定:

早绑定指的是编译器在编译这个类的时候就已经知道这个成员到底隶属于这个类呢还是这个类的对象;

晚绑定指的是编译器不管这个事情,直到程序运行之后才决定一个方法(成员)是属于某个类呢,还是这个类的对象。

有晚绑定功能的语言一般叫做动态语言,典型的有JavaScripts.

*不可小觑的“.”操作符——成员访问

原文地址:https://www.cnblogs.com/AhuntSun-blog/p/11730106.html

时间: 2024-10-06 23:35:45

C#002类,对象,类成员简介的相关文章

引用成员变量 和 类对象做成员变量

注意: 1. 引用成员变量 必须在构造函数的初始化列表中进行初始化 2. 引用成员变量 并不为这个变量新辟空间:类对象做成员变量则是要对其新辟一段空间的. 如下代码中,使用date1做参数初始化person_ref和person_obj.person_ref的birth字段date1为同一个地址空间,而person_obj的birth字段则是新辟了一段空间. #include <iostream> using namespace std; class Date { int month, yea

类对象作为成员

类对象内部嵌套类对象,被嵌套的对象成为内嵌对象.内嵌对象是该类对象的组成部分,当创建该对象时,其内嵌对象也被自动创建. C++中通过构造函数的初始化表为内嵌对象初始化.组合类的带有初始化表的狗仔函数的定义格式为: 类名::构造函数名(全部参数表):内嵌对象1(参数表1),内嵌对象2(参数表2),... {   构造函数体  }: 声明格式为: 类名::构造函数名(全部参数表): 组合类构造函数的执行顺序为: 1)按内嵌对象的声明顺序依次调用内嵌对象的构造函数: 2)执行组合类本身的构造函数.

(一)Python入门-6面向对象编程:03类对象-类属性-类方法-静态方法

一:类对象 前面讲的类定义格式中,“class 类名:”.实际上,当解释器执行class 语句时, 就会创建一个类对象. [操作] #测试类对象的生成 class Student: pass #空语句 print(type(Student)) print(id(Student)) print(Student) s1 = Student() print(s1) Stu2 = Student s2 = Stu2() print(Stu2) print(s2) 运行结果: <class 'type'>

迭代器iter(db),db为实例化的类对象,类对象中没有__iter__,但有__getitem__

def main(): import visdom import time viz = visdom.Visdom() db = Pokemon('pokeman', 224, 'train') x,y = next(iter(db)) ## print('sample:',x.shape,y.shape,y) viz.image(x,win='sample_x',opts=dict(title='sample_x')) ##类 class Pokemon(Dataset): def __ini

c++类&amp;对象&amp;继承

C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计.类是 C++ 的核心特性,通常被称为用户定义的类型. 类&对象 类:class 访问类型: public.private.protected public: 公共成员在类外部可以访问. private: 私有成员,在函数类外部不可访问. protected: 受保护成员,但在派生类中可以访问. 继承 有public, protected, private三种继承方式,它们相应地改变了基类成员的访问属性. public

24-oc类工厂方法和类对象基本概念

类工厂方法 用于快速创建对象的类方法, 我们称之为类工厂方法 类工厂方法应用场景 类工厂方法中主要用于给对象分配存储空间和初始化这块存储空间 类工厂方法使用规范 规范: 一定是类方法 + 方法名称以类的名称开头, 首字母小写 一定有返回值, 返回值是id/instancetype 在类工厂方法实现中,调用本类的构造方法,创建实例对象,并返回实例对象 自定义类工厂方法是苹果的一个规范, 一般情况下, 我们会给一个类提供自定义构造方法和自定义类工厂方法用于创建一个对象 类工厂方法在继承中的注意点 以

OC类的本质(类对象)

类的本质 类的本质是类对象 类的加载初始化 + load , - initialize + load方法 当程序启动的时候,就会加载一次项目中的所有类,类加载完就会调用load方法 先加载父类然后加载子类,最后加载分类的load也会加载 - initialize方法 当第一次用到类的时候调用 先初始化父类在初始化子类 分类的initailize会覆盖原来类的initailize方法 NSLog方法打印对象或类时调用剖析 默认情况下NSLog 和%@输出对象时,结果是:<类名:内存地址> - d

Python3.2官方文档翻译-- 类定义语法和类对象

6.3 初识类 类引入一些新语法:三种新的对象类型和一些新的语义. 6.3.1 类定义语法 类定义的最简单形式如下: class ClassName: <statement-1> . . . <statement-N> 类定义和函数定义(def语句)一样,必须先执行然后才生效.(你当然可以把类定义放在if语句分支中或者嵌入在函数中) 在实际情况中,在类定义中的语句常常是方法的定义,但是其他语句也是允许的并且有时是很有用的---以后我们会讨论到这点.在类中的定义方法通常有一个参数列表

P4 类、对象、类成员简介

本节内容 类(class)是显示世界事物的模型. 现实中的一架飞机========================>>>抽象为程序世界中的类 类与对象的关系 对象也叫做实例,是类经过实例化得到的内存中的事宜 有些类不能被实例化,如数学,我们不能说一个数学 依照类,我们可以创建对象>>>这就是实例化 现实世界中常称对象,程序世界中常称实例,二者并无太大区别,常常混用,不用太纠结. 使用new操作符创建对象 △14:15开始编写程序>>>接下来我们自己动手