面向对象编程

构造方法和析构方法


构造方法


类的构造方法

Woman类后面的“()”;其实指的就是构造方法。

只要你想要创建类或结构的实例,必须调用它的构

造方法。

构造方法负责对类里面的字段进行初始化。


1.构造方法必须类重名;

2.构造方法没有返回值,但可以有参数;

3.构造方法可以有多个重载;

4.不带参数的构造方法称为默认构造;



1.构造方法的本质是一个构造器,是为了类的实例化而产生;

2.构造方法是一种特殊的方法,它没有返回值,它必须与类重名,它只能在初始化的时候被系统自动执行,外部不能调用;

3.构造方法可以不显示的写,系统会默认的为你的类添加一个无参构造方法;

4.如果讲构造函数设为private,则不能被外部实例化;

5.如果类里面有带有参数的构造方法,想调默认构造时,必须把默认构造显示的写出来;


结构体的构造方法

public struct position{

    public int x;

    public int y;

//结构体的自定义构造

public position (int x , int y){

    this.x=x;

    this.y=y;

    }

}

默认构造方法不用写默认构造显示,也有默认构造。

析构方法


析构方法用于析构类的实例。

构造方法用户实例化,分配内存空间,而析构方法正好与它相反,用于释放内存空间。

一般在某个功能结束的时候,做某些事情。

class  Car

{

                        ~Car( )        // destructor 写在类名的前面

        {

                            // cleanup statements...

        }

}


1.不能在结构中定义析构方法,只能对类使用析构方法。

2.一个类只能有一个析构方法。

3.无法继承或重载析构方法。

4.无法调用析构方法。

5.它们是被自动调用的。

6.析构方法既没有修饰符,也没有参数。


面向对象

面向对象是把构成问题事务分解成各个对象,创建对象后用

对象调用各自方法以达到解决问题的目的;


面向对象特性:封装、继承、多态

OOP(面向对象编程)达到软件工程的三个主要目标:

重用性、灵活性、扩展性


封装

封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。

封装的意义在于保护或者防止代码(数据)被我们无意中破坏。

封装就是对类成员的再次包装,这样写更规范。


继承


继承用于创建可重用、扩展和修改在其他类中定义的行为的新类。 其成员被继承的类称为“基类”,继承这些成员的类称“派生类”。派生类只能有一个直接基类。 但是,继承是可传递的。 如果 ClassB 派生出 ClassC,ClassA 派生出ClassB,则 ClassC 会继承 ClassB 和 ClassA 中声明的成员。

由继承的关系我们知道,基类有的,派生类都有;

派生类有的,基类可能没有。

即:派生类可以赋值给基类,而基类不能赋值给派生类。


指定基类的方法

通过在派生的类名后面追加冒号和基类名称,可以指定基类。


1.派生类获得基类的所有方法、字段、属性和事件。

2.继承具有传递性。

3.派生类可以赋值给基类,但是基类不能赋值给派生类。

多数情况 对象总是写在子类里面,不会再基类里创建太多东西。

派生类写构造需要把基类的内容也补充进去

例子:public classname(int a,int x,int y,long z): base ( x,y,z)//x,y,z是基类的内容。

this a=a;


里氏转换

转换原则一:子类对象可以直接赋值给父类对象。

作用:消除子类间的差异。把其类型转换为统一的数据类型,这样就可以写出一套通用的代码,这样即可以最大限度的重用代码,同时也提高了程序开发的效率;

转换原则二:父类转换成子类,这样就可以调用子类里面的公有成员了。

is as关键字


 多态


当派生类从基类继承时,它会获得基类的所有方法、字段、 属性和事件。 派生类可以选择:

 • 继承最接近的基类方法而不重写它

 • 重写基类中的虚拟成员。 

• 定义隐藏基类实现的成员的新非虚实现 

方法替换

当派生类继承基类后,可以定义隐藏基类实现的成员的新非虚实现。通常,我们称这为“方法替换”。

关键字:new


虚函数 重写

相对比于方法替换

关键字 virtual修饰方法

override重写子类里的方法


当采用虚方法重写后,子类方法不会再含有父类方法的特征,如果需要调用原本父类的特征,就需要一个新的关键字

base 

用法:重写时

pubic class A{

            public virtual void Aff{


            }

}



public class A:B

{

        public override void Add(){

                base.Aff();

                //声明附加的方法

        }

}

重写就是多态的表现形式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容