Java中Account作为类属性类型的原理及Customer类属性疑问
Java自定义类作为属性类型的核心解释
为什么Account能作为属性类型?
Java里的类型分两种:
- 基本类型:
int、double这类,用来存储简单数值 - 引用类型:除基本类型外的所有类型,包括内置的
String、ArrayList,还有你自己编写的自定义类(比如Account)
自定义类本质就是一种引用类型,和String没有本质区别——你能写String name声明属性,自然就能写Account savingsAccount,这是Java面向对象的核心特性:用类抽象现实事物,再通过类的实例表达事物间的关联关系。
为什么用Account而不是String?
你说的“客户拥有账户”逻辑,用String根本没法完整表达:
- String只能存一段文本,比如
String accountType只能记录“储蓄”或“贷款”,但账户还有余额、交易规则等数据,总不能每个数据都单独用一个变量存储吧? - 而Account类封装了账户的所有属性(
type、balance)和可能的行为(比如存款、取款方法),用Account savingsAccount作为属性,相当于把整个账户的信息和功能都绑定给了Customer对象,你可以直接通过savingsAccount.getBalance()获取余额,savingsAccount.deposit(500)完成存款,这才是贴合现实业务的代码逻辑。
关于Customer类的属性部分
Customer类的属性是用来描述一个客户的全部特征:
- 比如
String customerName存客户姓名、long customerId存客户ID,这些是客户自身的基础信息 - 而
Account savingsAccount是客户的关联信息——现实中客户会持有账户,代码里就用Account类型的属性对应这个关联,把“客户”和“账户”的关系直接用代码结构体现,让代码逻辑和现实业务逻辑完全匹配,可读性和维护性更强。
内容的提问来源于stack exchange,提问作者Mehedee Hossain
相关产品推荐
相关产品推荐

