首页 / JAVA / Java面向对象(基础篇)
Java面向对象(基础篇)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java面向对象(基础篇),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3507字,纯文字阅读大概需要6分钟。
内容图文
面向对象的概念
面向过程:
- 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象
- 面向对象是把构成问题事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
面向对象的三大特征:
- 封装 (Encapsulation)
- 继承 (Inheritance)
- 多态 (Polymorphism)
面向对象的思想
买电脑(组装机)
先使用面向过程说明买电脑这件事:假如我们需要买组装电脑,这时首先会在网上查询具体每一个硬件的参数和报价。然后会去电脑城进行多家询价,接着询价结束后回家根据具体的结果分析出自己比较满意的哪家报价,接着会到这家店里进行组装,组装时还需要进行现场监督,组装完成安装相应的系统,然后电脑抱回家。
分析上述整个过程大体分一下几步:上网查询参数和报价、电脑城询价、现场安装和监督、抱电脑回家。在整个过程中我们参与了每一个细节,并且会感觉相当累。
使用面向对象说明买电脑这件事:假如我们需要买组装机,这时应该找一个懂电脑硬件的人,让他帮我们查看参数和报价,并进行询价和杀价,以及现场组装监督。而我们自己并不需要亲历亲为具体怎么做,只要告诉这个人我们想要的具体需求即可。
分析上述整个过程,发现瞬间变的十分轻松,只要找到懂电脑硬件的这个人,我们的问题都可以解决。并且在这个过程中我们不用那么辛苦。
面向对象特点
封装
-
指能够把一个实体的信息、功能、响应都装入一个单独的对象中的特性 封装允许类的客户不必关心类的工作机理就可以使用它。
-
就像驾驶员不必了解发动机的工作原理就可以驾驶汽车一样,类的客 户在使用一个类时也不必了解它是如何工作的,而只需了解它的功能 即可
-
所有对数据的访问和操作都必须通过特定的方法,否则便无法使用,从而 达到数据隐藏的目的
继承
- 继承的方法允许在不改动原程序的基础上对其进行扩充,这样使得原功能得以保存,而新功能也得以扩展。这有利于减少重复编码,提高软件的开发效率
多态
- 多态性描述的是同一个消息可以根据发送消息对象的不同采用多种不同的 行为方式
- 前提:面向对象中的多态
三个条件:
- 子类继承父类,子类覆盖父类,父类指向子类
面向对象好处
通过生活中的真实场景使用面向对象分析完之后,我们开始分析面向过程和面向对象的差异做出总结:
- 面向对象思维方式是一种更符合人们思考习惯的思想
- 面向过程思维方式中更多的体现的是执行者(自己做事情),面向对象中更多的体现是指挥者(指挥对象做事情)。
- 面向对象思维方式将复杂的问题简单化。
好处:
重用性、扩展性、易于维护
面向对象编程更符合人类的思维习惯,容易理解
堆区:
1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)
2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 。
栈区:
1.每个线程包含一个栈区,栈中只保存基础数据类型的值和对象以及基础数据的引用
2.每个栈中的数据(基础数据类型和对象引用)都是私有的,其他栈不能访问。
3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
方法区:
1.又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的类信息、常量和static变量。
2.方法区中包含的都是在整个程序中永远唯一的元素,如类信息,static变量
分析以下代码内存结构
Person p1 = new Person();
P1.name =“张三”;
p1.age = 23;
Person p2 = new Person();
p2.name = “李四”;
Person p3 = p1;
成员变量和局部变量的区别
回忆以前学习变量时的定义方式和定义位置,以及现在定义类中属性的特点。总结下面几点异同:
定义的位置不同
- 定义在类中的变量是成员变量
- 定义在方法中或者{}语句里面的变量是局部变量
在内存中的位置不同
- 成员变量存储在堆内存的对象中
- 局部变量存储在栈内存的方法中
生命周期不同
- 成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失
- 局部变量随着方法的运行而出现在栈中,随着方法的结束而从栈中消失
初始化不同
- 成员变量在堆内存中,有默认的初始化值
- 局部变量没有默认的初始化值,必须手动的给其赋值才可以使用
使用权限修饰符不同
- 成员变量可以使用权限修饰符来修饰访问权限:private 缺省 protected public
- 局部变量没有权限修饰符
结束语
白白啦~~
内容总结
以上是互联网集市为您收集整理的Java面向对象(基础篇)全部内容,希望文章能够帮你解决Java面向对象(基础篇)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。