8.面向对象基础
1.什么是面向对象
2.应该如何学习面向对象
3.面向对象的思维方式
什么是面向对象
1.面向对象是一种编程方法;与之对应的是面向过程的编程方法
2.面向对象是一种思维方式; 和现实生活中的思维方式一样
3.面向对象不是一种编程语言;
应该如何学习面向对象
1.掌握一门面向对象语言的语法
2.掌握面向对象的思维方式
3.熟悉面向对象设计原则
4.掌握面向对象设计模式
面向对象的目标:消除应用程序中的重复代码
什么是面向对象的思维方式
1.首先确定谁来做,其次确定怎么做
2.首先考虑整体,其次考虑局部
3.首先考虑抽象,其次考虑具体
不要认为掌握了一门面向对象语言就是掌握了面向对象,习惯于将面向对象与现实世界做比较;
1.创建类的方法
2.创建对象的方法
3.对象和对象的引用
定义类的方法
class类名
{
属性;
方法;
}
·属性也叫成员变量,主要用于描述类的状态
·方法也叫成员方法,主要用于描述类的行为
生成对象的方法
格式:类名 对象名 = new 类名();
例如:Girl girl = new Girl();
对象属于引用数据类型
堆内存中存放对象对象本体
栈内存中存放对象的名字,对象的名字又叫“引用”
张三表示一个人的名字,张三名字就是张三本人的引用。
ZhangSan zhang =new ZhangSan();
前半部表示创建一个ZhangSan的引用,后半部表示创建一个ZhangSan的对象
赋值号就把ZhangSan这个对象赋给了ZhangSan的引用
这就是对象的创建
类和对象的关系
把一系列的对象的共同特征抽象出来成为了一个类
1.对象的使用方法;
2.多对象的创建方法;
3.匿名对象的创建和使用方法
对象的使用方法
使用对象调用变量和函数
1.对象.变量
2.对象.函数
只有一个对象和变量或函数连在一起才是有意义的
生成多个对象
Dog d1 = new Dog();
Dog d2 = new Dog();
见到几个new就会在堆内存中生成几个对象(伪),在栈内存中生成几个引用
匿名对象的使用
可以不定义对象的引用名称,而直接调用这个对象的方法。这样的对象叫做匿名对象,如:
new Dog().jump;
1.函数的重载
这些函数在同一个类中,这些函数函数名相同,这些函数参数不同
2.构造函数的作用
构造函数函数名和类名相同,构造函数没有返回值的定义,构造函数使用new来调用,没有构造函数会默认有一个参数为空的构造函数
面向对象三个重要特征
继承、多态、封装