前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java--类和对象之基础知识

Java--类和对象之基础知识

作者头像
SuperHeroes
发布2018-05-22 16:07:27
3370
发布2018-05-22 16:07:27
举报
文章被收录于专栏:云霄雨霁云霄雨霁

Java作为面向对象程序设计语言的特点:

  • 所有东西都是对象
  • 程序是一大堆对象的组合
  • 每个对象都有自己的存储空间,可容纳其它对象----封装
  • 每个对象都有一种类型----class
  • 同一类对象能接收相同的消息----可替换

对象封装数据,并提供“接口”接收对数据的操作。对象的类型(class)规定了接口的形式。

对象的”接口“规定了对一个特定对象发送那些请求,然而在某些地方一定存在一些代码实现这些请求。这些代码和隐藏起来的数据则是”隐藏的实现“。

设置类边界(三个显式关键字,一个隐式关键字):

  • public: 任何人都可以访问,一般用来声明对外接口方便客户程序员使用。
  • private:除本类型的内部函数成员外都不可以访问。
  • protected: 涉及”继承“的概念,继承中的子类可以访问父类的protected成员。
  • friendly:  缺省时默认,涉及”封装“的概念,同一个包(Package)内可以访问。

组合(组织、包含):在现有类的基础上组织一个新类(现有类作为新类的一个成员对象),通常将现有类设置为”private“。对象的组合具有极大的灵活性,一般要先考虑组合实现,然后再考虑继承。

继承:衍生类具有和基础类相等的数据类型(掌握这种等价关系)。使用继承相当于创建了一个新类,该类不仅有现在的所有成员,还复制了基础类的接口。可向基础类发送的消息都可以发送给衍生类对象。

动态绑定:可将新类型替换为基础类型。如:

代码语言:javascript
复制
void doStuff(Shape s) {
 s.erase();
 // ...
 s.draw();
32
}
//Circle,Triangle,Line继承自Shape
Circle c = new Circle();
Triangle t = new Triangle();
Line l = new Line();
doStuff(c);
doStuff(t);
doStuff(l);

重写和重载:方法头完全一致是重写,方法头中参数有差别是重载。

抽象类:关键字abstract. 不希望实际创建基础类的对象,只是为衍生类提供一个接口。可以实现方法也可以不实现方法。

接口:完全禁止所有函数的定义。

Java中类只能单继承,可以保证父子类同属于一种类型,接口可以多继承。

每种非基本类型的对象都有一个 toString()方法。若编译器本来希望一个String,但却获得某个这样的对象,就会调用这个方法。

对象的存储

Java程序运行时,对象是怎么存储的?内存怎么分配?有五个地方可以存储数据(具体情况--Java虚拟机:内存区域划分):

  • 寄存器:这是最快的存储区,位于CPU内部,寄存器根据需求自动分配,程序员不能直接控制,在程序运行时也感觉不到寄存器的存在;
  • 堆栈:位于RAM中,但通过堆栈指针可以从CPU获得直接支持。堆栈指针向下移动则分配新的内存,向上移动则释放内存。这种方法快速有效,仅次于寄存器。为了上下移动指针,创建程序时Java系统必须知道存储在堆栈中所有项的具体生命周期。在程序中,对象的引用存储在堆栈,但Java对象并不存储在这;
  • 堆:一种通用的内存池,用于存放所有的Java对象。编译器不需要知道存储在堆中的数据的生命周期。堆的效率比堆栈低;
  • 常量存储:常量值通常直接存放在常量内部,有时嵌入式系统会把常量和其他部分分隔开,这时选择将其存放在ROM中;
  • 非RAM存储:如果数据完全存活于程序之外,不受程序控制程序结束也会存在(如文件),那么数据就可以存放在磁盘上或数据库中。

下一篇:类和对象之句柄和作用域

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对象的存储
  • 下一篇:类和对象之句柄和作用域
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档