------- android培训、java培训、期待与您交流! ----------
1、理解面向对象
面向对象是相对面向过程而言,面向对象和面向过程都是一种思想。面向过程强调的是功能行为,面向对象时将功能封装进对象,强调具备了功能的对象。面向对象是基于面向过程的。
2、面向对象的特点
是一种符合人们思考习惯的思想,可以将复杂的问题简单化,将程序员从执行着转换成了指挥者,完成需求是时,先要去找具有所需的功能的对象来用,如果该对象不存在,那么创建一个具有所需功能的对象,这样简化开发并提高复用。
3、面向对象开发,设计,特征
开发的过程其实就是不断地创建对象,使用对象,指挥对象做事情。设计的过程就是在管理和维护对象之间的关系。面向对象特征:封装,继承,多态。
4、类与对象关系
类是用来描述对象的。由于对象是虚拟出来的东西,是看不见摸不着的,我们需要在程序中使用对象,就需要用一种方式来描述对象,然后根据这个描述来创建对象。
对象是类的实例,类是对象的抽象。
5、定义类
将一系列特征相似的对象的共同特征及行为抽取出来进行描述,写在一个class中,用成员变量描述对象的特征,用成员方法来描述对象的行为。
6、成员变量与局部变量
成员变量:成员变量定义在类中,在整个类中都可以被访问。成员变量随着对象的建立而建立,存在于对象所在的堆内存中。成员变量有默认初始化值。基本数据类型初始化值为0,引用数据类型初始化值为null。
局部变量:只定义在局部范围内,如:函数内,语句内等。存在于栈内存中。作用的范围结束,变量空间会自动释放。没有默认初始化值。
7、创建对象与对象的使用
使用new关键字和指定类名来创建一个对象。Person p = new Person();
这句话先在堆内存中创建了一个对象,然后栈内存中创建一个变量引用了对象的地址。
当我们创建对象之后可以使用点语法来访问对象的属性和方法。
8、匿名对象
我们可以不定义变量引用对象,使用new关键字创建对象后直接使用,这样的对象没有名字,所以叫匿名对象。匿名对象因为没有任何引用到达,在使用一次之后即成为垃圾。
通常我们需要使用一个对象且只使用一次的时候,就可以使用匿名对象。比如将对象作为一个参数传递给另外一个函数。
9、封装
定义:封装是指隐藏对象的属性和一些实现细节,仅对外提供必须的访问方式。
怎么封装: 将属性隐藏,提供公有方法对其访问。将不需要对外提供的方法隐藏。
好处:提高安全性:在访问对象的属性时候通过方法实现,在方法中可以进行校验。隐藏不必要提供的方法避免错误的调用。简化编程:使用者无需关心对象内部具体实现细节,只要根据对象功能调用指定方法。
10、private关键字
是一个权限修饰符,用于修饰成员(成员变量和成员函数),被私有化的成员只在本类中有效。对外提供对应的set、get方法对其进行访问,提高对数据访问的安全性。
私有只是封装的一种表现形式
11、构造函数
特点:函数名和类名相同。没有返回值类型。注意:没有返回值类型不等同于void,void也是一种返回值类型。不能使用return关键字返回任何值。在使用new关键字创建对象之后自动调用。
作用:给对象进行初始化。
多个构造函数以重载的形式存在。每一个类都有构造函数,即使我们没有显式定义构造函数,也会生成一个默认无参的构造函数,其中没有任何内容。注意:这个自动生成的构造函数只在未定义任何构造函数时生成,如果我们定义了一个有参的构造函数,那么就不会生成无参的了。
访问权限:在定义构造函数时,如无特殊需要,应使用public关键字修饰构造函数。在一些特定情况下,我们不想让别人创建该类对象,那么可以使用private修饰构造函数,例如单例设计模式。
12、this关键字
特点:this代表其所在函数所属对象的应用。this代表本类对象的引用。当在函数内需要用到调用该函数的对象时,就用this。
方法中局部变量和成员变量重名,我们想调用成员变量时就可以使用this.变量名形式访问成员变量。
在方法中要将调用该方法的对象作为参数传递给另一个方法时,可以将this作为实参传给该方法。
在内部类中访问外部类的成员时,需要使用外部类名.this.成员名形式访问。
this语句在构造函数的调用:构造函数可以在该类其他构造函数的第一个语句使用this关键字调用。this语句只能定义在构造函数的第一行。因为初始化要先执行。