----C#推进孙文教程(四)
好的,让我们谈谈要点。这一次我想告诉你的是C #属性。什么是它的属性,说我是男人,男人是我的一个属性。我是一年级新生,是我的一个学生。Nature is an object. 这很简单,是吗!这里,我举了两个例子,第一个例子,了解如何声明一个属性可以被修改,另一个例子是建立抽象属性(抽象),并解释子类如何丢弃它。好吧,我们开始吧。
例1:
000: / / person.cs性质
使用系统001;
002:阶级人物
{ 003:
004:私人String myName= = / ;
005:私有变量myAge = 0;
006:
属性名007:字符类型语句
008:公共字符串名
{ 009:
010:得到
{ 011:
012:返回我的名字;
013:}
014:设定
{ 015:
016:我=价值;
017:}
018:}
019:
020的年龄属性:声明一个int类型
021:公共年龄
{ 022:
023:得到
{ 024:
025:返回myAge;
026:}
027:设定
{ 028:
029:myAge =价值;
030:}
031:}
032:
033:公共覆盖的字符串()
{ 034:
035:返回name =+名称+
036:}
037:
038:公共静态空主()
{ 039:
040:Console.WriteLine(简单性);
041:
示例042:构建一个
043:人=新人();
044:
045:打印出它的属性
046:Console.WriteLine(个人资料- { 0 }
047:
048:一些属性集
049:人。名称=乔;
050:人,年龄= 99岁;
051:Console.WriteLine(个人资料- { 0 }
052:
053:年龄
054:人,年龄= 1岁;
055:Console.WriteLine(个人资料- { 0 }
056:}
057:}
这个例子的输出是:
简单的性质
个人详细信息-名称= A / A,年龄= 0
个人详细信息-姓名=乔,年龄= 99
个人详细信息-姓名=乔,年龄= 100
嗯,我又起来了。我昨天写的,然后上床睡觉了,哈哈。现在是五一节的第二天。我能看到今天我能写多少篇文章,我昨天写了两篇。
我们可以从上面的程序,一个类的属性设置,使用VB的概念,和java是不一样的。(这是M,TMD!)有的朋友可能会疑惑为什么我们可以用console.writeline(人)打印对象。真正的原因很简单,因为在java中,当用印刷方法进行了调整,对象自动调用它的toString(()在java是toString,TMD,几乎错误!)在33行中,我们可以看到这个方法的影子,覆盖关键字可能覆盖父类的方法,这是一个有点冗余的东西,我们可以看到对象的属性是由a(get)和集合(当然)组合起来完成的,并且有一个值。添加这个东西,你也可以写访问控制属性的一个读/刚刚。get(get)和get()可以被简单地删除,例如,不写属性,不设置(),如果不读,不获取()条。我必须感觉到C #没有灵活性,java这一点。
第二例:
这个例子说明了如何建立抽象属性(抽象),什么是抽象属性,即所谓的抽象属性,是…(嗯,每次。这么多废话!FT)一个抽象类不提供属性访问过程,他可以在下面的子类中被忽略。三个文档的例子,你需要编译它们才能得到结果,它们是:
abstractshape.cs:形态类,包含一个地区抽象属性
子shapes.cs:形状
shapetest.cs:显示程序。
编写这些程序,运行:CSC abstractshape.cs shapes.cs shapetest.cs是好的。运行后,它会产生shapetest.exe可执行程序。
000: / / abstractshape.cs性质
001:使用系统;
002:
003:公共抽象类的形状
{ 004:
005:一个字符串;
006:
007:公共形状(字符串S)
{ 008:
009:id;这叫做集合生成器的id属性。
010:}
011:
012:公共字符串ID
{ 013:
014:得到
{ 015:
016:返回一个;
017:}
018:
019:设定
{ 020:
021:不存在=价值;
022:}
023:}
024:
025:公共抽象双区域
{ 026:
027:得到;
028:}
029:
030:公共覆盖的字符串()
{ 031:
032:返回id区域=+双。格式(区域,F);
033:}
034:}
这个程序其实很简单,,当类的对象被创建和初始化的一部分,007-010,设置参数为对象的id属性。然后举一个操作的例子。事实上,我们可以抽象的属性和接口(接口)相比,java。他们只提到方法的名字拱门,但是这个方法不提供内容。像这个抽象属性的区域,有一个get,但是它在内容中没有指定get方法(它可能不被称为方法),那就是做什么get的东西。这个东西,由它的子类来做。
第二个文件:在这个文件中,一个类覆盖了(重写)区域属性。
000: / / shapes.cs性质
001:公共广场广场:外形
{ 002:
003:私有的身边;
004:
005:公共广场(int,字符串ID):基(id)
{ 006:
007:我身边=侧;
008:}
009:
010:公共覆盖双区域
{ 011:
012:得到
{ 013:
014:回到我身边*我身边;
015:}
016:}
017:}
018:
019:公共课圈:形状
{ 020:
021:私有myradius;
022:
023:公共圆(int半径,字符串ID):基(id)
{ 024:
025:myradius =半径;
026:}
027:
028:公共覆盖双区域
{ 029:
030:得到
{ 031:
032: return myRadius * myRadius * System.Math.PI;
033:}
034:}
035:}
036:
037:公共类矩形:形状
{ 038:
039:私有mywidth;
040:私有myheight;
041:
042:公共矩形(int宽度,int高度,字符串ID):基(id)
{ 043:
044:mywidth =宽度;
045:myheight =高度;
046:}
047:
048:公共覆盖双区域
{ 049:
050:得到
{ 051:
052:返回mywidth * myheight;
053:}
054:}
055:}
这个例子有点困惑:我们是什么,如果它是遗传的,相当于java扩展。我想.我们先看一看。
以下第三个文件是一个测试文件。这很简单。看看它。
000: / / shapetest.cs性质
001:TestClass类
{ 002:
003:公共静态空主()
{ 004:
005:形状{ }形状=
{ 006:
007:新广场(5,1平方# ),
008:新的圈子(3,圈# 1 ),
009:新的矩形(4, 5,矩形# 1 )
010:};
011:
012:system.console.writeline(形状集合);
013:foreach(形状的形状)
{014:
015:System.Console.WriteLine(S);
016:}
017:
018:}
019:}
从这个例子中,符号确实是扩展的意思,是继承。继承是什么意思,它是一个孩子,下面句子的意思。例如,sunwenson延伸Sunwen,这是sunwenson类继承Sunwen,sunwenson这类事的孙文类,你可以添加和删除Sunwen的东西。如此简单,但它是现代开发中的一项重要技术,因为它可以极大地提高可重用性。唉,只有大三年纪的人说,我没有资格。哈哈.
该程序的输出是:
形状集合
1平方#面积= 25
圆# 1面积= 28.27
矩形# 1面积= 20
之后,这个节日结束了。很难理解这部分,特别是对于那些没有经验的java或C++编程。但不要害怕。如果你鼓起勇气学习,你会得到一些结果。我也需要休息一下。嘿,早餐还没吃呢。