Java的面向对象编程外文资料翻译
Java是一种面向对象编程语言,它支持类、对象、继承、多态性等面向对象的概念。面向对象编程是一种程序设计方法,它将程序看作是一组对象的集合,这些对象通过相互交互来完成任务。在面向对象编程中,每个对象都有自己的状态和行为,并且能够与其他对象进行交互。
继承是面向对象编程的一个重要概念,它允许一个类继承另一个类的属性和方法。通过继承,子类可以重用父类的代码,并且可以添加自己的属性和方法。Java中的继承是单一继承,也就是说每个类只能有一个父类。
多态性是另一个重要的面向对象编程概念。它允许不同的对象对同一个消息做出不同的响应。在Java中,多态性通过方法的重载和重写来实现。方法的重载是指在同一个类中定义多个同名但参数不同的方法。方法的重写是指子类覆盖父类的方法,使得子类对象可以调用父类的方法。
Java的面向对象编程具有很多优点,例如代码重用、可维护性、可扩展性等。它也有一些缺
点,例如性能问题和复杂性问题。然而,随着计算机硬件和软件技术的不断进步,这些问题已经得到了很好的解决。因此,Java的面向对象编程仍然是一种非常流行和重要的编程方法。
软件重用是一种节省程序开发时间的方法。它可以减少系统运行后可能出现的问题,并鼓励重复使用已经调试好的高质量的软件。这些都是令人振奋的可能性。
多态性是一种强大的技术,它允许我们用统一的风格编写程序,来处理多种已存在的类和特定的相关类。通过利用多态性,我们可以方便地向系统中添加新的功能。
继承和多态是解决软件复杂性的有效可行的技术。当创建一个新的类时,程序员可以指定新的类继承已定义的超类的实例变量和实例方法,而不用完整的写出新的实例变量和实例方法。这个新的类被称为一个子类。每个子类本身将来亦可有新的子类,而其本身将成为父类。
Java不支持多重继承,但它支持接口的概念。接口可以使Java实现许多通过多重继承才能实现的优点而没有关联的问题。在本章中,我们将讨论接口的详细内容,并给出创建和使用接口的一般规律和具体实例。
一个子类通常添加自己的实例变量和自己的实例方法,因此子类通常比父类大。一个子类比它的父类更具体并且代表一组更小、更专业的对象。通过单一继承,子类在开始时拥有父类的所有特性。继承性真正的力量在于它可以在定义子类时增加或取代从超类中继承来的特征。
每个子类对象也是该类的父类的对象。例如,每一个我们所定义的小程序被认为是类JApplet的对象。此外,因为Japplet继承了Applet,每一个我们所定义的小程序同时也被认为是一个Applet的对象。这些信息对于开发applets非常重要,因为一个小程序只有当它是一个Applet才可以执行一个程序。
虽然子类对象始终可以作为它的父类的一种来看待,父类对象却不被认为是其子类类型的对象。我们可以利用这种“子类对象是父类对象”的关系来执行一些强大的操作。例如,绘图程序可以显示一系列图形,如果所有的图形类型都直接或间接地继承同一超类,绘图程序就可以将所有图形存储在一个超类对象数组或其他数据结构中。
我们还可以使用protected访问来控制成员的访问。由同一个包中子类和其他类的方法组成的父类可以访问受保护的父类的成员。
实践经验表明,处理代码的重要部分涉及到与案例的密切相关性。设计人员和程序员往往专注于特定案例,难以看到整个系统的“大局”。面向对象编程提供了“透过树木见森林”的几种方法,使得程序员和设计人员能够专注于系统中对象的共性而不是特定实例,这种方法叫做抽象。
有趣的java小程序当一个程序性方案有许多密切相关的案例时,常用到switch交换结构或嵌套的if/else结构来区分众多的案例并提供独立处理各个案例的逻辑。然而,可以使用继承性和多态性以更简单的逻辑来代替switch结构。我们区分“is a”关系和“has a”的关系。“is a”就是继承。在“是”关系中,子类类型的对象也可以被看作是它的父类型的对象处理。“有”是一种构成。在“有”关系中,一个类对象有一个或多个其它类的对象作为成员。例如,车有方向盘。子类的方法可能需要确切访问它的父类的实例变量和方法。
在Java中,子类不能访问其父类的私有成员,因为这违背了父类的信息隐蔽原则。然而,子类可以访问它的父类的public成员和protected成员。如果子类和父类在同一个包中,子类也可以使用它的程序包访问父类成员。如果超类不允许通过继承产生的子类访问它的某些成员,则需要用private声明成员。子类只可以通过公有继承、受保护继承和程序包借助父类提供的继承到子类中的方法声明对父类中私有成员的改变。
继承会带来的问题是,子类会将一些没必要继承或不该继承方法也继承过来。类的编写者应确保由类提供的功能对未来的子类是适用的。即使父类的方法对子类适用,子类也可以使该方法来完成特定于子类的方式的任务。在这种情况下,子类可以覆盖超类的方法,以提供一种合适的实现。
一个新类可以从丰富的类库中继承,比如Java API提供许多类。一些组织开发自己的类库的同时还可以利用现有的全球其他库的优势。总有一天,大多数的软件可以通过可重用的标准化的组件来构建,就像现在制造硬件一样。这将有助于面对开发我们将来可能需要的更加强大的软件的挑战。
我们经常会面临这样的问题:一个类的对象同时“是”另一个类的对象。例如,矩形肯定是四边形(正方形、平行四边形和梯形都是如此)。因此,Rectangle类可以说是从Quadrilateral类继承而来的,Quadrilateral类是父类,Rectangle类是子类。尽管矩形是特殊的四边形,但不能说四边形就是矩形(因为四边形可能是平行四边形)。
继承通常可以产生比其父类具有更多功能的子类,因此父类和子类的概念很容易混淆。然而,我们还有一种更好的方法来区分这两个概念。因为每个子类对象也“是”其父类的对象,
而一个父类又可以有很多子类,那么由父类所代表的一组对象通常比由该对象的任何子类所代表的要大得多。例如,Vehicle超类包含了所有的交通工具,如汽车、卡车、船、自行车等。而Car子类仅表示交通工具Vehicle中的一个小子集。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。