就像是一个执行者,强调什么人做的,把任务都分配给每
一个人,每一个人都完成一部分,注重谁来做,重在找“参与者”,强调具备功能的对象,以类/对象为最小单位。
什么是面向过程?(常见编程语言:C语言等等···)
对于简单的事情,就按照每一步具体的步骤来做,按照步骤一步一步往下做,重在过程,需要知道每一步怎么往下做,注重参与的过程。注重过程中的具体的行为,以函数为单位。
(面向过程-->面向对象)就是(执行者-->指挥者)的过渡。
类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。
自我理解:所有物体共同具有的特征,在程序中把每一个代码共有的东西都归纳到一起,叫做类;类的属性不是对象
类就是对对象向上抽取象的部分,形成类,类就是一个模板。
对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所以对象是一个具体的概念。
万事万物都是对象,对象是具体的事物,也是实物。
面向对象的三个阶段:
1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。
2,对象是类的一个具体。它是一个实实在在存在的东西。
3,类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。
4,对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。
方法名相同但形参列表不同(个数不同、类型不同、顺序不同),在调用方法时率先调用相同类型的数据类型,多个方法调用时,按照顺序调用(char,byte,short < int < long < false < double)。
在一个方法中调用自身的方法。
调用自身的方法,但必须要有结束条件语句,
定义该类或该类对象包含的数据或者说静态特征,当以对象的特性。作用范围整个类体。
定义格式:
【修饰符】+属性类型=【默认值】;
定义该类或该类实例的行为和功能的实现。方法是类和对象行为特征的抽象。
【修饰符】+方法返回类型+方法名(形参列表){
执行语句
}。void代表没有返回值。
方法的作用:重写代码,封装功能,便于修改。
成员变量:作用于整个类中的方法
成员变量在堆内存中
局部变量的作用时间:当前方法的执行到结束
局部变量放在栈中,栈中存在堆给的地址,堆中的内存是参照方法区来开辟的,栈中存放局部变量,堆中存放new出来的对象,方法区中存放字节码信息。
类的创建及对象的创建
【修饰符】+类名【extends+父名】+【implements+接口名】{
//类体,包括类的成员变量和成员方法
}
类名+对象名 = new+类名();
[修饰符]+构造器名(){
方法体
}
构造器与方法的区别:
不是为了构造对象,因为在调用构造器之前,这个对象就已经创建好了,并且苏还行有默认的初始化的值。在
调用构造器的目的是给属性进行赋值操作的
注意:一般不会对空构造器进行赋值操作(初始化操作),否则每一个对象的属性都是一样的。
指代当前的对象(正在构建的对象或者正在使用的对象),在方法中可以访问对象的其他成员。
用法:
1、this.可以修饰属性,成员变量与局部变量名字冲突可以使用this.。
static关键字
对象名.方法名 或 类名. 方法名(推荐)
调用方法
protected关键字
被protected修饰的类的成员既可以被同包下的类访问,又可以被其他包下的类访问。
在接口中被default修饰的方法叫默认方法,用于接口中。
代码块
包的作用
import static 包名位置.*(*代表此包下所有的类)
类的封装
在属性的前面用private进行修饰,即在调用的时候不能被调用,会出错。但可以在类里面用public修饰的方法来调用此属性,从而实现在对象里面间接得到调用。
用快捷键自动生成方法名:alt+insert
格式:
【修饰符】+class+子类名+extends+父名{}
在继承中不允许多重继承,只能单层继承,一个类被多个子类继承。可以多层继承,例如:A→B→C,一层一层继承下去。
重写父类方法:
名字一样只要更改方法体。
类与类的关系
(Null Pointer Exception—“空指针异常”)
相应的案例
调用父类的成员变量和成员方法的格式:
super.成员变量
super.成员方法名([参数1,参数2,参数3,……)
通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
1、在使用super调用父类的方法或者属性都要在子类的方法中去调用。
final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:
final class 类名 {//类体}
修饰符(public/private/default/protected)
final 返回值类型 方法名(){
//方法体}
注:实例变量也可以被定义为 final,被定义为 final 的变量不能被修改。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final
instanceof关键字
作用:解决两个类,一个类是否可以为另一个类的实例对象或者子类对象。
格式:
对象(对象引用变量) instanceof 类(接口)返回的值是Boolean类型