Java面向对象设计最佳实践 - 类的设计基础知识

在开始类的设计之旅之前,首先引入一些基础知识,方便后续更详细的实践设计文章之理解,也是本章的主要内容。

Java作为“全面”支持面向对象编程(OOP)语言,其吸取了其他OOP(比如C++、Smalltalk语言等特性)的优点,提供了面向对象的四种基本性质: 抽象性 封装性 继承性 多态性

Java语言以"类(Class)"为基本单位(或者模块),按照成员划分,其主要组成部分为:字段(Field)、方法(Method),构造器(Constructor),其中,在Java 5发布之后,注解(Annotation)也加入了Class的大家庭之中。按照结构来划分,主要分为申明语句(Declaration Statement)和块(Block)。其中,申明语句,字段的申明和接口中方法和常量定义(这里和C语言说法有点不同)。块(Block)是执行大于零条的执行语句,块中的变量是本地变量(Local Variable)。分为命名块和非命名块。命名块是有名称的块,大致分为方法(Method)和构造器(Constructor)和内置类(Inner/Nested Class)。(类是也是一种块,不过层次不同。而内置类(Inner/Nested Class),笔者把其归为字段之中)。非命名块,顾名思义,大致有类(Static Block)块、实例(Instance Block)和匿名内部类(Anonymous Class)。这些信息保存在JVM中的方法区中。注意,泛型类型参数在运行时进行了擦写,因此是不可见的。

字段(Field),主要表示类或者对象(实例)的状态(引用或者原生类型),也可以称为“属性”。对于类的字段而言,类中的字段,其生命范围是类范围,这种类状态的持久到JVM退出或者ClassLoader重载其类定义。相反,对象字段,其关联的生命范围是对象(实例),每个对象字段的状态相对独立的,当对象(实例)消亡后,其状态不复存在。最后一种特殊状态字段是“常量”(static final修饰),其生命周期是在JVM的常量池。

方法(Method),命名的控制类或者对象的有状态或无状态的执行模块,可称作类或者对象的“行为”。按照生命范围来来划分,有类方法和对象(实例)方法。其中对象(实例)方法又可划分为抽象和具体(普通)方法。方法是实现多态的重要手段,注意方法本身没有状态。

构造器(Constructor),主要用于初始化对象(实例)状态字段,值得一提的是,在构造器中初始化类状态字段是一种相当坏的实践。

内置类,由三类组成,有作为实例部分的内置类(Inner Class)、隶属于类的内置类(Nested Class)和在块中定义的内置类(Local Class)。

类块(Static Block),也可称为静态块。仅仅可视本类的静态成员,其主要用作初始化类成员变量或常量,当ClassLoader加载该类的时候,其生命周期仅仅一次加载执行,先定义先执行的原则。

实例块(Instance Block),也叫做对象块。和类块类似,可视所有的本类和对象成员,其生命周期开始在构造器调用之前,先定义先执行的原则。

注解(Annotation),作为语言新功能添加到了Java 5 以后的版本。主要作为程序元信息配置和代码注解,提供了可读性和新的元信息配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值