面向对象:着重于对象,由对象完成功能
对象:大千世界都是对象
关注与对象的两块:特征 和 行为
对象的特征:表征对象特点的描述,在Java中称为属性
对象的行为:表征对象实现功能的途径,在Java中称为方法
类:(成语:物以类聚)
定义:在面向对象的思想中,类是具有相同的属性和行为的一类物体的集合,具有抽象意味
对象:
定义:是类的具体表现形式,具体化的、实实在在的物体
面向对象的三大特点:
1、封装性:encapsulation 安全性、复用性
2、继承性:inheritance
3、多态性:polymorphism
类的形式
修饰符 class 类名 {
成员变量;
成员方法;
}
成员变量记录属性 成员方法记录行为
光有一个类,只是有了一个模板,要具体的使用,还要用到对象
依据类这个模板创建具体对象实例的方式或者叫过程,称为类的实例化。也就是说累的实例化得到的是具体的对象
类 是 什么类型的? 类类型 是一种类型,也是一种引用类型
引用类型的存储特征:声明在栈上,具体的存储通过new存储在堆上开辟的空间里
类的实例化的格式: 类名 对象名 = new 类名();
如何来使用类这个模板中定义了的成员变量和成员方法? 使用成员变量:对象名.成员变量 使用成员方法:对象名.成员方法()
/*
* 局部变量 和 成员变量的区别:
*
* 1、代码位置上的区别:
* A、局部变量:在方法中或是在方法的形参中定义的
* B、成员变量:在类中且在方法外定义的
*
* 2、内存中位置的区别:
* A、局部变量:存储在栈上(方法调用时,会将方法压入栈中;调用结束后,会将方法从栈中弹出)
* B、成员变量:存储在堆上
*
* 3、生命周期上的区别:
* A、局部变量:跟着方法来的,方法被调用,方法压入栈中,局部变量产生了;方法调用结束,方法从栈中弹出,局部变量也就销毁了
* B、成员变量:随着对象的创建而创建,随着对象的消亡而消亡
*
* 4、初始值上的区别:
* A、局部变量:需要被初始化才能使用,换句话说就是没有默认值
* B、成员变量:有默认值,可以不用初始化就拿着默认值使用
*/
/*
* 值类型、引用类型给方法传递的规则:
* 1、形参为值类型时:实参传递过来的是数据值,形参的改变对实参没有影响
* 2、形参为引用类型时:实参传递过来的是引用(地址、堆内存的空间),形参的改变对实参有影响
*/