实例理解抽象和封装

抽象和封装往往是相互关联的

封装:将实现的细节隐藏(从而无法访问和修改这些细节信息)就是封装。比如现在建立“公司”这个抽象数据类型,而公司的总资金和交易情况被封装在这个类的内部,我们无法直接访问和修改,只能调用公司这个类的查询资金方法,才能查看到公司资金。

过程抽象: 将多个部分整合成一个功能。比如抽象一个"打怪"函数:先拿起武器,再走到怪物面前,最后打它。将这些部分整合,就是抽象出了“打怪”这个函数。这其中用到了抽象也用到了封装,“打怪”这个函数是被抽象出来的,而前面的各部分过程都被封装起来了。

 数据抽象:将数据和这些数据操作抽象成新的数据类型。比如现在有“人”这个数据类型,我们再建立“超人”这个数据类型,它拥有人的全部特性,但是他多了一个飞行的函数,我们将“人”这个数据类型和飞行这个函数抽象成了“超人”这个新的数据类型。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
1.如何抽象出类 1.1 找简单名词 ----------发现类 1.2 找修饰性名词或形容词 ---------发现类的属性 1.3 找动词 ------------发现类的方法 1.4 事不关几,高高挂起 ---------------类的方法和属性只放需要的 1.5 谁最清楚,方法就放在这个类中 --------类的方法发现及放置 2.构造方法 constructor 2.1作用 对象初始化, 通俗地说就是给某些或全部属性赋初值 2.2特点 与类名相同,没有返回值 2.3 如果一个类没有写构造方法,系统会自动添加一个无参的空的构造方法 public Dog(){} 3.静态常量 static final 3.1.1 final 可以修饰类, 方法 , 变量 3.1.2 final 修饰变量的话说明这个变量是常量 3.2.1 static 可以修饰方法和变量 3.2.2 static 修饰变量的话说明这个变量是类变量 3.2.3 static变量(类变量) 用 类名.变量 或用 对象名.变量名 调用 3.2.4 实例变量 只能用 对象名.变量名调用 4.方法重载 overload 一个类中的几个方法名相同,参数列表不同 的情况 (部分内容还要和overwrite 对照讲解) 4.1 方法名相同,参数列表不同 4.2 与访问修饰符和返回值无关 5.封装 encapsulation (private, friendly, protected, public) 5.1 属性私有,通过getXXX()或 setXXX()方法来取值或赋值,在setXXX()方法中添加 代码进行控制 5.2 6.this 表示对象本身(部分内容还要和后面的super对照讲解) 7.八种原生数据类型 作为属性变量的时候 系统会自动赋初值,具体如下: byte 0 short 0 int 0 long 0 float 0.0 double 0.0 boolean false char 空格

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XFprog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值