版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习情景7VisualC#面向对象程序设计学习情景7VisualC#面向对象程序设计1面向对象的软件开发技术是当今计算机技术发展的重要成果和趋势之一。C#是完全面向对象的程序设计语言。封装性、继承性和多态性是面向对象的特点。12/21/20222C#程序设计实用教程面向对象的软件开发技术是当今计算机技术发展的重要成果和趋势之27.1类和对象数据成员成员方法对象:桑塔纳对象特征:黑色20002.4T上海大众动态特征:载人抽象实例化类:汽车属性:颜色型号马力生产厂家服务:运输数据值执行的操作类与对象的关系示例{7.1类和对象数据成员成员方法对象:桑塔纳抽象实例化数据37.1类和对象类:是一种抽象的数据类型,它是所有具有一定共性的对象的抽象。本质上可以认为是对对象的描述,是创建对象的“模板”。类的某一个对象则被称为是类的一个实例,是类的实例化结果。对象类实例化抽象7.1类和对象类:是一种抽象的数据类型,它是所有具有一定共4课堂讨论先有对象还是先有类?-应该先定义类才可以从类的定义声明对象。课堂讨论先有对象还是先有类?-应该先定义类才可以从类的定义声57.3类的定义格式为:
[类修饰符]
class类名[:基类类名]{类体}关键字合法的标识符字段(成员变量)方法7.3类的定义格式为:关键字合法的标识符字段(成员变量)方61.声明字段(成员变量)
与普通变量的声明格式相同。在类体中,字段声明的位置没有特殊要求,习惯上将字段声明在类体中的最前面,以便于阅读。7.3类的定义7.3类的定义7定义简单的学生类,包含姓名和年龄两项学生信息,并能输出。classStudent{
//字段声明
publicstringstrName;publicintnAge;//方法publicvoidpri(){Console.Write("姓名为:{0},年龄为{1}",strName,nAge);}}添加构造方法,完成字段初始化例7-1定义简单的学生类,包含姓名和年龄两项学生信87.3类的定义在哪儿书写类的代码?与你的源代码文件在一块,同一个命名空间(namespace)下。C#允许在一个类中嵌套另一个类的定义。[建议]将类书写在另外一个.cs文件中。7.3类的定义在哪儿书写类的代码?97.3类的定义-创建类的对象在C#中,我们使用new运算符来创建类的对象。定义Student类的对象
Studentstu=newStudent();类名对象名=new
类名();实例化对象7.3类的定义-创建类的对象在C#中,我们使用ne10引用对象成员变量的语法形式为:
对象名.成员变量名(成员方法);例如:stu.strName;stu.nAge;stu.pri();访问对象成员引用对象成员变量的语法形式为:访问对象成员117-2,创建对象class
Student{
//字段
public
stringstrName;
public
intnAge;public
voidPintInfo(){
Console.Write("姓名为:{0}的学生年龄为:{1}",strName,nAge);}}class
test{
static
voidMain(string[]args){
Studentstu=new
Student();stu.strName="张三";stu.nAge=19;stu.PintInfo();}}7-2,创建对象classStudentclasstes12编写一个矩形类Rect,包含:2个成员变量:长、宽2个方法:面积方法area,周长方法cir,分别用于计算矩形的面积和周长。创建一个长4,宽5的矩形对象,并分别计算矩形的面积和周长。练习12分钟编写一个矩形类Rect,包含:练习12分钟13编写一个课程类Cource,包含:3个成员变量:课程编号(cNumber)、课程名(cName)和学分数(cUnit);1个方法:printCourceInfo:用于输出课程的相关信息;创建一个Cource的对象C#,其中课程编号为:030517,课程名“C#程序设计”,学分为6,输出该课程信息。练习12分钟编写一个课程类Cource,包含:练习12分钟14
7.3类的定义classstudent{
publicstringname;//姓名
privateintage;//年龄
privatestringidNumber
;//身份证号}…staticvoidMain(string[]args){studentmyStudent=newstudent();
myS="张三";
myStudent.age=20;
}私有成员公有成员实例化一个对象可以访问无法访问编译错误
7.3类的定义classstudent私有成员公有15表7.1类访问修饰符访问修饰符意
义public(公有)类可以在其他名字空间访问internal(内部)类只能为所在名字空间访问(默认此)(如果引用类库,则不能访问)表7.2成员访问修饰符访问修饰符意
义public(公有)访问不受限制protected(受保护)访问限于所在类和所在类的派生类internal(内部)访问限于所在名字空间内(如果引用类库,则不能访问)private(私有)访问限于所在类。7.3类的定义表7.1类访问修饰符访问修饰符意义public(167.4类的方法----方法的定义语法访问修饰符(可选),默认情况下为
private[访问修饰符]返回类型<方法名>([参数列表]){//方法主体}如果不需要返回任何值,方法可能返回void
数据类型方法是类或对象的行为对象需要做某些事情,在类中添加方法方法的定义合法的标识符不能加“;”用逗号隔开变量定义通过return返回值如果返回类型是void,方法是否需要返回值?7.4类的方法----方法的定义语法访问修饰符(可选),默认17【例5-9】方法的定义。
classMotorcycle{publicvoidStartEngine(){}publicvoidAddGas(intgallons){}publicintDrive(intmiles,intspeed){return0;}}12/21/202218C#程序设计实用教程【例5-9】方法的定义。12/16/202218C#程序设187.4类的方法2.调用方法
从方法被调用的位置,可以分为在方法声明的类内部调用该方法和在类外部调用方法。内部调用语法格式为:
方法名(参数列表)
在方法声明的类定义外部调用该方法实际上是通过类声明的对象调用该方法,其格式为:
对象名.方法名(参数列表)
例如:组件事件方法的调用7.4类的方法2.调用方法例如:组件事件方法的调用197.4类的方法----方法的参数
1.值参数简单数据类型的参数为值参数,它表明实参与形参之间按值传递。当这个方法被调用时,编译器为值参数分配存储单元,然后将对应的实参的值拷贝到形参中。这种传递方式的好处是在方法中对形参的修改不会影响外部的实参。12/21/202220C#程序设计实用教程7.4类的方法----方法的参数
1.值参数简单数据20
5.4.2方法的参数
【例5-14】使用值参数。usingSystem;
namespaceValueParameters{classMyClass{publicvoidSwap(intx,inty){intk;k=x;x=y;y=k;}}
12/21/202221C#程序设计实用教程classTest{staticvoidMain(){inta=8,b=10;Console.WriteLine("a={0},b={1}",a,b);MyClassmycls=newMyClass();mycls.Swap(a,b);Console.WriteLine("a={0},b={1}",a,b);}}}程序的运行结果为:a=8,b=10a=8,b=10练习10分钟
5.4.2方法的参数
【例21
7.4类的方法----方法的参数
2.引用参数用ref修饰符声明的简单数据类型参数为引用参数。引用数据类型作为参数引用参数并不创建新存储单元,它与实参变量同处一个存储单元。因此,对形参的修改就是对实参变量的修改。基本类型参数按引用传递时,实参与形参前均须使用关键字ref。12/21/202222C#程序设计实用教程
7.4类的方法----方法的参数
2.引用参数12/122
7.4类的方法----方法的参数【例5-15】使用引用参数。usingSystem;
namespaceReferenceParameters{classMyClass{publicvoidSwap(refintx,refinty){intk;k=x;x=y;y=k;}}12/21/202223C#程序设计实用教程
7.4类的方法----方法的参数【例5-15】使用引用参23classTest{staticvoidMain(){inta=8,b=10;Console.WriteLine("a={0},b={1}",a,b);MyClassmycls=newMyClass();mycls.Swap(refa,refb);Console.WriteLine("a={0},b={1}",a,b);}}}程序的运行结果为:a=8,b=10a=10,b=812/21/202224C#程序设计实用教程练习10分钟classTest程序的运行结果为:12/16/2247-5构造函数构造函数是类的一种特殊方法,每次创建类的实例都会调用它。[访问修饰符]<类名>(参数列表){//构造函数的主体}语法:声明构造方法有两个特别要求:一是构造方法不允许有返回类型包括void类型二是构造方法的名称必须与类名相同。7-5构造函数构造函数是类的一种特殊方法,每次创建类的实例都25有以下几点特殊性:构造方法在创建对象时被自动调用。构造方法的方法名与类名相同。没有返回类型和返回值。构造方法可以重载。通常用public修饰7-5构造函数有以下几点特殊性:7-5构造函数267-5构造函数【例5-5】通过构造函数,实现在产生一个学生对象时为其完成起名工作。usingSystem;
publicclassStudent{publicstringstrName; //字段
publicStudent(string_strName){this.strName=_strName;}
}12/21/202227C#程序设计实用教程7-5构造函数【例5-5】通过构造函数,实现在产生一个学生对27
7-5构造函数
classClass1{
staticvoidMain(string[]args){Students=newStudent("张三");Console.WriteLine(s.strName);}}}12/21/202228C#程序设计实用教程
7-5构造函数
classClass1287-5构造函数练习10分钟为例7_2添加构造方法,完成姓名与年龄的初始化。7-5构造函数练习10分钟为例7_2添加构造方法,完成姓29析构函数是用于执行清除操作的特殊方法~<类名>()0{//析构函数的主体}语法:…~Student(){
}…示例:析构函数是用于执行清除操作的特殊方法~<类名>()0{语法:307.6
类和类的成员—属性classStudent{privatestaticstringstrName;privatestaticintnAge;
public
voidSetAge(int_nAge){
this.nAge=_nAge;}
public
intGetAge()
{
return
this.nAge;}}方法SetAge(Value)和GetAge()分别读取和写入学生Age…Students;s.SetAge(20);intStuAge=s.GetAge()…每次都调用GetId()和SetId()方法会很繁琐属性7.6类和类的成员—属性classStudent方法S317.6
类和类的成员—属性classStudent{
public
stringstrName;
private
intnAge;publicintAge{ get { returnnAge; } set { nAge=value; } }}读取nAge时调用将值赋给nAge时调用
试一试:创建Student对象,调用属性7.6类和类的成员—属性classStudent读取32属性的语法格式为:
[访问修饰符]<类型名>属性名{
get
//读访问器{//执行体
return<私有字段>;
//执行体可任写,但须有return<字段>语句。}set
//写访问器{//执行体<私有字段>=value;
//执行体可任写,但须有value值给某字段语句。}}7.6
类和类的成员—属性7.6类和类的成员—属性337.6
类和类的成员—属性[访问修饰符]数据类型属性名{ get{};}只读属性只能检索值7.6类和类的成员—属性[访问修饰符]数据类型属性名347.6
类和类的成员—属性[访问修饰符]数据类型属性名{set{};}只写属性只能赋值7.6类和类的成员—属性[访问修饰符]数据类型属性名35什么是属性classStudent{
//姓名
privatestringname;publicstringName{get{returnname;}set{name=value;}}}返回nameget用于获取相应字段的值set用于设置字段的值只有get时:只读属性只有set时:只写属性get和set都存在:读写属性属性的类型和字段类型必须一致。给name赋值
367.6
类和类的成员—属性属性是“聪明”的字段,“特殊”的方法定义属性类似于定义一个方法,但使用属性时如同使用一个字段classstudent{privatestringname;privateintage;}staticvoidMain(){students1=newstudent();
s.age=-13;
//错误}7.6类和类的成员—属性属性是“聪明”的字段,“特殊”的377.6
类和类的成员—属性privateintage;//年龄publicintAge{get{returnage;}set{if(value>0&&value<100){age=value;}else{age=18;}}}myStudent.Age=-20;…//打印myStudent.Age=40;…//打印没有访问age公开Age录入非法数据打印私有变量age不公开age通过公有Age访问和约束私有字段age7.6类和类的成员—属性privateintage38属性的特点privateintage;//年龄publicintAge{get{returnage;}set{if(value>0&&value<100){age=value;}else{age=18;}}}控制私有字段的可访问性保护内部数据的安全建议类内部敏感字段使用属性来控制访问类型可以是各种数据类型,如:对象、数组等等
397.6类和类的成员—属性publicclassStudent{intage=26;
//姓名
privatestringname;publicstringName{get{returnname;}set{name=value;}}//信息输出publicvoidpr(){ …}}类的成员字段属性方法…类名7.6类和类的成407.6
类和类的成员—属性如果只提供了get{},没有set{},这样的属性为只读属性如果只提供了set{},没有get{},只写属性优点:属性在使用时类似于类的字段,简单属性在实现时类似于方法,可以编写代码控制用户对数据的存、取,增加安全性检查可以设置只读或只写属性7.6类和类的成员—属性如果只提供了get{},没有s41编写学生管理系统中的Student类包含的属性年龄(0-100)不符合的设为18姓名(只读属性)爱好(读写)给属性赋值并打印出来练习10分钟编写学生管理系统中的Student类练习10分钟42课本25页,编写学生类实例。课本25页,编写学生类实例。437.7方法重载7.7.1成员方法重载方法可以重载,即两个或两个以上方法有相同的名称。重载后的方法被调用时,可根据方法的参数个数、类型来区分应该调用哪个方法。例如能同时处理整型与浮点型数据的重载方法:publicvoidmax(inta,intb){}publicvoidmax(floata,floatb){}publicvoidmax(inta,intb,intc){}7.7方法重载7.7.1成员方法重载44为什么要重载
publicintSum(intpara1,intpara2){returnpara1+para2;}整形参数,返回值整型如果想让两个string型、两个double型相加,怎么做?编写两个不同名字的方法,根据参数的不同调用相应不同的方法
45方法的重载同一个类中添加几个名字相同,参数与返回值不同的方法
publicstringSum(stringpara1,stringpara2){returnpara1+para2;}
publicdoubleSum(doublepara1,doublepara2){returnpara1+para2;}
46重载的方式classAdd{
publicstringSum(stringpara1,stringpara2){…}publicintSum(intpara1,intpara2){…}}基于不同类型参数的重载classAdd{
publicintSum(intpara1,intpara2){…}publicintSum(intpara1,intpara2,intpara3){…}}相同类型不同参数个数的重载不允许重载方法仅仅是返回值不同
47编写两个得到最小值的方法,一个方法得到两个数中的最小值,一个方法得到三个数中的最小值。练习10分钟编写两个得到最小值的方法,一个方法得到两个数中487.7方法重载----构造方法重载构造函数重载构造函数名称相同,参数个数或类型不同,从而构成重载。见课本28页学生类设计。12/21/202249C#程序设计实用教程7.7方法重载----构造方法重载构造函数重载12/1649C#常用基础类自学了解:Math类,常用Math方法Random类,会产生多个随机数Convert类,常用数据类型转换练习20分钟C#常用基础类自学了解:练习20分钟50ThankYou!ThankYou!51学习情景7VisualC#面向对象程序设计学习情景7VisualC#面向对象程序设计52面向对象的软件开发技术是当今计算机技术发展的重要成果和趋势之一。C#是完全面向对象的程序设计语言。封装性、继承性和多态性是面向对象的特点。12/21/202253C#程序设计实用教程面向对象的软件开发技术是当今计算机技术发展的重要成果和趋势之537.1类和对象数据成员成员方法对象:桑塔纳对象特征:黑色20002.4T上海大众动态特征:载人抽象实例化类:汽车属性:颜色型号马力生产厂家服务:运输数据值执行的操作类与对象的关系示例{7.1类和对象数据成员成员方法对象:桑塔纳抽象实例化数据547.1类和对象类:是一种抽象的数据类型,它是所有具有一定共性的对象的抽象。本质上可以认为是对对象的描述,是创建对象的“模板”。类的某一个对象则被称为是类的一个实例,是类的实例化结果。对象类实例化抽象7.1类和对象类:是一种抽象的数据类型,它是所有具有一定共55课堂讨论先有对象还是先有类?-应该先定义类才可以从类的定义声明对象。课堂讨论先有对象还是先有类?-应该先定义类才可以从类的定义声567.3类的定义格式为:
[类修饰符]
class类名[:基类类名]{类体}关键字合法的标识符字段(成员变量)方法7.3类的定义格式为:关键字合法的标识符字段(成员变量)方571.声明字段(成员变量)
与普通变量的声明格式相同。在类体中,字段声明的位置没有特殊要求,习惯上将字段声明在类体中的最前面,以便于阅读。7.3类的定义7.3类的定义58定义简单的学生类,包含姓名和年龄两项学生信息,并能输出。classStudent{
//字段声明
publicstringstrName;publicintnAge;//方法publicvoidpri(){Console.Write("姓名为:{0},年龄为{1}",strName,nAge);}}添加构造方法,完成字段初始化例7-1定义简单的学生类,包含姓名和年龄两项学生信597.3类的定义在哪儿书写类的代码?与你的源代码文件在一块,同一个命名空间(namespace)下。C#允许在一个类中嵌套另一个类的定义。[建议]将类书写在另外一个.cs文件中。7.3类的定义在哪儿书写类的代码?607.3类的定义-创建类的对象在C#中,我们使用new运算符来创建类的对象。定义Student类的对象
Studentstu=newStudent();类名对象名=new
类名();实例化对象7.3类的定义-创建类的对象在C#中,我们使用ne61引用对象成员变量的语法形式为:
对象名.成员变量名(成员方法);例如:stu.strName;stu.nAge;stu.pri();访问对象成员引用对象成员变量的语法形式为:访问对象成员627-2,创建对象class
Student{
//字段
public
stringstrName;
public
intnAge;public
voidPintInfo(){
Console.Write("姓名为:{0}的学生年龄为:{1}",strName,nAge);}}class
test{
static
voidMain(string[]args){
Studentstu=new
Student();stu.strName="张三";stu.nAge=19;stu.PintInfo();}}7-2,创建对象classStudentclasstes63编写一个矩形类Rect,包含:2个成员变量:长、宽2个方法:面积方法area,周长方法cir,分别用于计算矩形的面积和周长。创建一个长4,宽5的矩形对象,并分别计算矩形的面积和周长。练习12分钟编写一个矩形类Rect,包含:练习12分钟64编写一个课程类Cource,包含:3个成员变量:课程编号(cNumber)、课程名(cName)和学分数(cUnit);1个方法:printCourceInfo:用于输出课程的相关信息;创建一个Cource的对象C#,其中课程编号为:030517,课程名“C#程序设计”,学分为6,输出该课程信息。练习12分钟编写一个课程类Cource,包含:练习12分钟65
7.3类的定义classstudent{
publicstringname;//姓名
privateintage;//年龄
privatestringidNumber
;//身份证号}…staticvoidMain(string[]args){studentmyStudent=newstudent();
myS="张三";
myStudent.age=20;
}私有成员公有成员实例化一个对象可以访问无法访问编译错误
7.3类的定义classstudent私有成员公有66表7.1类访问修饰符访问修饰符意
义public(公有)类可以在其他名字空间访问internal(内部)类只能为所在名字空间访问(默认此)(如果引用类库,则不能访问)表7.2成员访问修饰符访问修饰符意
义public(公有)访问不受限制protected(受保护)访问限于所在类和所在类的派生类internal(内部)访问限于所在名字空间内(如果引用类库,则不能访问)private(私有)访问限于所在类。7.3类的定义表7.1类访问修饰符访问修饰符意义public(677.4类的方法----方法的定义语法访问修饰符(可选),默认情况下为
private[访问修饰符]返回类型<方法名>([参数列表]){//方法主体}如果不需要返回任何值,方法可能返回void
数据类型方法是类或对象的行为对象需要做某些事情,在类中添加方法方法的定义合法的标识符不能加“;”用逗号隔开变量定义通过return返回值如果返回类型是void,方法是否需要返回值?7.4类的方法----方法的定义语法访问修饰符(可选),默认68【例5-9】方法的定义。
classMotorcycle{publicvoidStartEngine(){}publicvoidAddGas(intgallons){}publicintDrive(intmiles,intspeed){return0;}}12/21/202269C#程序设计实用教程【例5-9】方法的定义。12/16/202218C#程序设697.4类的方法2.调用方法
从方法被调用的位置,可以分为在方法声明的类内部调用该方法和在类外部调用方法。内部调用语法格式为:
方法名(参数列表)
在方法声明的类定义外部调用该方法实际上是通过类声明的对象调用该方法,其格式为:
对象名.方法名(参数列表)
例如:组件事件方法的调用7.4类的方法2.调用方法例如:组件事件方法的调用707.4类的方法----方法的参数
1.值参数简单数据类型的参数为值参数,它表明实参与形参之间按值传递。当这个方法被调用时,编译器为值参数分配存储单元,然后将对应的实参的值拷贝到形参中。这种传递方式的好处是在方法中对形参的修改不会影响外部的实参。12/21/202271C#程序设计实用教程7.4类的方法----方法的参数
1.值参数简单数据71
5.4.2方法的参数
【例5-14】使用值参数。usingSystem;
namespaceValueParameters{classMyClass{publicvoidSwap(intx,inty){intk;k=x;x=y;y=k;}}
12/21/202272C#程序设计实用教程classTest{staticvoidMain(){inta=8,b=10;Console.WriteLine("a={0},b={1}",a,b);MyClassmycls=newMyClass();mycls.Swap(a,b);Console.WriteLine("a={0},b={1}",a,b);}}}程序的运行结果为:a=8,b=10a=8,b=10练习10分钟
5.4.2方法的参数
【例72
7.4类的方法----方法的参数
2.引用参数用ref修饰符声明的简单数据类型参数为引用参数。引用数据类型作为参数引用参数并不创建新存储单元,它与实参变量同处一个存储单元。因此,对形参的修改就是对实参变量的修改。基本类型参数按引用传递时,实参与形参前均须使用关键字ref。12/21/202273C#程序设计实用教程
7.4类的方法----方法的参数
2.引用参数12/173
7.4类的方法----方法的参数【例5-15】使用引用参数。usingSystem;
namespaceReferenceParameters{classMyClass{publicvoidSwap(refintx,refinty){intk;k=x;x=y;y=k;}}12/21/202274C#程序设计实用教程
7.4类的方法----方法的参数【例5-15】使用引用参74classTest{staticvoidMain(){inta=8,b=10;Console.WriteLine("a={0},b={1}",a,b);MyClassmycls=newMyClass();mycls.Swap(refa,refb);Console.WriteLine("a={0},b={1}",a,b);}}}程序的运行结果为:a=8,b=10a=10,b=812/21/202275C#程序设计实用教程练习10分钟classTest程序的运行结果为:12/16/2757-5构造函数构造函数是类的一种特殊方法,每次创建类的实例都会调用它。[访问修饰符]<类名>(参数列表){//构造函数的主体}语法:声明构造方法有两个特别要求:一是构造方法不允许有返回类型包括void类型二是构造方法的名称必须与类名相同。7-5构造函数构造函数是类的一种特殊方法,每次创建类的实例都76有以下几点特殊性:构造方法在创建对象时被自动调用。构造方法的方法名与类名相同。没有返回类型和返回值。构造方法可以重载。通常用public修饰7-5构造函数有以下几点特殊性:7-5构造函数777-5构造函数【例5-5】通过构造函数,实现在产生一个学生对象时为其完成起名工作。usingSystem;
publicclassStudent{publicstringstrName; //字段
publicStudent(string_strName){this.strName=_strName;}
}12/21/202278C#程序设计实用教程7-5构造函数【例5-5】通过构造函数,实现在产生一个学生对78
7-5构造函数
classClass1{
staticvoidMain(string[]args){Students=newStudent("张三");Console.WriteLine(s.strName);}}}12/21/202279C#程序设计实用教程
7-5构造函数
classClass1797-5构造函数练习10分钟为例7_2添加构造方法,完成姓名与年龄的初始化。7-5构造函数练习10分钟为例7_2添加构造方法,完成姓80析构函数是用于执行清除操作的特殊方法~<类名>()0{//析构函数的主体}语法:…~Student(){
}…示例:析构函数是用于执行清除操作的特殊方法~<类名>()0{语法:817.6
类和类的成员—属性classStudent{privatestaticstringstrName;privatestaticintnAge;
public
voidSetAge(int_nAge){
this.nAge=_nAge;}
public
intGetAge()
{
return
this.nAge;}}方法SetAge(Value)和GetAge()分别读取和写入学生Age…Students;s.SetAge(20);intStuAge=s.GetAge()…每次都调用GetId()和SetId()方法会很繁琐属性7.6类和类的成员—属性classStudent方法S827.6
类和类的成员—属性classStudent{
public
stringstrName;
private
intnAge;publicintAge{ get { returnnAge; } set { nAge=value; } }}读取nAge时调用将值赋给nAge时调用
试一试:创建Student对象,调用属性7.6类和类的成员—属性classStudent读取83属性的语法格式为:
[访问修饰符]<类型名>属性名{
get
//读访问器{//执行体
return<私有字段>;
//执行体可任写,但须有return<字段>语句。}set
//写访问器{//执行体<私有字段>=value;
//执行体可任写,但须有value值给某字段语句。}}7.6
类和类的成员—属性7.6类和类的成员—属性847.6
类和类的成员—属性[访问修饰符]数据类型属性名{ get{};}只读属性只能检索值7.6类和类的成员—属性[访问修饰符]数据类型属性名857.6
类和类的成员—属性[访问修饰符]数据类型属性名{set{};}只写属性只能赋值7.6类和类的成员—属性[访问修饰符]数据类型属性名86什么是属性classStudent{
//姓名
privatestringname;publicstringName{get{returnname;}set{name=value;}}}返回nameget用于获取相应字段的值set用于设置字段的值只有get时:只读属性只有set时:只写属性get和set都存在:读写属性属性的类型和字段类型必须一致。给name赋值
877.6
类和类的成员—属性属性是“聪明”的字段,“特殊”的方法定义属性类似于定义一个方法,但使用属性时如同使用一个字段classstudent{privatestringname;privateintage;}staticvoidMain(){students1=newstudent();
s.age=-13;
//错误}7.6类和类的成员—属性属性是“聪明”的字段,“特殊”的887.6
类和类的成员—属性privateintage;//年龄publicintAge{get{returnage;}set{if(value>0&&value<100){age=value;}else{age=18;}}}myStudent.Age=-20;…//打印myStudent.Age=40;…//打印没有访问age公开Age录入非法数据打印私有变量age不公开age通过公有Age访问和约束私有字段age7.6类和类的成员—属性privateintage89属性的特点privateintage;//年龄publicintAge{get{returnage;}set{if(value>0&&value<100){age=value;}else{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国网山西电力校园招聘(提前批)笔试模拟试题浓缩500题含答案详解(轻巧夺冠)
- 2026秋季国家管网集团西北公司高校毕业生招聘笔试模拟试题(浓缩500题)附参考答案详解(精练)
- 2025国网重庆市高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题附答案详解(满分必刷)
- 2026国网湖北省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题含答案详解(培优a卷)
- 2026秋季国家管网集团油气调控中心高校毕业生招聘14人笔试参考题库(浓缩500题)含答案详解(考试直接用)
- 2026年七台河市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(考点梳理)
- 2026秋季国家管网集团浙江省天然气管网有限公司高校毕业生招聘笔试备考试题(浓缩500题)及答案详解【有一套】
- 2026秋季国家管网集团西北公司高校毕业生招聘考试参考试题(浓缩500题)完整答案详解
- 2026秋季国家管网集团储运技术发展有限公司高校毕业生校园招聘笔试参考题库(浓缩500题)附参考答案详解(综合卷)
- 2026中国华能集团有限公司能源研究院高校毕业生招聘考试参考试题(浓缩500题)及答案详解【考点梳理】
- 第四讲大力推进现代化产业体系建设-形势与政策
- 幼儿冬瓜课件教学课件
- 剑桥国际少儿英语KB3单词表
- 江苏省苏州市2024-2025学年第一学期初三化学期中模拟测试卷(一)(含解析)
- 建筑地面工程防滑技术规程JGJ-T331-2014
- 妊娠期糖尿病课件
- 睡眠障碍课件
- 2024年第二届全国园林绿化职业技能竞赛(园林绿化工)决赛参考试题库(含答案)
- 陈独秀生平事迹
- 非遗文化之漆扇介绍课件
- 食管癌免疫治疗的耐药机制与克服策略
评论
0/150
提交评论