我们知道,Java是一门面向对象的编程语言,那么究竟是什么是面向对象呢?对象又是什么呢?本编博客,将会向大家进行介绍。
一、面向对象
1、理解:我们可以和面向过程对比着进行理解,例如,如何把一个大象装进冰箱?1、打开冰箱 2、存储大象 3、关闭冰箱,整个过程是由我们进行操作,这就是面向过程。而面向对象,我们可以这样想,冰箱具有打开,存储,关闭的属性,所以我们整个过程只需要找到相应的冰箱,然后调用冰箱,由冰箱完成这一切即可,如下图。
2、面向对象的特点:
1)符合现在人们思考的方式
2)可以把复杂的问题简单化
3)让人们从执行者,变成现在的指挥者
二、类与对象
1、定义:
类:事物的描述(定义一个类,其实就是在定义类中的 成员变量<-->属性,成员函数<-->行为)
对象:该类事物的实体,在Java中是通过new来创建的
2、具体示例
//定义一个类,不需要要主函数,因为只是用来描述一类事物,不用独立运行
class Car
{
int num;//创建成员变量
String color;
void run()//创建成员函数
{
System.out.println(num+"...."+color);
}
}
class Test
{
public static void main(String[] args)
{
//在计算机中创建一个car示例。通过new关键字
Car c = new Car();//c就是一个类类型的引用变量,指向了该类的对象
//要使用对象中的内容,可以通过 对象.成员 的形式来完成调用
c.num = 4;
c.color = "red";
c.run();
}
}
运行结果
3、上述代码在内存的体现
如果对堆内存和栈内存的不理解的,可以看一下我的这一篇博客:
https://blog.csdn.net/qq_41819988/article/details/88542485
三、成员变量和局部变量的区别
我们知道局部变量是存储在栈内存当中的,成员变量是存在堆内存中的,那么类中创建的成员变量又和局部变量有什么区别呢?具体的区别如下:
区别1:
成员变量定义在类中,整个类中都可以访问
局部变量定义在函数,语句,局部代码块中,只在所属区域有效
区别2:
成员变量存在于堆内存的对象中
局部变量存在于堆内存的方法中
区别3:
成员变量随着对象的创建而存在,随着对象的消失而消失
局部变量随着所属区域的执行而存在,随着所属区域的结束而释放
区别4:
成员变量都有默认的初始化值
局部变量都没有默认初始化值