本文为原创,如需转载,请注明作者和出处,谢谢!
大家也许都知道做工艺器或是工厂里做生产某些产品的模具模具。如做一个金属的五角星,只要将钢水罐到五角星的模具模具里就可以很容易地制做五角星。
我们也可以将类比喻成做五角星的模具。而生产出的一个个五角星就是一个个对象。 为了建立不同的对象(有的是金属的、有的塑料的,等等),可通过向模具里灌入不同的液态材料就可以制做。这也相当于向类的构造方法中传入不同的参数(相当于不同的液态材料)。
还有就是接口,如果说类是对象的抽象,那么接口就是类的抽象。
我们也可以将接口看成是制做这个五角星模具的规格列表(相当于接口中的抽象方法)。也就是说,只有这个模具(类)符合(实现)相应的规格(接口),才会成为制做五角星的模具模具。
哈哈,当然,这个使用模具生成五角星及其他产品的工厂可以看成是对象工厂。
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->
classObjectFactory
{
publicstatic五解星create五角星(){}
publicstatic圆create圆(){}
publicstatic椭圆create椭圆(){}
}
也就是说,类和接口都不是实际的产品,都不能拿来用,类相当于模具(没人会拿模具模具在商店里卖吧,估计只有对象工厂会买),而接口只相当于制做模具的规
格列表,如尺寸、角度等。而这些规格列表的内容需要在具体类中实现才可能成为具体的模具,如长度和宽度,如果在类中实现为长度等于宽度,那么这个类就成为
一个成方形的模具,如果长度不等于宽度,就是一个长方形的模具。然后再实例化这个模具(类),就生成出一个个正方形或长方形对象。
在面向对象理论中还有一个抽象类,这个抽象类其实就相当于一个半成品的模具。如只实现在长度和宽度(相当于在抽象类中已实现的方法),并没有实现深度(这
个深度相当于抽象类中的抽象方法,这个抽象方法需要在抽象类的子类中实现)。所以这个模具就是半成品了。因此,是无法直接拿半成品的模具(抽象类)去生产
(实例化)产品(对象)的。
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!《银河系列原创教程》发布《Java Web开发速学宝典》出版,欢迎定购
分享到:
相关推荐
在这个“面向对象编程例子1”中,我们可以推测作者可能创建了一些类,比如一个基类(可能是抽象类或接口),然后定义了几个继承自该基类的子类。每个子类可能具有自己的特性和行为,展示了多态性的概念。同时,通过...
工厂方法模式进一步扩展了工厂模式的概念,它让子类决定实例化哪一个类,核心工厂类只提供创建产品对象的接口,而具体的创建工作由子类完成。在文中,作者以请MM去麦当劳吃汉堡为例,通过工厂方法模式,具体选择哪种...
8. **抽象类**:抽象类是不能实例化的类,它用于为其他类提供公共接口。它可以包含抽象方法,这些方法在抽象类中没有具体实现,需要子类来完成。 9. **继承层次结构**:在面向对象编程中,类可以通过继承形成层次...
DAO是一种设计模式,它为应用程序提供了一种抽象的接口,以便与数据库进行交互,同时避免了硬编码SQL语句和紧密耦合数据库细节的问题。在SSH框架中,Hibernate作为ORM(Object-Relational Mapping)工具,可以直接...
数据抽象是指在编程时对现实世界对象的简化表示,它将复杂的数据结构和操作隐藏在简单的接口背后。在C++中,数据抽象主要通过类(class)来实现。类定义了对象的状态(数据成员)和行为(成员函数),使得用户可以...
1. 创建型模式(Creational Patterns):如单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式,关注对象的创建过程,减少系统对具体创建对象的依赖。 2. 结构型模式(Structural Patterns):如适配器...
你可以看到如何通过构造函数初始化对象,以及如何使用抽象类和接口实现多态性。 3. **异常处理**:在Java中,错误通常通过异常来处理。源码会展示如何使用try-catch-finally语句块捕获和处理异常,以及如何定义...
3. **抽象工厂模式**:抽象工厂模式提供了一组用于创建相关或依赖对象的接口,而无需指定它们的具体类。这在处理跨平台或跨框架的对象创建时非常有用,因为抽象工厂可以确保所有创建的对象都属于同一“家族”。在C#...
- **纯虚函数与抽象类**:在涉及函数重载时,纯虚函数可以创建抽象基类,用于多态性。 通过深入理解和实践这些概念,你将能够更好地理解和应用C++中的函数调用和重载技术。同时,这个系列教程的持续更新意味着你将...
41-60.zip和61-80.zip可能涉及到更深入的面向对象编程,包括接口、抽象类、枚举以及反射等特性。81-101.zip则可能包含了一些高级话题,如Java Swing或JavaFX图形用户界面(GUI)开发,网络编程,或者是Java的IO/NIO...
2. **SL-120**:可能进一步深入到面向对象编程(OOP)的核心概念,如封装、继承、多态性,以及接口和抽象类的使用。此外,可能还涉及异常处理和集合框架(如ArrayList,LinkedList,HashMap等)。 3. **SL-285**:...
首先,这个分页类可能需要与不同的数据库系统兼容,如MySQL、PostgreSQL、SQLite等,因此它可能使用PDO(PHP Data Objects)作为数据库抽象层,提供统一的接口来执行SQL语句。通过PDO,类可以动态构建分页所需的SQL...
Java通过接口(interface)和抽象类(abstract class)来实现多态。 4. **类与对象**:类是对象的模板,描述了一组具有相同特征和行为的对象。对象是类的实例,通过`new`关键字创建。 5. **接口**:Java中的接口是...
- 掌握构造函数、重载与重写、抽象类和接口的区别与使用场景。 - 理解访问修饰符(public, private, protected, default)的作用和限制。 2. **内存管理与垃圾回收**: - 了解堆和栈内存的区别,以及对象在内存...
5. **面向对象编程**:游戏中的每个实体(坦克、炮弹、障碍物)都可以被抽象为类,这些类之间可能存在继承关系,以实现代码重用和结构化设计。 6. **数据结构与算法**:游戏状态的管理,如坦克的位置、生命值、得分...
JavaParser类是用于演示如何使用JDK的内部编译API来解析Java源代码的示例。...尽管使用起来有一定的挑战性,但通过`JavaCompiler`及其相关类,我们可以直接操作Java源代码的抽象语法树,从而实现更复杂的代码处理任务。