《【教学课件】第4讲使用类和对象编程(二).ppt》由会员分享,可在线阅读,更多相关《【教学课件】第4讲使用类和对象编程(二).ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第4讲 使用类和对象编程(二)对象对象静态变量和静态方法静态变量和静态方法 再谈方法再谈方法目标掌握对象的创建与应用理解静态变量和静态方法掌握方法重载的概念和使用理解构造方法的概念 掌握构造方法的简单应用对象(object)是以类作为“模板”创建的,类是一种复杂数据类型,是对象定义的前提。类是具有共同特性的实体抽象,而对象又是现实世界中实体的表现。对象是类的实例化,对象和实例(instance)两个词语通常可以互换。当然,实例也可理解为类的具体实现。类和对象的关系是一般与个别的关系,可以比作一张楼房的图纸和多幢楼房例3.1中,定义了类Triangle,但只是一个通用的三角形模型,不能表示某个具
2、体的三角形。而我们在主程序中进行的new操作,就是创建它的一个实例。对象及其创建创建对象须使用操作符new其格式可以有两种:类名 对象名=new 类名(参数1,参数2,);Person p1=new Person();或者或者 类名 对象名;对象名=new 类名(参数1,参数2,);Person p2;p2=new Person();使用new运算符结果是返回新创建的对象的一个引用。对象及其创建 对象的引用一个对象的值总是指向一个对象的引用,对象的引用描述一个对象存储单元的值。一个类可以创建多个对象,在new运算符作用后,每个对象被分配不同的内存空间,有不同的引用。例如,Triangle tr
3、i1=new Triangle();Triangle tri2=new Triangle();u这两条语句创建了tri1和tri2两个对象,如右图所示。Triangle数据数据d1=8,d2=6,d3=10方法方法setSide(int x,int y,int z)tri1Triangle数据数据d1=4,d2=5,d3=7方法方法setSide(int x,int y,int z)tri2对象也是一个变量,可以在创建时进行初始化,也可以在创建后赋值。当对象被创建时,就会在Java虚拟机的堆区中拥有一块内存.在Java虚拟机的生命周期中,Java程序会陆续地创建多个对象,假如所有的对象都永久占
4、有内存,那么内存有可能很快被消耗,引发内存空间不足的错误。因此,必须采取一种措施及时回收那些无用对象占用的内存,以保证内存可以被重复利用。垃圾回收需要注意的是,一个对象运行时,可能会有一些东西与其相关联。因此,当对象即将被销毁时,有时需要做一些善后处理,Java中用finalize()方法(常称之为终止器)实现这些处理。protected void finalize()/finalization code Java虚拟机提供了一个系统级的垃圾回收器线程,它负责自动回收那些无用对象所占用的内存,这种内存回收的过程被称为垃圾回收(Garbage Collection)。垃圾回收 静态变量和静态方法
5、(一)静态变量是类的特点,不是某个对象具有的。静态变量是类的特点,不是某个对象具有的。静态变量存放在内存的一个公共的存储单元中,它将被某个类的所有对象共享被某个类的所有对象共享,该类的任何对象都可以访问它、修改它。如果静态变量被修改,它将保持被修改后的内容直到下次被修改为止。静态变量引用可以使用类名,也可以使用对象名。例如,round为类Triangle的成员变量,static int round=0;Triangle.round=a+b+c;静态变量和静态方法(二)static int round=0;Triangle.round=a+b+c;u上述语句将round设为静态变量,则类Tria
6、ngle可直接调用round。而实例变量的引用不能直接使用类名,须通过对象引用。静态方法的调用也可通过类名直接调用,即不必将类实例化为对象。Math类的方法都是静态方法。例如,方法sqrt()的调用可以使用下面语句,System.out.println(“81的平方根:+Math.sqrt(81);这条语句直接用类名Math调用sqrt()方法。实例Ex3_4静态变量和静态方法(三)程序分析:u Counter.java设计了一个类counter(为方便理解将其看作计数器),u 程序Ex3_4.java创建了4次Counter类的对象并依次将它们显示出来,最后通过Counter类名调用了get
7、Count()方法返回被实例化的Counter 对象的数量。静态变量和静态方法(四)1类Counter中定义了静态变量count并被初始化为0,构造方法Counter()功能是自增静态变量count。2类Counter中定义了静态方法getCount(),它允许在main()方法中通过类名调用,在Ex3_4.java的倒数第三行用类名Counter调用。3主方法中反复调用ob对象,程序的结果显示了count的值为4,说明count的功能的确是记录Counter实例的数量重载方法在Java程序中,可以创建名字相同,但是参数和返回值不同的多个方法,就是方法重载。对于多个重载方法,到底调用哪个方法,
8、是通过传递给方法的参数来决定的类Area中,方法getArea()被定义了4次。如果 Area ar=new Area();int a=3;float s,b=4.0f;s=ar.getArea(a,b);u以上代码调用了第3个方法,返回值为浮点型。注意注意:不能 定义名称相同,参数也完全一致的方法,即使返回类型不同。例如,下面的代码是错误的。public void getArea(int a,int b);public int getArea(int a,int b);构造方法构造方法(也称构造器,constructor)是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并且不返回任何
9、显式数据类型。Java程序中的每个类都有构造方法,用来初始化类的成员变量。用new创建对象时,一定会调用一个构造方法。每个类都有默认的构造方法(它没有任何参数),通过构造方法,变量被初始化。如果类没有重新定义构造方法,则创建对象时调用默认的构造方法。否则,创建对象时调用自定义的构造方法实例Ex3_5程序的主方法中,Hello hi=new Hello(“China!”);创建一个Hello对象并存储到一个对象变量hi中,且返回该对象的引用,hi是Hello类的一个实例构造方法的重载构造方法table()示例实例Ex3_6构造方法示例本讲小结类的定义对象的创建成员变量和成员方法类与对象的关系方法的声明实例变量(或方法)和静态变量(或方法)方法重载和构造方法面向对象的编程方法P66-6(3)(4)(7)(8),7,8,9作业