面向对象
什么是面向对象?
- 面向对象是一种编程方法
- 面向对象是一种思维方式
- 面向对象不是一种编程语言
应该如何学习面向对象?
- 掌握一门面向对象语言的语法
- 掌握面向对象的思维方式
- 熟悉面向对象设计原则
- 掌握面向对象设计模式
什么是面向对象的思维方法?
- 首先确定谁来做,其次确定怎么做
- 首先考虑整体,其次考虑局部
- 首先考虑抽象,其次考虑具体
类和对象
类
什么是类
类是对一系列拥有共同特征(属性,行为)的对象的抽象。
类是一个模板,它描述一类对象的行为和状态。创建类的方法
class 类名{
属性;
方法;
}- 属性即成员变量,主要描述类的状态
- 方法即成员方法或成员函数,主要描述类的行为
e.g.
class Person{
String name;
int age;
void talk(){
System.out.println("我的名字是" + name + "今年" + age);
}
}
- 类的变量
- 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
- 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 静态变量:类变量也声明在类中,方法体之外,需要static修饰。
对象
对象
对象是类的一个实例,有状态和行为。创建对象的方法
类名 对象名 = new 类名();- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字new来创建一个对象。
- 初始化:使用new创建对象时,会调用构造方法初始化对象。
e.g.
Person p1 = new Person();
对象的数据类型
引用数据类型对象和对象的引用
Person p1 = new Person();
Person p1 :创建一个Person 的引用,存入栈,
new Person():创建一个Person 的对象,存入堆。
= :将创建的Dog对象赋值给创建的引用。
对象的使用
对象的使用方法
- 对象.变量
p1.name;
面向对象中所有变量,函数都是有所属的,张三的年龄
- 对象.函数()
p1.talk();
3 匿名对象
可以不定义对象的引用名称,而直接调用这个对象的方法,这样的对象叫做匿名对象。
new Person().talk;
匿名对象是一次性的,使用过后无法再使用。
构造函数
- 构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。构造函数不算成员函数。
- 构造函数语法特征:
- 没有返回值类型的定义
- 名字与类名相同
- 在没有定义时编译器自动构建一个无参的构造函数