面向对象
只要是对象都有属性和行为。基本类型传值,对象类型传地址
面向过程和面向对象的优缺点:(重点)
1.面向过程:面向过程的性能比面向对象高,因为面向对象在实例化时,开销比较大,占用内存多
缺点:维护性、扩展性没有面向对象好。
2.面向对象:维护性、扩展性好
缺点:性能底,开销大
面向对象----对象----主体
面向过程----过程----做什么事
类(class)和对象(object)是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。
所以面向对象程序设计的重点是类的设计,而不是对象的设计。设计类实际上就是设计类的成员。
类与对象的关系:类就是对象的描述,对象就是该类的实例。
类不占内存,对象才占内存。
定义类
[修饰符]class 类名{
//属性…成员变量
//构造方法
//方法…成员方法、成员函数
}
构造方法
在创建对象时被调用,给属性赋值(初始值)
1、定义类时,如果没有定义构造方法,那么类中存在默认的构造方法
例如:Cat(){
}
2、如果自定义了构造方法,那么默认的构造方法会被覆盖;如果此时希望使用默认的构造方法,需要手动定义默认方法
成员变量和局部变量的区别
1.定义的位置不同:
成员变量定义在类内部方法之外
局部变量定义在方法内部
2.作用域不同
成员变量作用类内部
局部变量作用在方法之内
3.默认值不同
成员变量有默认值(不初始化系统自动初始化)
局部变量没有默认值,局部变量:一定要显式的赋值。
4.内存中的位置不同
成员变量保存在堆里面
局部变量保存在栈里面
5.成员变量有四种访问修饰符private缺省protected public
局部变量没有访问修饰符,默认与方法的修饰符相同
相同点::
1.遵循变量声明的格式:数据类型变量名=初始化值
2.都有作用域