黑马程序员-面向对象

来源:互联网 发布:prezi中文版下载 mac 编辑:程序博客网 时间:2024/05/24 03:44

----------------------android培训、java培训、期待与您交流! ----------------------

一、面向对象的概述:

面向对象是相对面向过程而言,面向对象和面向过程都是一种思想,面向过程强调的是功能行为;面向对象将功能封装进对象,强调具备了功能的对象;面向对象是基于面向过程的。它将程序员从执行者转换成了指挥者。在完成需求时:先要去找具有所需的功能的对象来用。如果该对象不存在,那么创建一个具有所需功能的对象。这样简化开发并提高复用。开发的过程:其实就是不断的创建对象,使用对象, 指挥对象做事情。设计的过程:其实就是在管理和维护对象之间的关系。面向对象有三大特征:封装,继承,多态。

1、对面向对象的理解:

1)面向对象是相对面向过程而言的,且基于面向过程的。

2)面向对象是一种思想。

3)面向对象将功能封装进对象中,强调了具备功能的对象,主体是对象,将过程简化

4)在实际开发中,以对象为核心,先明确好对象,在实现具体功能,或者可是使用已有的对象。

5)面向对象的三个特征:封装性,继承性,多态性。

2、举例说明:

人是一个对象,人有吃饭,睡觉以及学习等等的行为(可称为功能),那么就是将吃饭、睡觉以及学习等功能封装进人这个的事物中,让人去执行这些功能,是人在调用这些方法,从而简化了过程。


二:  类与对象


一、类与对象概述

1、

类就是对现实生活中事物的描述

对象就是这类事物,实实在在存在的个体

2、例如:汽车的设计

类:指的是汽车的设计图纸

对象:指实际生产出来的汽车。

二,成员变量和局部变量

1)作用范围:

   a.成员变量:作用于整个类中

   b.局部变量:作用于函数中,或者作用于语句块中。

2)在内存中的位置:

   a.成员变量:在堆内存中,因为对象的存在才在内存中存在。

   b.局部变量:在栈内存中,随着函数的结束而消亡

3)初始化方式:

   a.成员变量:随着类的初始化而初始化,在堆内存中被加载,有默认值,可直接参与运算

   b.局部变量:随着方法的加载而加载进栈内存中,无初始化值,必须被初始化才能参与运算

三、匿名对象

1、简述:所谓匿名对象,就是创建的对象没有名字,直接使用。

2、使用方式:

1)使用方式一:当对对象的方法只调用一次时,可以使用匿名对象来完成,这样写比较简化。

      如果对一个对象进行多个成员调用,必须给这个对象起个名字

2)使用方式二:可以讲匿名对象作为实际参数进行传递,从而可以不用在main方法中创建一个变量,提高了编程效率,减少了代码书写。

      但是这个对象实体在方法结束后,垃圾回收机制会将其作为垃圾回收。而非匿名对象则不同,当不使用了,会在某一时刻被回收,或是随着主函数的结束而被回收。

三:封装
一,概述
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:
1)将变化隔离。
2)便于使用。
3)提高重用性。
4)提高安全性。
封装原则:
1)将不需要对外提供的内容都隐藏起来。
2)把属性都隐藏,提供公共方法对其访问。
二、private 关键字
是一个权限修饰符。
用于修饰成员(成员变量和成员函数)
被私有化的成员只在本类中有效。
常用之一:
将成员变量私有化,对外提供对应的set ,get方法对其进行访问。提高对数据访问的安全性。
构造函数
特点:
1.函数名与类名相同
2.不用定义返回值类型
3.没有具体的返回值。
作用:
给对象进行初始化。
注意:
1.默认构造函数的特点。
2.多个构造函数是以重载的形式存在的。
this关键字
1)特点:this代表其所在函数所属对象的引用。
换言之:this代本类对象的引用。
2)什么时候使用this关键字呢?
当在函数内需要用到调用该函数的对象时,就用this。
•局部变量隐藏全局变量
•比较人年龄的大小
•构造函数中用
static(静态)关键字
static关键字:
用于修饰成员(成员变量和成员函数)
被修饰后的成员具备以下特点:
随着类的加载而加载
优先于对象存在
被所有对象所共享
可以直接被类名调用
使用注意
静态方法只能访问静态成员
静态方法中不可以写this,super关键字
主函数是静态的
                                           ----------------------android培训、java培训、期待与您交流! ----------------------