平时的方法和函数都封装了一个具体的功能,方法在一个类里面,类里面有至少一个以上的方法,所以想要实现某一功能,不用再去寻找方法,直接找到类里面对应的方法。
举一个例子就知道了封装的好处
class MaoPaoPaiXu{
private int i;
public int arr(int []arr){
for(int i = 0;i<arr.length-1;i++){
for(int j = 0;j<arr.length-1-i;j++){
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}return arr[i];
}
}
这是一个冒泡排序的算法,平时不用的时候就放在一个类里,用的时候直接调用。
这就是面向对象的思想,随着一个程序功能的增多,不会一步一步的实现,这样的话效率太低了,但是现在有了封装好的方法,需要的时候直接调用,这就是面向对象的思想。
面向对像的好处
- 可以让一件事情简单化,没有中间复杂的过程必须得亲自去做。
- 更多的体现的是指挥者的角色,而不是执行者,提高了效率。
- 想用的时候直接可以进行调用,而不是重新去创造
一个类中有自己的属性和行为,但都成为成员,所以就有了成员属性和成员行为
成员属性:在代码中体现的就是成员变量
成员行为:在代码中体现的就是成员函数或者成员方法
类与对象的区别
类就是抽象的形式,对现实的事物进行抽象化描述
对象就是将现实中的生活事物进行具体化,实例化
因此我们生活中的每一个实物都可以理解为是某一类事物的中的一个个体。创建对象,通过对象就可以调用具体的属性和行为。
局部变量和成员变量的区别
定义的位置
成员变量定义在类中
局部变量定义在方法中或者语句里面
在内存中的位置不同
成员变量在堆中的对象中
局部变量在栈中的方法里
声明的周期不同
成员变量随着对象的出现而出现在堆中,随着对象的消失而消失在堆中
局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失
初始化不同
成员变量在对内存中,所以有默认的初始化值
局部变量没有默认的初始化值,只有手动的给他赋值才可以使用