介绍了面向对象编程( OOP )


  Share  
|


过渡期从程序编程(非面向对象)语言,以一种面向对象的程序设计语言是一个大的一步,许多程序员。 这是事实两种编程方法最终能否达到同样的目标,但是你会发现OOP的是一个neater和更快的方式编程,它更适合于团队合作,并计划往往更容易设计采用了面向对象的方法。 与面向对象编程在Java中,你会发现编程是有挑战性的,首先的,但很容易和非常有价值的,一旦你掌握了这种技术。

什么是一个对象?

对象是积木,使了一个计划。 这是难以解释到底是什么物体,是因为一个对象可以是任何你想要的。 例如,你可以创建一个对象,是一个外国人说,能够容纳所有相关信息外侨,也包含功能与此相关。 您可以包括数据,例如有多少人的生命外侨,也是功能影响的数据,如代码杀害外侨,可去除其中的生命。

基本元素,使一个对象是变量和方法。 变量的数据成员或属性,即包含数据有关的对象,如一个文本字符串或数值。 方法提供的功能对象,可以用来进行互动与属性。 方法也被称为功能或程序,在其他各种编程语言。

面向对象编程在Java
Java语言是完全面向对象的。 这就是说,有没有全球性陈述意思(虽然静态成员可以被视为有点全球,我们将讨论静态成员后) 。 任何属性或方法必须定义为部分一类或接口。

一类在爪哇被用来确定结构的一个对象。 一类可细分为三个主要部分组成:构造器,属性(属性)和方法。

我们现在来看看一个例子,一个很简单的阶级结构包含这三个部分,然后再深入讨论。 的一个例子,一类可能是一个人,这可能描述的属性和方法,一个人可以与他们有联系的。 一个对象可以被创建,从阶级的人一样,你或我,或什至你的伴侣(如果你没有合伙人,那么做得好;你是一个真正的程序员) 。

为了创造一个对象,我们首先要营造一个阶层。 不要担心编译任何代码的权利,现在只是坐在回,品尝咖啡,并设法了解一些基本知识。

这里是我们开始的"人"类:

 一流的人( ) 

现在,在这个时刻,我们有大纲代码是一个人阶级。 首先,我们应该添加一些属性。 让我们增加一个数字属性,以阶级来储存年龄的人。

 一流的人(诠释年龄; ) 

关键字诠释主张整数,相当于一个数字数据类型。 在这一点上, Person类是所有属性及无功能(明确指向投身政治) 。 我们可以添加一个方法,以班级如下,它可以用来改变的价值在年龄:

 一流的人(公共无效setage ( int起点newage ) ( / /设置时代向价值储存在newage年龄= newage ; )诠释年龄; ) 

现在,我们有一类所谓的人,含有一种方法称为setage和一个属性所谓的年龄。 该方法setage可以用来指定一个新的价值,到了这个年龄的人。 再次,不用太担心如何工作方法,为一段时间内,你的咖啡应该只是冷静够喝,现在。

为了创造一个物体(或一个实例,因为它也是已知) ,从阶级的人,一个构造函数必须加以援引。 所有类别包含一个默认的构造,而这没有什么可超负荷很多的构造类型,我们将看到。

建设者

构造器是一种方法,这就是所谓的时候,目的在于创造,并用来初始化国家的反对。 constructor内,必须全部申报与类名相同名称的,其中载,并就不可能有一个返回值。 我们现在将增加两个建设者,以人的班级:

 一流的人(公众人物( ) ( / /基本构造器年龄设定为0默认)公共人( int起点newage ) ( / / contructor设定年龄到一个指定的值setage ( newage ) ; )公共无效setage ( int起点newage ) ( / /设置时代向价值储存在newage年龄= newage ; )诠释年龄; ) 

你可以宣布一个参考,以一个Person对象如下:

人billygate ;
目前,你有一个参考的对象类型的人,而目前并没有提及任何物体。 成员对象不能取用,如属性的年龄,因为没有对象已经成立。 注意的是参考变billygate实际上等于无效,在这点。

打电话给构造必须作出创建一个新的对象类型的人,分配可变billygate参考新的对象。

如果没有施工人员被宣布为一类,一个默认的构造可说,不采取任何参数,并简单地创建一个默认对象的类别时,引用。 在我们的代码片断,我们创造了我们自己的默认构造函数人( ) ,其中载有没有代码,而第二个构造器也称为人(诠释newage ) ,其中载有代码设定值年龄的人反对一个新时代的指定一个参数值。

注意了,我们只是宣布第二个构造器,并省略了第一构造器,将不再是一个默认的构造可说,不采取任何参数,作为默认的构造函数只存在于内存中,如果类不包含任何用户定义的建设者。

创造一个物体从Person类,我们可以使用下列一行代码:

  / /使用第二个构造器,集时代价值,以21人billygate =新的人( 21 ) ; 

这条线的典宣布一个标识符所谓billygate型的人,并创造了一个"新"的人反对使用第二constructor是在Person类初始化对象,年龄定值,在新的Person对象,以21 。

我们也可以用下面的代码,而是这个时候使用第一个(默认)构造函数初始化对象,然后设定值的年龄用setage方法,它是成员之一,新成立的物体。

  / /使用构造器的第一人billygate =新的人( ) ; / /使用setage会员设置年龄至21 billygate.setage ( 21 ) ; / /一套价值岁至21日 

我们也可以上网的年龄变量与定其价值,直接,具体情况如下:

  billygate.age = 21 ; 

注意,你不能有两个建设者与同一签字。

到目前为止,我们所看到的实例,它是用来描述创建一个对象或安装的类。 如下图,将有望帮助您了解这是一个稍微好一些,因为这表明关系人阶级和物体造成的,从它。

一个对象成员的一员,这是造成当对象是创造。 这意味着,它只能查阅一次,对象已经建立,因为否则它根本不存在。 例如,我们刚刚看到创建一个类的人参考billygate 。 我们本来可以创造出许多事例更多的人,一流的。 假如我们说,该billygate对象是唯一的人,我们都需要或想要创造,然后我们可以取消Person类,合共只要创建一个新的阶层所谓billygate代替。

 工人阶级billygate (公共静态无效setage ( int起点newage ) ( / /设置时代向价值储存在newage年龄= newage ; )诠释静态年龄; ) 

公告说,我们已经取消了施工人员,并辅以静态关键字,以两个确定的成员。 这是因为,我们已不再需要创造一个实例这门课。 我们可以不只是获得静态成员使用类名。 例如:

  billygate.setage ( 21 ) ; 

这些静态成员称为类成员,而之前,我们曾反对成员。

例子,我们用至今只包含要么对象成员或阶层的成员,你当然可以利用这两个组织。 再回到我们的人阶级,现在增添了静态属性。 静态属性必须有所表示,将会同所有的人的物体,我们创造。 因此,我们可以添加一个整型变量所谓daysinayear 。

 一流的人( / /典一如以往静态的诠释daysinayear ; ) 

我们可以访问属性daysinayear之前,我们创造任何物体从人的阶层。 例如:

  person.daysinayear = 365 ; 

如果我们创造新的事例中的人,那么,他们也可以访问静态变量daysinayear 。

 人glennmurphy =新的人( 21 ) ;人士andrewmulholland =新的人( 20 ) ; glennmurphy.daysinayear = 366 ; / /这是一个质的飞跃,今年55 System.out.println ( andrewmullholland.daysinayear ) ; 

本守则将创造两个新的事例中的人,参照glennmurphy和andrewmulholland 。 该glennmurphy对象,然后设置静态变量daysinayear至366 ,并andrewmulholland对象将获得daysinayear ,印刷,它的价值到控制台窗口。 该数字将被印到控制台窗口,是366 ,这意味着daysinayear并不属于任何的对象单独,它属于所有的,并取得了变化,从一个影响对方。 是不是只有一个部分记忆含有价值366至,他们都指。 总之,这是同样的属性,但它是访问。

参考文献

为访问对象(记住,他们的事例班) ,在Java中,我们使用什么是已知的参考作用。 我们用三个参考,所以至今在我国代码范例: billygate , glennmurphy , andrewmulholland 。 这些并非实际的物体,我们创造,而只是引用(也称为把手) ,以该物体形成。 采取下面的代码,例如:

  andrewmulholland = glennmurphy ; / /他永远是我的平等 

本守则根本andrewmulholland参考相同的对象glennmurphy参考,因此,你便可以得到同样的对象使用的两个参考作用。

对象与年龄相等于20 andrewmulholland一旦参照的是现在的状态,但是不要担心,腾出的记忆,这是照顾到由Java的垃圾回收器。

这是一篇文章说:由加夫列长佩雷斯。

Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions