一、面向对象的思想
面向对象是相对于面向过程来说的,指的是把相关的数据和方法组织为一个整体来看待,是程序员思想上从执行者到指挥者的转变。面向对象更灵活,可复用性更高。
三大思想:面向对象分析、面向对象设计、面向对象程序
三大特征:封装、继承、多态
二、类与对象
1.两者关系
类必须通过对象才可以使用,对象的所有操作都在类中定义;
类由属性和方法组成:
属性:相当于一个人的特征
方法:相当于一个人的行为
2.类的定义格式
class 类名称{
成员属性
成员方法
}
类必须编写在.java文件中,可以存在多个,但事实只能有一个public修饰的类。
.java文件名称必须与public的类名完全一致。
3.属性和方法定义
属性:
属性类型 属性名称;
调用格式:
对象名称.属性 = 值;
方法:
返回值类型 方法名称(形参列表){
方法体
return 返回值;
}
调用格式:
对象名.方法名称(实参列表);
4.创建对象
格式:
类名称 对象名 = new 类名称();
三、创建对象的内存分析
1.栈
java中一个线程一个栈区,每个栈中的元素都是私有的,栈的特点是后进先出。
栈中数据大小与生存周期都是确定的,不灵活,但是比堆的存取速度快,仅此于CPU的寄存器。
栈内存,通过“栈指针”来创建空间与释放;
栈中存放的是基本类型的数据以及引用数据类型的引用;
2.堆
存放的是类的对象,堆内存中的释放是有GC完成的;
3.方法区
存放的是类的方法
四、构造方法
用于对象的初始化,至少存在一个,如果没写,编译器自动生成一个,创建对象时,自动调用;
构造方法名称与类名完全一致
格式:
构造方法名称(形参列表){
属性 = 形参;//可用于传参
}
建议创建时同时设置无参和全参的构造方法;
五、方法的重载
1.普通方法的重载
方法的名称相同,形参列表长度或者类型或不同类型的参数顺序不同,方法的重载和返回值的类型无关;
2.构造方法的重载
参数列表的长度或者类型不同即可完成构造方法的重载,用于创建不同需求下的对象创建;
六、匿名对象
如:
int sum = new Math().sum(100,200)
匿名对象使用完一次就找不到了。如果一个对象准备使用两次或者以上,一定要给对象创建对象名。