java面向对象的三大特性(一)
终于学完了java中一个重量级的知识——面向对象!可能初学者不会深刻的体会到面向对象思想在java中的真正分量,可以说,面向对象思想一直贯穿于整个java编程体系中,是java的灵魂,因为java本身就是一门面向对象的编程语言!虽然自己以前学过两年多的java,但是很多基础性的概念掌握的也不是很好,并且后来一直搞JSP web开发,时间久了,很多知识点都模糊了。为了参加黑马,为了以后找到更好的工作,更为了进一步提升自己的水平,所以又用将近半个月的时间重新看了一遍那些视频,包括基础的,高新的和两个项目案例!整套视频看下来,感觉真的受益匪浅,不仅重新复习、巩固了以前学过的知识点,并且又学到了很多自己以前没学过的新知识!下面是我复习过视频之后,根据视频、课本等资料,还有自己的理解,整理并总结的一些知识点,在此与大家分享交流一下!
一. 如何理解对象?
对象表示现实世界中的实体,我们看到的每个东西都是一个对象,也就是我们常说的“万物皆对象”!因此对象都应该有自己的状态和行为,对象的状态就是现实世界中对应实体的属性特征,对象的行为就是现实世界中对象实体能够执行的动作。对象的状态被存储在一些变量里,而对象的行为通过方法来实施!因此,对象就包括属性和方法两种特征,它们共同组成了实体对象,相辅相成,不可分割,所以要想描述一个对象就必须就对象的属性和方法封装在一起。
二.面向对象的优点
a.面向对象程序设计能让我们使用“类”来更好的模拟现实世界中实体的特征和行为,也就是试图用软件对象去模拟现实对象,从而实现模拟现实世界;
b.对象的行为和属性都被封装在类中,外界通过调用类的方法来获得,无需关注类的内部如何实现,这样就隐藏了内部信息;
c.可以通过类的模板,创建很多个类的对象,增加了代码的复用性!
三.面向对象三大特性——封装、继承、多态
(一)、封装
a. 封装就是将属性私有化,提供公有的方法访问私有属性。具体做法就是:修改属性的可见性来限制对属性的访问,并为每个属性创建一对取值(get)方法和赋值方法(set),用于对这些私有属性的访问。
b.this关键字
this是在对象内部指代自身的引用,this可以直接引用自身对象,但凡本类功能内部使用了了本类对象,都用this表示,解决了实例变量和局部变量之间重名而引发的冲突;this语句(this();)用于构造函数之间进行互相调用,只能定义在构造函数的第一行,因为初始化要先执行。
c.private关键字
权限修饰符:用于修饰类中的成员(成员变量,成员函数)。私有只在本类中有效。私有仅仅是封装的一种表现形式。变量一旦被私有化,其他类都不能直接访问这些属性,只能通过这些属性的取值、赋值方法来访问。
d.封装的好处
1.实现了对属性数据的数据访问权限的限制;
2.避免了大规模的修改,增强了程序的可维护性。
e.构造方法
构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值,使用new关键字实例化一个对象其实就是调用这个对象的构造方法。
构造方法中方法名必须与类名相同,并且没有返回值类型!
在使用带参数的构造方法实例化对象时,传递的值和构造方法的参数必须要在个数、次序和数据类型上相匹配。
f.方法重载
如果两个方法名相同,但参数项不同,那么一个方法就是另一个方法的重载形式。构造方法的重载就是一个典型的特例,一般我们可以通过重载构造方法完成对象的多种实例化行为。