



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 Java(一)串讲笔记 (3) 第3章面向对象编程基础1、 面向对象的基本概念(1) 抽象:抽象(Abstraction)是程序设计中最经常使用的技术之一,因为抽象是有效控制程序复杂性的重要手段。程序设计中利用抽象,在面向过程阶段,系统按函数和模块进行设计。在面向对象阶段,利用抽象按类设计。类是目前支持抽象的最好工具。(2) 对象:在面向对象语言中,对象的名称用于程序引用对象,对象的成员变量,用于存储对象的状态信息,对象的方法用于描述对象的行为。(3) 消息:在程序系统中,对象之间的交互通过相互发送消息(Message)实现。(4) 类:把同一类对象的所有共同的属性和行为放在一起描述。这种声明对象共有属性和行为的机制称为类。类的声明定义了类的所有对象的共有属性和方法。类是对一组相同对象的描述,类概括了同类对象的共有性质:数据和方法。类的每个对象都有自己的标识,但都具有相同的一组属性和提供相同的一组方法。(1) 继承:继承(Inheritance)就是在已有类的基础上,扩充属性,或扩充与改写其某些方法,生成新的类,这个方式称为继承。继承定义的类称为子类,被继承的类称为超类(父类),子类自动含有父类具有的属性和方法。继承具有传递性。继承的最大好处是对象能按层次划分,并在子类中,与父类相同的属性和方法可以不再重复声明。(2) 多态性 多态性(Polymorphism)有多种表现形式,这里所说的多态性是指类型适应性多态性,这来自继承,不同继承层次的对象同样的方法有不同的实现。类型适应性多态要求能自动按对象的实际类型正确调用它的方法。 类型适应性的多态性需要采用动态联编(DynamicBinding)技术实现。 联编是将发送给对象的消息与含执行该消息方法的对象连接起来。当联编在编译和连接阶段实现时,这样的联编过程称为静态联编;当联编推迟至运行时间实现时,该联编过程称为动态联编。动态联编是面向对象语言必须具有的一种能力,是实现上述多态性的技术基础。2、 Java的类和对象(1) 类:类是一种类型,类封装对象的属性和方法,是同一类对象的模板。Java程序的主要部分是描述类。 类的声明class 类名声明新类的基本格式类体(2) 成员变量 成员变量定义的一般形式为:修饰字类型变量名; 其中,修饰字可以空缺,修饰字用于对成员变量限制其访问权限:private、proected、public和友好的。 成员变量对类内定义的方法都有效。类的方法也可定义变量,这种变量称为局部变量,局部变量只在定义它的方法中有效。(3) 方法方法给出对象的行为,方法声明的一般形式如下:返回值类型方法名(类型 参数名, ,类型 参数名)方法体 如果方法无返回值,就用void关键字。如果某方法中的参数名或局部变量名与类的成员变量名相同,则成员变量在这个方法内暂时被隐藏。如果成员变量在方法内被隐藏,又在方法中要引用成员变量,必须使用this,this表示调用该方法的当前对象。 在Java程序中,类的方法可以重载。方法重载是指在一个类中定义多个有相同名字的方法,但这些方法或者参数个数不同或者按顺序参数的类型不同。(4) 构造方法 构造方法是一种特殊的方法,这种方法的名与它的类名相同,并且不返回结果,也不写上void关键字。 构造方法的作用是创建类的对象,并给对象初始化。程序运行时,当有对象要创建时,由系统自动调用构造方法。如果类的声明没有定义构造方法,系统就增补一个没有参数的默认构造方法。(5) 对象类被声明后,就可用类创建对象,被创建的对象称为类的实例。程序使用对象需依次经历个步骤:声明对象、创建对象、使用对象和撤销对象。 声明对象由于类是一种引用类型,声明对象只是命名一个变量,这个变量能引用类的对象。由于对象还没有创建,所以也暂不要为对象分配内存。 创建对象创建对象就是为对象分配内存,为对象分配内存也称类的实例化。一般形式为:new 构造方法(参数表)l 对象创建的两个步骤也可一起完成,一般格式为: 类名对象名new构造方法(参数表) 对象的内存模型l Java语言将类型分成基本类型和引用类型两种。在Java语言中,数组类型和类类型是引用类型。程序访问引用类型的变量采用间接访问方式。 使用对象程序使用对象有多种情况:或为对象设置状态、或获取对象的状态、或改变对象的状态、或应用对象的某种方法。前三种需要访问对象的成员变量,最后一种要调用对象的方法。程序通过操作符“”对某对象的成员变量进行访问和方法调用。一般形式为: 对象名成员变量 对象名方法(参数表)3、 实例变量和类变量(1) 类的成员变量又分为实例变量和类变量。在定义成员变量时,用关键字static修饰的是类变量,定义时未用static修饰的是实例变量。 类变量是类的所有对象共享的成员变量,一个类变量在类中只有一个,它属于整个类,而不属于类的某个对象。类变量的内存只有一处,让类的所有对象共享。从类的任一对象改变类变量,类的其他对象都能发现这个改变。引用类变量途径有两条通过类或对象,格式如下:类名类变量名 或 对象名类变量名 不同对象的实例变量将被分配不同的内存空间。4、 实例方法和类方法 类的方法也有两种:实例方法和类方法。在方法定义时,冠以修饰字static的方法称为类方法,没有冠以static修饰字的方法是实例方法。 类中的实例方法可以互相调用,并可调用类方法。类方法也能相互调用。但不能直接调用实例方法,除非通过局部对象调用实例方法。另外,类方法能直接引用类变量,不能引用实例变量。实例方法可引用实例变量,也可引用类变量。 实例方法必须通过对象调用,不能通过类名调用。类方法只能访问类变量,不能够访问实例变量。类方法除了可以通过实例对象调用之外,还可以通过类名调用。5、 访问权限 访问权限实现访问控制。Java提供以下种访问权限:l public:设置没有限制的访问权限,其他类的方法都能访问。l private:设置最强的访问权限,其他类的方法都不能访问。l proected:只限子类或者同一包中的类的方法能访问。l :(无修饰,友好的)只允许同一包中的类的方法访问。没有修饰的成员变量和方法称为友好变量和友好方法。6、 继承 继承是面向对象语言的重要机制。 Java语言不支持多重继承,限定一个类只能有一个超类。在子类声明中加入extends子句来指定超类。类声明时,缺省的超类是系统声明的类java.lang.Object。 子类对父类的继承性,Java语言作以下规定:l 子类继承其父类中不是private的成员变量作为自己的成员变量、不是private的方法作为自己的方法。l 超类方法在子类中隐藏称为重写,或置换。当子类中定义的成员变量和超类中的成员变量同名时,超类的成员变量同样会在子类中被隐藏。 多态性l 面向对象语言规定,子类对象也是超类对象,凡超类对象可以应用的地方,子类对象也适用。l 编译时暂不绑定调用哪个方法,必须在运行时才绑定调用方法的技术称为动态联编。l 重载能由调用时提供的参数个数和参数的类型顺序,在编译时就能确定被调用的方法,这种多态性不需要动态联编技术的支持。 多层继承继承声明的新类,又可被其他类再继承,从而构成多层继承。 多层继承中构造方法的调用顺序构造方法的调用顺序与类的继承顺序一致,从最高层次的超类开始,按继承顺序调用各类的构造方法。如果子类的构造方法要调用超类的构造方法,给从超类继承的成员变量初始化,用代码super(参数);7、 Java面向对象的其他机制 final类、final方法和final变量final的意义是最终的,用于修饰类、方法和变量,其意思是“不能改变”。l final类是不能被再继承的类。final修饰的方法不能被子类的方法覆盖。final修饰的变量,值不能被改变。final局部变量在定义时可以暂不设定初值,但是一经初始化,以后就不能再改变。 abstract类和abstract方法l abstract类称为抽象类。抽象类只声明一种模板,没有具体实现代码的类。只有它的子类才可能是有实际意义的类。所以,抽象类不可能有实例。l abstract方法称为抽象方法。抽象方法只能出现在抽象类 ,抽象方法没有实现的代码。如果一个类是抽象类的子类,则必须具体实现超类的抽象方法。抽象类可以没有抽象方法但有抽象方法的类一定是抽象类。 关键字super使用super有种情况:使用super调用超类的构造方法,使用super调用超类被子类覆盖的方法;使用super访问超类被子类隐藏的成员变量。 关键字this关键字this用来指对象自己。this的作用有多种,例如,将对象自己作为参数,调用别的方法;当方法的局部变量隐藏成员变量时,利用this引用成员变量;构成函数内调用另一构造函数等。 类之间的is和has关系类继承类,则子类和超类之间是is关系。如果类的某个成员变量的类型是,则类和类之间是has关系,类中成员变量的类型是。 内部类(innerclass)Java语言也允许在类声明内部嵌套类声明。嵌套的类可以是静态的或者是非静态的。静态类不能直接引用其包含类的成员,必须实例化,所以不经常使用。非静态的嵌套类,需要进行事件处理,非常流行。8、 接口 Java程序中的类只能继承一个类,这种继承称为单继承。Java语言虽不允许一个类继承多个类,但允许一个类实现多个接口。 接口是一种只由常量定义和抽象方法组成的特殊类。用public修饰的接口是公共接口,可被所有的类和接口使用;而没有public修饰的接口只能被同一个包中的其他类和接口使用。接口的所有变量都默认为是final static属性;所有的方法都默认为是public abstract属性。 一个类通过使用关键字implements声明自己使用一个或多个接口。实现多个接口时,接口名之间用逗号隔开。如果一个类要实现某个接口,那么这个类必须实现该接口的所有方法,为这些方法提供实现的方法体。在实现接口的方法时,方法的名字、返回值类型、参数个数及类型必须与接口中定义的方法完全一致,并一定要用public修饰。9、 基本类 Java语言为一些基本类型设有对应的基本类,如下表所示。基本类型对应的类基本类型对应的类基本类型对应的类boolean Boolean short Short float Float char Character int Integer double Double byte Byte long Long 基本类型值与对应基本类对象能相互转换。以基本类构造方法,由基本类型值得到对应基本类对象:public基本类(基本类型) 也可以由基本类对象得到基本类型值。实现方法如以下例子所示:设有 Double类对象,Boolean类对象,代码:DoubleDouble();10、 Java小应用程序基础 Java小应用程序即Java Applet,是嵌入在Web页上供浏览器运行的程序,可放在服务器上供客户端下载使用。主要功能是显示图形、动画、播放声音、响应用户事件等。每个小应用程序都得继承Java.applet.Applet类。 小应用程序的建立和运行l 一个小应用程序从建立到运行需经历个步骤:()用Java语言编写小应用程序的源程序。小应用程序由若干类组成,在源程序中必须有一个类继承JavaAppletApplet类,这个类是小应用程序的主类,用public关键字修饰。小应用程序的源文件名必须与它的主类名完全相同。()把小应用程序的源程序编译成字节码.class文件。如果源文件有多个类,编译后将生成多个.class文件。()将小应用程序的字节码文件嵌入在Web页中,设计一个指定小应用程序的HTML文件.html。()在支持Java的浏览器上运行。或用观察器Appletviewer,也可在开发环境下执行小应用程序。 Applet类的基本方法()init()方法:初始化,由浏览器载入内存时调用init()方法,该方法只运行一次。其用途是创建所需要的对象、设置初始状态、装载图像、设置参数等。()start()方法:初始化后,紧接着调用start()方法,启动小应用程序主线程,或当用户从小应用程序所在的 Web页面转到其他页面,然后又返回时,start()方法将再次被调用。()stop()方法:当浏览器离开小应用程序所在的页面转到其他页面时,调用stop()方法,挂起小应用程序的执行。()destory()方法:当关闭浏览器时,系统调用destory()方法,结束小应用程序的生命,关闭线程序释放对象资源。()paint(Graphics g)方法:该方法用于在屏幕窗口上显示某些信息。如文字、色彩、背景和图像等。当小应用程序启动时,浏览器产生一个Graphics类的对象,供小应用程序使用,并以参数传递给方法paint()。小应用程序可以把理解为一支画笔。()repaint()方法:为在Java页面上显示动态效果,需要repaint()方法,该方法先清除paint()方法以前所画的内容,然后再调用paint()方法。()update()方法:调用repaint()方法时,系统会自动调用update()方法。update(Graphics g)方法是从父类 Applet继承来的,该方法的功能是清除paint()方法以前所画的内容,然后再调用paint()方法。 小应用程序的生命周
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025人力资源管理聘用合同书范本
- 2025关于泉州市房地产代理合同(乙种本)
- 2025年甘肃省平凉华亭市山寨回族乡招聘行政村村文书模拟试卷(含答案详解)
- 2025广东农信社校园招聘考前自测高频考点模拟试题及答案详解(典优)
- 《2025年以自有车辆抵债合同》
- 2025江苏苏州市轨道交通集团有限公司专业化青年人才定岗特选人员考前自测高频考点模拟试题及答案详解(全优)
- 2025年三环集团留学生招聘考前自测高频考点模拟试题(含答案详解)
- 2025福建省梧凤文旅集团有限公司招聘1名工作人员模拟试卷及完整答案详解
- 2025辽宁工程技术大学招聘高层次人才216人考前自测高频考点模拟试题含答案详解
- 2025年辉南县补录1名乡镇、街道派驻消防文员模拟试卷及答案详解(新)
- 桩基质量管理制度
- 口腔颌面外科缝合技术要点
- 2025至2030中国军用导航仪器行业市场深度研究与战略咨询分析报告
- 2025年科创板开户试题及答案
- 西宁市供热管理暂行办法
- 中职导游课程课件
- 静脉血栓护理课件
- 精神科护理学练习题
- 造口患者叙事护理
- 中医学专业职业生涯规划书2300字数
- 绿色制药工艺节能策略-洞察阐释
评论
0/150
提交评论