一、面向对象语言和结构化语言的区别:
面向对象,其实就是以现实为出发点,是站在现实世界的角度来考虑问题。实际中是怎样,我们就怎样处理。
而结构化的编程语言是以程序为出发点,是在程序的角度来考虑问题。
面向对象的语言在从分析阶段到实现阶段时是很自然而然的事情,而结构化就实现起来比较复杂,并且杂乱。
面向对象的特性:
封装:其实就是为了包装,是在安全方面考虑。
继承:它主要是为了实现多态。而且也让代码得到重用。
多态:就是多种形态的意思,它是为了实现一个好的软件结构。
C#中类与JAVA的区别:
在类定义上两者都是一样的。都用到class关键字。
JAVA中的属性在C#中我们叫它数据(也可称之为字段)。而C#中的属性,则是一种方法,但和方法又有着不同,它里面包含get块和set块,用来对某一数据进行取值和设置。它的定义没有方法中的()符号。
C#中属性的定义如下:
public 返回类型 属性名称{
get{ return 数据名称; //返回数据的值。
}
set {
数据名称=value; //value 代表将要设置给数据的值。
}
}
在使用中我们可以用类的对象调用此属性。
C#中的索引器
C#中定义索引器,目的是为了简化对类中集合的访问。
如假如我们定义了一个类,其中有个数据是数组类型的。如下:
class Person
{
private
int [] s;
//属性
public
int[] S{
get{
return s;
}
set{
this.s=value;
}
}
}
如果我们用定义属性来实现取集合的某一个元素的值,就显的比软麻烦,所以.NET为我们定义了索引器。
索引器的定义如下:
public 类型 this[int index]{
get{
return this.集合[index];
}
set{
this.集合[index]=value;
}
}
这样我们上例就可以改为:
class Person
{
private
int [] s;
//索引器
public
int this[int index]{
get{
return this.s[index];
}
set{
this.s[index]=value;
}
}
//属性
public
int[] S{
get{
return this.s;
}
set{
this.s=value;
}
}
}
像这样我们就可以用如下的方法来取值和赋值:
class Class1
{
static
void Main(string[] args)
{
。。。。。
person[0]=40; //将40赋给person对象的s数据的第一个元素
Console.WriteLine(person[0]);//将person对象的s数据的第一个元素输出。
。。。。。。。
}
}