- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《noteforjavaesson
面向对象编程概述简单的说,面向对象编程(Object Oriented Programming,简称OOP)描述的是对象之间的相互作用。面向对象编程与面向过程编程的区别:过程化程序设计先确定算法,再确定数据结构;面向对象编程先确定数据结构,再确定运算。面向过程编程的程序员,习惯于建立数据结构存放数据并定义方法(函数)来操作数据;面向对象编程的程序员则构造一个对象模型,将数据与方法组织在一起。对象对象的状态对象的行为我们可以把现实世界的事物抽象成对象。对象一般都有两个特征:状态(state)和行为(behavior)。软件的对象概念是由现实世界对象抽象而来。把现实世界对象的状态保存在软件对象的变量中;现实世界对象的行为通过软件对象的方法(函数)来实现。类和对象把相似的对象划归成一个类。在软件中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的状态(变量)和行为(方法)。类是创建对象的模板,对象是类的实例。面向对象程序设计从程序设计的角度看,类是面向对象程序中最基本的程序单元。类实质上定义的是一种数据类型,这种数据类型就是对象类型。所以我们可以使用类名称来声明对象变量。声明对象变量之后,还不能使用对象。必须用运算符new创建对象实体之后,才能使用对象。面向对象编程的难点:掌握面向对象的困难之处在于思路的转换。我们通常习惯于考虑解决问题的方法,而不是考虑将问题抽象成对象再去解决它。一个简单的例子编写一个驾驶汽车的方法面向过程的程序设计:编写一个方法,void drivecar();面向对象的程序设计:将一辆汽车看成一个对象,将所有汽车对象的共性抽取出来,设计一个类Car,类中有一个方法voiddrive(),用Car这个类实例化一个具体的对象car,调用:car.drive()。类的构造方法构造方法的名字和类名相同,并且没有返回值。构造方法主要用于为类的对象定义初始化状态。我们不能直接调用构造方法,必须通过new关键字来自动调用,从而创建类的实例。Java的类都要求有构造方法,如果没有定义构造方法,Java编译器会为我们提供一个缺省的构造方法,也就是不带参数的构造方法。new关键字的作用为对象分配内存空间。引起对象构造方法的调用。为对象返回一个引用。缺省构造方法当我们用缺省的构造方法初始化对象时,系统用默认值初始化对象的成员变量。各种数据类型的默认值为:数值型0booleanfalsechar‘\0’对象null 方法的重载(overload)重载构成的条件:方法的名称相同,但参数类型或参数个数不同,才能构成方法的重载。特殊变量thisthis变量代表对象本身当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量。使用this简化构造函数的调用。关于实例方法和实例数据成员的进一步说明,一个类所有的实例(对象)调用的成员方法在内存中只有一份拷贝,尽管在内存中可能有多个对象,而数据成员在类的每个对象所在内存中都存在着一份拷贝。this变量允许相同的实例方法为不同的对象工作。每当调用一个实例方法时,this变量将被设置成引用该实例方法的特定的类对象。方法的代码接着会与this所代表的对象的特定数据建立关联。关键字static静态方法和静态变量是属于某一个类,而不属于类的对象。静态方法和静态变量的引用直接通过类名引用。在静态方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以。可以用类的对象obj去调用静态的方法method(),如:obj.method()。intx,y;//实例变量,属于一个特定的对象,即在每个对象中都有一份拷贝,对象只能对分配给自己的拷贝的变量进行更改staticintz;//类变量,属于类本身,在内存中只有一份拷贝,每个对象都可对其进行更改//static 静态变量和方法在类加载时就分配内存空间了,不进行实例化就可能引用,而非静态变量(成员变量)和非静态方法(或成员方法)在实例化时才分配空间,所以要实例化以后才能调用或引用。Main就是典型的static方法。而构造函数则是典型的非静态方法。常量的定义使用关键字final定义常量,例如:final double PI=3.1415926;作为一种约定,在定义常量时,通常采用大写形式。final常量可以在声明的同时赋初值,也可以在构造函数中赋初值。为了节省内存,我们通常将常量声明为静态的(static)。注:声明为静态的常量则不可以在构造函数中赋初值。类的继承理解继承是理解面向对象程序设计的关键。在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类)。在Java中,不允许多继承。在实例化一个子类对象时,父类构造方法首
文档评论(0)