您当前的位置:首页 > 互联网教程

java中的复用类是什么意思

发布时间:2025-05-22 09:38:47    发布人:远客网络

java中的复用类是什么意思

一、java中的复用类是什么意思

代码复用能够大大简化我们的工作。面向对象的语言中一般是通过对类的重复使用来达到代码复用的目的的,Java也不例外。在Java中,复用类有两种方式,合成(has-a)与继承(is-a)。合成就是在新的类中直接创建旧类的对象,这里我们复用的只是代码的功能而不是它的形式。而继承是在原有的类的基础上建立一个新类,新类具有旧类的形式,但也加入了一些新的特性。这一章介绍的主要就是合成与继承方面的知识。一、合成所使用的语法合成的语法很简单,只要把要复用的类的对象的引用直接放到新类里就可以了。当然仅仅这样还是不够的,我们还要创建这个类的对象让那个引用来指向它。因为Java不会帮我们自动创建一个缺省的对象,它只会自动替我们把字段中的引用初始化为null。为引用赋值可以在三个地方,一个就是在定义这个引用的时候,另一个是在构造函数中,第三个地方就是在即将要使用这个对象之前。为了防止忘记在使用前为引用赋值,我们一般应该在前两种场合来创建对象。如果我们要创建的这个对象会花费很大开销,而且又可能不是每次都需要创建它的话,我们可以考虑第三种方式来创建这个对象。二、继承所使用的语法继承是Java中的重要部分,因为Java是使用单根体系的(C++不是这样,因为它要保持向C的兼容),所以我们定义的每一个类都是继承自Java中的根类Object类。在定义一个继承自已有的类的类时,要使用extends关键字,其后跟上基类的名字,这样表示新定义的这个类是继承自那个基类。在Java中不允许多重继承(C++中允许),也就是说它不允许一个类拥有多于一个的基类,这点劣势可以用接口来弥补,因为Java允许一个类实现任意多个接口。一个子类会自动获得基类中的全部字段与方法(那些由访问控制符控制的对子类而言不可见的成员也会获得,只是不可见,用不了),这也就是对基类中代码的复用。除了自动获得自基类的代码外,子类中还可定义新的成员,也可以覆写基类中的方法(所谓覆写指的是方法的声明部分一样但实现不一样),这样可以让相同签名的方法拥有不一样的形为。因为子类自动拥有了基类的成员,因此在子类中自然就可以调用基类的方法。如果这个方法在子类中被覆写过,那编译器知道你是要调用哪个方法呢?Java提供了super关键字在类中表示该类的基类的引用,我们可以通过这个关键字来明确表示我们要用到的是基类中的成员。如果不写super的话,那编译器将会理解为嵌套调用。这里有个题外话。在Java程序中常常是用public类中的main()方法做为整个程序的入口。这样的静态main()方法并不是非得要在public类中才能出现的,静态的main()方法可以做所有类的入口(但只能是main(),而不能是其它名字的什么静态方法)。比如一个程序有多个class组成,我们要对其中的某个class进行单元测试时,我们就可以在这个class文件中加入main(),编译后生成这个类的.class文件,在控制台通过java来运行它就是了。子类继承了一个基类后便拥有了基类中的成员,也就可以通过创建的子类对象来访问基类中可见的成员。Java是怎样做到这一点的呢?在我们创建一个子类对象的时候,这里创建的已经不是一个类的对象了,它还会创建这个类的基类的对象,这个基类的对象创建后被包括在子类的对象中。也就是说创建的子类的对象拥有其基类全部的成员(从这就可以知道为什么可以上传),但是子类对象只能访问基类中它可见的成员。那么在创建一个这样的对象时,子类和基类对象创建的顺序是怎么样的呢?为了能够正确的初始化基类,一般会调用基类的构造函数来进行初始化。Java中在调用子类的构造函数时首先会自动的调用基类的构造函数,并且这样的过程是层层传递的。比如C继承了B,而B又继承了A,在创建C的对象时,C的构造函数会首先调用B的构造函数,这时B的构造函数又会首先调用A的构造函数。(如果基类中没有默认构造函数,编译时就会报错。)但是这里自动调用的都是基类的默认构造函数(无参的),如果我们想调用基类的某个带参数的构造函数又该怎么办呢?上面提到可以用super来代替基类的引用,与在构造函数中通过this调用本类其它构造函数的形式一样,我们可以通过super来调用基类带参数的构造函数,比如“super(i, j)”。

二、java 中 package 是什么

1、package的作用就是 c++的 namespace的作用,防止名字相同的类产生冲突。Java编译器在编译时,直接根据package指定的信息直接将生成的class文件生成到对应目录下。例如package aaa.bbb.ccc编译器就将该.java文件下的各个类生成到/aaa/bbb/ccc/这个目录下。

2、Java中的一个package(包)就是一个类库单元,包内包含有一组类,它们在单一的名称空间之下被组织在了一起。这个名称空间就是包名。

3、JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK。

三、java的类是什么意思

使用Java语言意味着面向对象的编程。所以,你必须要学会如何创建、引用和继承已建立的类。

Java的结构是基于面向对象思想的。除了那些最基本的类型如整数、单精度浮点数之外的其它成分,均是以类的形式出现的。正是由于Java的面向对象特性,所以它能给用户提供一种具有良好的可扩充性的编程环境,并使得程序员可以充分利用别的程序员的成果,而不必重复以前的工作。

学习完本章后,你应该是已经可以轻松地创建自己的类,并能引用和继承已有的类,这将不公使你有能力去编写更简捷更有效的代码,同时也是进一步学习Java所必需的。

每个对象都是属于某种type(即类型、类别或者种类),例如“作者”这个“对象”或者“物体”就属于“人类”这个类别,拖鞋属于“鞋类”等等。再Java中,用type的同义词class表示类型,中文术语译为“类”。

我们把属性和方法成为这个对象的“成员”,因为它们构成一个对象的主要部分,没有了这两样东西,那么对象也没有什么存在的意义了。哪怕只是一粒石头,或许它没有什么操作的方法,但是也有描述它的属性。真的存在没有属性和方法的类,不过它产生出来的对象规则,然后遵守这个规则的对象,才能去做某些特定的事情。

只要类中有一个名为main的方法,那么这个类就可以成为一个能够被JVM调用运行的 Java Application。不过这个方法有四个必要的声明条件:

4.只有一个String类型的数组当作参数。