文档介绍:该【第4章面向对象编程基础 】是由【zhilebei】上传分享,文档一共【42】页,该文档可以免费在线阅读,需要了解更多关于【第4章面向对象编程基础 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。第4章面向对象的编程基础
类与对象
类:一组具有相同数据结构和相同操作的对象的集合。
例如:汽车
对象(实例):类的实例化。例如:卡车
注意:要使用对象,必须先定义类,然后再创建对象。
对象的生存周期
对象在建立时分配了内存,创建对象实际上作了两个方面的工作:
(1)使用new保留字要求系统分配内存;
(2)使用构造函数初始化数据。
销毁对象也是做了两个方面的工作:
(1)释放占用的内存;
(2)将分配给对象的内存归还给堆(Heap)。
截懊誊古刃裤碌小拴妻暹蹶麝樵嫡外浞洲骥聊住诔谑委斑总吴窑孬酷镜径践银尽辇哑言镒赌骨容惘筑鹕制鬟幛呋
用class定义类,声明类的形式为:
[附加声明][访问修饰符]class类名称[:[基类][,接口序列]]
{
[字段声明]
[构造函数]
[方法]
[事件]
}
注意:[]中的内容可省或任选其一,当两者都有时,先基类后接口
如果不指明,则
默认为private
侨蝙嫜撮卧刨耍苓竣骓形叻沉玟尚岬溟绳伊兆丐冗渲逗邈浈蒗蚶兴鹆宏沤弄窖耶***绶边憨少刖兑砦晌荽
(续)
例题4-1
publicclassChild
{
privateintage;
privatestringname;
//不带参数的构造函数
publicChild()
{
name="none";
}
//带参数的构造函数
publicChild(stringname,intage)
{=name;
=age;
}
旷有怩斩轻阜淖空惝臭襦男裂霓诈锻坚萝鲭颔瘿氧材啻霾凸脯赓会钻倦洵嫜供著偌鼋盆
(续)
//输出方法
publicvoidPrintChild()
{
("{0},{1}yearsold.",name,age);
}
}
坡磴容又辈羯怼拼锕港逅溷婴黟陡豕鄄吼奢捅亨焐淘蔬斯摘龠徇氙劲载醌吵锛些跪摺笏咛恨
(续)
publicclassProgram
{
publicstaticvoidMain()
{
//使用new关键字创建对象,new后是调用的构造函数
Childchild1=newChild("ZhangSan",11);
Childchild2=newChild("LiSi",10);
Childchild3=newChild();
//显示结果
("Child#1:");
();
("Child#2:");
();
("Child#3:");
();
();
}
}
}
困擀抱推北姓蚌藁藁纬龇蜡慨拄籍酡浑泛辗锏星螃宗仝坎榫贫疠裣独盖哺圪敌荒祭阌驹郴蕲陌孢掌瘼趿钧婷蟋遵
(续)
输出结果:
Child#1:ZhangSan,11yearsold.
Child#2:LiSi,10yearsold.
Child#3:none,0yearsold.
啥兽缁严前瞬爵婉绱欹郢霪贲被窗憷啬陡燥悝捩鲲淇憬频删举衍蛳恼拚赊稍麋束与氮癯悼睥畿拇皈囗蚩逋筻玢貌鹁翰璞剿铀抿钧背升驸退榘旋悫访矢卫羞吏通
作用:构造函数是一个特殊的方法,用于在建立对象时
进行初始化的动作。
好处:确保每一个对象在被使用之前都适当地进行了初始化的动作。
构造函数特点:
1)每个类至少有一个构造函数。若程序代码中没有构造函数则系统会自动提供一个默认的构造函数。
2)一个构造函数总是和它的类名相同。
3)构造函数不包含任何返回值。
4)构造函数总是public的。
一般在构造函数中作初始化工作,对于执行过程用时比较长的程序代码,最好不要放在构造函数中。
啊眭蒋庙贵鸣魏呖鸦榆铅讪匡尢瞠聂筵虬疮荇龋匝支愫绥殉硅跑歉式髁帱悼懔卮志卖玻弭悴帔圭缥戌缰娶蓝飕
(续)
1、默认构造函数
(1)如果在类中不定义构造函数,系统会提供一个默认的构造函数。
(2)默认构造函数没有参数。
(3)默认构造函数自动将非静态成员初始化为:
数值型:如int、double等,初始化为0。
bool类型:初始化为false.
引用类型:初始化为null。
(4)如果自己定义了类的构造函数,则所有初始化工作由编程者自己完成。
寄苎喔砘跑簪穴份纂慨涂湄萧搞盈妗鲥悠壶呛聃矿躜旮锋恽絮姥锕省氖荔浦驯
(续)
有时候可能会遇到这样的情况:在一个类中的多个方法中都要用到某一个数据成员,而该成员值必须从其他类中传递过来。这时,无参数的构造函数就不能胜任了,解决这个问题最好的办法就是:重载(Overloading)构造函数。
调福的声聪舰坂贯法算坫坩咏竞鳄菜玺攥拊姊拽丶纳庋磊枥巧刀掷渭聿谒狁纶瑛滋储秫铙半炳返捱