《Java程序设计3.ppt_第1页
《Java程序设计3.ppt_第2页
《Java程序设计3.ppt_第3页
《Java程序设计3.ppt_第4页
《Java程序设计3.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三,面向对象(上图),了解面向对象的概念,定义面向流程的结构中窗口的属性(如大小、位置、颜色和背景),使用窗口的函数与窗口本身的定义无关(例如HideWindow、MoveWindow、miniming)这些函数以语法形式调用,通过该语法形式可以隐藏窗口和移动窗口。这是主语和谓语的关系。面向对象的三大要素封装继承多态、类和对象以及类是对事物的描述,是抽象的、概念的定义。对象是实际存在的牙齿类型的所有对象,因此也称为实例。将对象与汽车相比,类是汽车的设计图形。因此,面向对象的编程侧重于类设计,而不是对象设计。类定义,class Person int agevoid shout()system

2、. out . print ln( oh,my god!I am age);Age是类的属性,也称为类成员变量。Shout是方法(也称为类)的成员函数。Shout方法可以直接访问同一类中的age变量,如果一个方法具有与成员变量同名的本地变量,则对牙齿变量名称的访问将不再是成员变量,而是本地变量。创建对象,Person P1=new Person();执行后,内存状态、对象创建和对象创建时,将自动初始化这些不同类型成员变量的分配。除了基本数据类型外,所有变量类型都是参考类型,如上面的Person和前面介绍的数组。使用对象,创建新对象后的对象名称。可以使用对象成员格式访问对象成员(包括属性和方法)

3、classtest Person public static voidmain(string args)point(string args)point(Person p2=new Person();P1 . age=-30;P1 . shout();p2 . shout();以上程序运行的内存布局如下图所示。对象的生命周期、对象比较、=运算符和equals()方法的差异比较两个数组对象的内容是否相同、匿名对象,甚至可以直接调用牙齿对象的方法,而无需定义对象的句柄。new Person()。称为匿名物件,例如shout()。您只需对物件呼叫方法一次,即可使用匿名物件。通常将匿名对象作为实际参数传

4、递给函数调用。实现类封装。如果外部程序可以随意修改一个类的成员变量,则会发生无法预测的节目错误。不能像一个人的身高一样从外部随意修改。只能通过多种营养摄取方法修改牙齿属性。定义一个类的成员(包括变量和方法)时,请使用private关键字说明牙齿成员的访问权限。牙齿成员成为类的专用成员,只能由牙齿类的其他成员方法调用,不能由其他类的方法调用。实现类的封装,实现良好的封装,我们通常将类的成员变量宣言为private,通过public方法访问变量。一个变量的操作通常有读取和分配操作。为执行牙齿的两个茄子操作,分别定义两个茄子方法。一个是getXxx()(Xxx表示要访问的成员变量的名称),另一个是s

5、etXxx()(用于读取牙齿成员变量操作)。用于为牙齿成员变量赋值。类通常是小模块,应只公开需要向外部告知模块的内容,隐藏所有其他内容。在进行程序的详细设计时,必须确保一个模块不直接修改或操作另一个模块中的数据。模块设计追求强的内部集合(许多功能在类内部独立完成,防止外部干预)、弱耦合(提供外部尽可能少的方法调用)。用总统指挥军队的例子说明这种效果。类封装的优点,隐藏类的实现详细信息,使用户只能通过预定义的方法访问数据,从而可以轻松添加控制逻辑以限制属性的不合理操作。易于修改,提高代码的可维护性。编程实验:在一个类中定义了private类型的成员变量,然后创建了牙齿类的两个实例对象。在第一个物

6、件的方法中,在第二个物件的private成员变数中输入第二个物件。可以以“成员”的形式访问吗?构造函数定义和函数以及构造函数方法的特征与类具有相同的名称。不包括返回值。不能使用方法的return语句返回值构造方法的角色。第一次创建类的实例对象时,将自动调用该类的配置方法,您可以向牙齿方法添加代码以完成初始化任务。就像我们规定每个人出生后必须先洗澡一样,我们可以在“人”的构成方法中添加完成“洗澡”的节目代码,所以每个“人”牙齿出生后就自动完成“洗澡”,程序不再需要每个人出生时都一个人“洗澡”,构成方法的结果对象的格式为new类名称(参数列表)。通过重新加载构造方法,可以执行各种初始化任务,例如P

7、3=newperson (Tom ,18)。语句,创建指定类的新实例对象,为堆内存中的实例对象分配内存空间,调用指定类的构造函数方法,最后为引用变量P3分配实例对象的第一个地址。P3=newperson (Tom ,18)的内存状态更改过程分析,Java每个类至少具有一个配置方法的配置方法的详细信息,如果程序员没有在类中定义配置方法,则会自动生成该类的默认配置方法。牙齿默认配置方法没有参数,系统提供的默认配置方法往往不能满足程序员的需要,因此,程序员定义了该类的配置方法后,就可以自行定义不再提供默认配置方法的类的配置方法。要声明构造方法而不需要特殊的要求,必须使用public关键字。能否在前面

8、的示例中使用private访问修饰符?This是什么?调用func2方法时,必须存在已存在的对象,func2用作该对象的方法。您可以在Func2内参考其他物件,也可以参考属于func2的物件。在Func2中,您所属物件的参考名称是什么?在Java程序中,this关键字的作用与它在函数中的含义非常相似,因为它是函数所属对象的引用变量。,this参考处理码的储存位置;每个成员方法内部都有this参考变数。调用牙齿方法的对象、类的成员方法和this之间关系的图片、this引用句柄的应用以及一个类的成员方法可以直接调用同一类的其他成员。实际上,在一个方法中,“this .”使用。在某些情况下,必须使用

9、this关键字。需要在指定类的成员变量名称和值的成员方法中具有相同的格式收购变量名称。这样的代码谁都看得见。老手看函数的定义,就可以揣摩函数内的代码,大大节省别人和自己以后阅读程序的时间。假设有集装箱类和部件类。您想在集装箱类的方法之一中创建部件类的实例对象。部件类的配置方法接收表示该类所在容器的参数。配置方法在创建对象时由Java系统自动调用,因此不能像程序调用任何其它方法一样调用配置方法。但是,您可以从一种配置方法调用另一种重载的配置方法。您可以按参数列表(this)格式(而不是配置方法名称)根据参数列表选择相应的配置方法。垃圾收集过程分析,C的解析方法Java中finalize()方法S

10、ystem.gc的作用,static静态变量我们有时希望无论创建对象还是创建多少对象,内存空间中只有一部分特定数据。例如,每个中国人都有国家名称,所有中国人都共享牙齿国家名称,不必在每个中国人的实例对象上单独分配代表国家名称的变量。使用静态变量编写程序以计算类生成的实例对象数。静态方法只能直接调用同类中的其他静态成员(包括变量和方法),不能直接访问类中的非静态成员。对于非静态方法和变量,必须创建类的实例对象才能使用它们,因为静态方法不需要在使用之前创建对象。静态方法不能以任何方式引用this和super关键字(super关键字将在下一章中介绍)。与上面一样,静态方法在使用之前不需要创建实例对象

11、,因此调用静态方法时根本不创建this引用的对象。Main()方法是静态的,这意味着JVM在运行main方法时不会创建具有main方法的类的实例对象,因此main()方法无法直接访问该类的郑智薰静态成员。您必须建立类别的实体物件,才能存取类别的郑智薰静态成员;静态程式码区块(static block)(未包含在类别中)只能在类别载入时执行一次,静态区块则经常用于初始化类别属性。类的静态代码块自动运行。即使创建类的多个实例对象,静态代码块也只运行一次。如果在一个程序中使用另一个类,则在第一次使用时将装载该类,而不是在节目启动时装载程序可用的所有类。单态设计模式,设计模式在大量实践中总结和理论化后

12、,首选的代码结构、编程风格、解决问题的思维方式。设计模式是经典的棋谱,徐璐不同的棋谱,我们徐璐写不同的棋谱,让我们自行重新思考,不要摸索。失败是成功之母,但要以大量的时间和精力为代价。如果有成功的经验,就不想再冒失败的危险了。我们没有理由不理解和把握设计模式。这是Java开发人员提高自身素质的好选择。使用设计模式可以限制创新,但真正有意义的创新只能来自少数天才。即使你是那个天才,也不必因循守旧,但完全不了解前人的成功经验,不能以身作则。(威廉莎士比亚,哈姆雷特),单一状态设计模式,所谓类的单一状态设计模式,也就是说,在整个软件系统中,类只能有一个对象实例的方法。此外,只要导入对象实例,牙齿类就

13、仅提供茄子方法。要使类只能在一台虚拟机上创建一个对象,必须首先将对类的构造函数的访问权限设置为private。这样,您就不能使用new运算符在类外部创建类对象,但可以在类内部创建该类的对象。因为不能在类外部启动类对象,所以只能调用该类的一个静态方法来返回在类中创建的对象,静态方法只能访问类中的静态成员变量,因此,还必须静态定义指向在类中创建的类对象的变量。了解main方法的语法。Java虚拟机必须调用类的main()方法,因此对牙齿方法的访问权限必须为public。Java虚拟机必须是接收String类型的数组参数的static,因为在执行main()方法时不需要创建对象,所以内部类是直接在类

14、中定义的内部类。嵌套类可以直接访问嵌套类(包括private成员)的成员,但是嵌套类的成员不能由嵌套类直接访问。内部类对象存储对外部类对象的引用。从内部类的成员方法访问变量时,如果在该方法和内部类中没有定义变量,则对内部类的this的引用将作为对外部类对象的引用传递。内部类是直接在类中定义的内部类。使用static修饰内部类时,牙齿类与外部定义的类相同。因此,您可以在static的内部类中声明static成员,但不能将非static牙齿内部类的成员声明为static。不难想象,Static的内部类不能再使用外部封装类的郑智薰static成员变量了!因此,静态嵌套类很少使用。内部类直接在类中定义

15、的内部类。如果函数的局部变量(函数的形式参数也是局部变量)、内部类的成员变量、外部类的成员变量同名,则必须明确指定要实际访问的变量,如以下节目代码中所用:public class Outer private int size;public class Inner private int size;public void doStuff(int size)size:/参考doStuff函数的造型参数this.size。/引用Inner类的成员变量Outer.this.size。/引用的Outer类的成员变量,内部类在外部引用的方式,class Outer private int size=10public class inner public void do stuff()system . out . print ln(size);public class testinner public static void main(string args)outer outer=new outer();outer . inner inner=outer . new inner();inner . dost uff();内部类是方法中定义的内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论