一.面向对象:
1.是一种思想,将复杂的问题变简单
2.角色转变:执行者变成指挥者
3.面向对象是相对面向过程而言
4.面向过程和面向对象都是一种思想
5.面向过程:强调的是功能和行为
6.面向对象:将功能封装进对象,强调具备了功能的对象
7.面向对象是基于面向过程的
8.写程序:先面向对象,再看具备什么功能封装进去。先找Java当中是不是已经提供好相对应的对象,如果没有
创建对象,封装功能,大家都可以用。
9.面向对象三个特征:封装,继承,多态
二.类与对象的关系:
1.类就是对现实生活中事物的描述
2.对象就是这类事物的实实在在存在的个体,描述在JAVA中通过类的形式体现
3.对象在JAVA中通过一个new操作符产生的实体,在堆内存中,映射到Java中,描述就是class定义的类
4.堆内存:实体存储,放在堆。
5.描述事物;实际就是属性和行为
6.属性对应类中的变量,行为对应类中的函数(方法)
7.定义类,就是在描述事物定义属性和行为,属性和行为共同成为类中的成员(成员变量,成员函数)
对象.对象成员
三.成员变量和局部变量:
1.作用范围:成员变量作用于整个类中,局部变量作用于函数中,语句中(for循环)
2.在内内存中的位置:成员变量在堆内存中因为对象的存在,而局部对象存在于栈内存中
四.匿名对象(可提高编程效率,减少代码书写)
1.匿名对象是对象的简化形式
2.两种使用情况:1.当对对象方法仅进行一次调用的时候
3.匿名对象可以作为实际参数进行传递
四.封装
1.是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
好处:1.将变化隔离 2.便于使用 3. 提高重用性 4.提高安全性
原则:1.将不需要对外提供的内容隐藏起来 2.把属性都隐藏,提供公共方法对其访问
函数是java中最小的封装体
注意:私有仅仅是封装的一种表现形式
五.构造函数
特点:1.函数名与类名相同
2.不用定义返回值类型
3.不可以写return语句
作用:给对象进行初始化
细节:当一个类中没有定义构造函数时,那么系统就会默认给该类加入一个空参数的构造函数。
注意:(1)默认构造函数的特点
(2)多个构造函数是以重载的形式存在的
对象一建立就会调用与之相对应的构造函数,作用:给对象进行初始化
当在类中自定义了构造函数,默认的构造函数将没有了,如果没有,将默认空参数的构造函数
4.构造函数和一般函数在写法上有不同
(1)在运行上也由不同:构造函数是在对象一建立就运行给对象初始化
而一般方法是对象调用才执行,是给对象添加对象具备的功能
5.什么时候定义构造函数:分析事物时,该事物存在具备一些特性或行为,那将这些内容定义在构造函数中
六.构造代码块
1.作用:给对象进行初始化
对象一建立就运行,而且优先于构造函数执行
2.和构造函数的区别:
构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化
构造代码块中定义的是不同对象共性的初始化内容
七.this 关键字
1.看上去用于区分局部变量和成员变量同名的情况
this:代表一个本类的对象,到底代表哪一个呢?
this代表所在函数所属对象的引用 简单说:哪个对象在调用this所在的函数,this就代表哪个对象
2.this应用:当定义类中功能时,该类函数内部要用到调用该函数的对象时,这时用this来表示这个对象
构造函数间调用只能用this语句,而且this语句只能定义在构造函数的第一行。