摘要:介绍Java中对象、类、包、组件、容器、框架和架构等的基本概念,掌握这些概念对于学习Java web和日后工作大有裨益。
对象
对象(Object)是由类进行声明的,于是它就具有类所定义的特性了(属性和行为等)。这里讨论的对象不是找个男朋友或者女朋友。在Java的世界里,对象通过属性和行为来分别对应事物所具有的静态属性和动态属性。
对象是具体的,自身具有状态和行为,用于描述现实世界中实体。世间万物皆为对象,譬如猫、老虎和狼等就是动物类中的三个对象。
类
类(Class)是一个用于描述同一类型对象的抽象概念,是具有相同属性和行为的一组对象的集合(模板)。类是抽象的,不具体的,她把具有相同特征的事物归为一类,比如:猫、老虎和狼等都是动物,故把它们归为动物类。
类是对现实世界中的实体反映,或者说类是抽取了同类事物的共同属性和行为的对象(或实体)的一个模板。
类与对象的关系:类是对象的抽象,对象是类的实例。对象由属性和行为组成,属性是对象所具有的特征,而行为是对象可以做的动作。
包
包(package)的作用可以理解为windows系统用来分门别类的文件夹,一层套一层,故包主要用来提供一个组织和管理类的机制,并为包中的类提供一个命名空间。示例:
- model:模型层
- view:视图层
- controller:控制层
- servise:服务、业务层
- dao:持久层,用来和数据库沟通
组件
组件(component)也是抽象的概念,可以理解为一些符合某种规范的类组合在一起就构成了组件。她可以提供某些特定的功能,以J2EE为例,有什么servlet,jsp, javabean和ejb等,她们都是组件,但实际上她们都是类,只不过有她们特殊的规定。组件和类的关系:符合某种规范的类的组合构成组件。
举个例子,拿 JavaBean 对象是什么来说。下面给出的是 JavaBean 与其她 Java 类相比而言所具有的独一无二的特征:
- 所有的类必须声明为public class,这样才能够被外部所访问;
- 属性必须封装,即使用private声明;
- 必须编写属性对应的setter、getter方法;
- 至少存在一个无参构造方法;
- 需要被序列化并且实现了 Serializable 接口。
JavaBean也就是个类,她的属性可以是任意类型,并且一个JavaBean可以有多个私有属性。每个属性通常都需要具有相应的setter和getter方法,setter方法称为属性修改器,getter方法称为属性访问器。有了这些属性的类就是JavaBean了,如下代码所定义的类SimpleBean就是一个JavaBean:
package blog.test;
public class SimpleBean implements java.io.Serializable{
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
}
JavaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其她程序可以通过反射技术实例化JavaBean对象,并且通过反射那些遵守命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。
组件也可以理解为实现具体功能的类,例如上传下载组件,分页组件,日历组件等等,这些组件可以直接拿来使用,避免重复发明轮子。
容器
容器(Container)也叫做组件容器,她是一种比较特殊的组件,相当于把对象分门别类进行管理。我们可以把组件放在组件容器中,就像小学生分班,分学校一个道理。
框架
框架(framework)就是一组组件,供你按需组合完成系统构建。Java框架就是一些类和接口的集合,通过这些类和接口来完成一系列的程序实现。框架又叫做开发中的半成品,它不能提供整个WEB应用程序的所有东西,但是有了框架,我们就可以集中精力进行业务逻辑的开发而不用去关心它的技术实现以及一些辅助的业务逻辑。广为人知的Structs和MyBatis就分别是Web框架和数据库(持久层)框架的佼佼者。
通俗点讲,就像盖房子,开发商建造了很多相同的房子,这就是框架,而每个房间的布置需要业主自己装修。所以为了高效,开发商负责建造房子的主题结构,具体装修风格就看业主喜好了。
架构
软件架构描述的对象是直接构成系统的抽象组件。在实现阶段,这些抽象组件被细化为实际的组件,比如某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。
框架不是架构。架构确定了系统整体结构、层次划分,不同部分之间的协作等设计考虑。框架比架构更具体,更偏重于技术范畴。对于同一架构(比如Web开发中的MVC),可以通过多种框架来实现。
结束语
以上就是这篇文章的全部内容了,希望本文对大家的学习或者工作能带来一定的帮助,如有疑问请留言交流。Wiener在此祝各位生活愉快!工作顺利!