面向对象-编程思想
面向过程
先考虑事物的发展顺序
面向对象
先考虑事物中存在的对象,再建立对对象与对象之间的关系
类
概念:将多个对象的共同点,向上抽取形成的概念就称为类
如何创建一个类?
语法
访问权修饰符 class 类名{
}
类名:符合大驼峰命名法,做到见名知意
类中有什么?
属性(成员变量)
概念:描述对象静态特征的变量
语法:
访问权限修饰符 数据类型 属性名;
定义位置:
类中方法以外
构造函数(构造方法)
概念:用于创建该类对象
语法:
访问权限修饰符 类名(形参列表){
方法体
}
定义位置:
类中方法以外
注意:1、构造函数只能使用new关键字调用
2、如果该类没有构造函数,系统会默认提供一个无参函数
方法(函数,成员方法,成员函数)
概念:用于描述对象的动态特征
语法:
访问权限修饰符 修饰符 返回值类型 方法名(形参列表){
方法体
return xxx;
}
定义位置:
类中方法以外
方法名:自定义,符合小驼峰命名法
代码块
概念:一个可以容纳一段代码的容器
语法:{
}
定义位置:
类中方法以外:创建该类对象时调用
类中方法以内:调用所在方法时调用
静态代码块
概念:用static修饰的代码块
语法:
static {
}
定义位置:
类中方法以外:jvm加载该类时调用
对象
概念
生活中:真实存在的事物就是对象
代码中:使用代码模拟生活中存在的对象
万事万物皆对象
如何创建一个对象
语法:
数据类型 对象名 = new 类名(实参列表);
此步骤做了什么?
1、在堆内存中新开辟了一片 空间
2、给对象的属性赋初值
3、执行构造函数的代码
4、将栈中引用至新开辟的堆内存中
本质:调用本类中的构造函数
注意:调用构造函数时,传入的实参列表要与构造函数中定义的形参列表
长度一致
顺序一致
数据类型一致
如何使用对象调用属性
对象名.属性名(实参列表) ; 该对象的属性值
对象名.属性名(实参列表)= 值; 给该对象属性设置值
如何使用对象调用方法名
对象名.方法名(实参列表);
注意:在本类中可以用this代表本类对象,this此时可以忽略不写
类与对象的关系
1、先有类后有对象
2、一个类可以创建无数个对象,每个对象都有其独立的属性
this关键字
概念:谁调用this所在的方法,this就代表谁
使用情况:
1,局部变量与成员变量重名
如果不区分,默认使用就近原则,使用局部变量
this.变量名:表示成员变量
变量名:局部变量
2,调用本类其他构造函数
注意:只能在构造函数第一行调用
语法: this(实参列表);
3,调用本类属性或方法
语法: this.属性名; 或 this.方法名(实参列表);
注意:可以忽略this不写