欢迎您点进这篇博客~
穹妹镇贴~XD
今天仍然是对于语法部分的一些碎碎念,如标题所言,主要是关于类和对象的;
这应该是我学Java遇到的第一个小难点了,下面听我细细道来~
什么是面向对象编程
学C语言的时候我就有听说,C语言是面向过程的编程语言,java/c++/python是面向对象的编程语言。
其实面向过程我还能理解,也就是关注底层的具体实现,注重功能的实现过程。但是,面向对象?....我还是想不懂,当时也没有去深究。
这一阵学java我大概才算是真正理解了面向对象是什么意思了。
首先,面向过程一定是建立在面向过程的基础上的,因为没有底层各种功能函数的实现,我们是无法将注意力转移到要解决的问题的要素上本身的——这也就是面向对象的本质。我举个栗子:(这里想画流程图来着,但试了试用电脑还不如手写,后面一定好好学一学画图软件,要不都没法表达自己的想法呜呜呜~)
比方说我自己在家,很饿,想要吃方便面,用面向过程的思想来看,就是这样的思考过程:
饿了 —> 想吃面 —> 烧水 —> 取面 —> 水开下面 —> 加配料 —> 加鸡蛋 —> 稍微搅拌 —> 盖盖子,煮一会 —> 开盖 —> 搅拌 —> 面熟 —> 开吃!
而如果用面向对象的思想,就变成了这样的思考过程:
想吃面 —> 参与吃面问题的对象有:我,面,锅,水 —> 流程是我用锅和水用“一定方法”把面煮好 —> 开吃!
你也许会说,“一定方法”是什么鬼?没错,在面向对象的思想中,怎么实现煮面,怎么加水、加配料、煮多长时间等实现细节已经不是我们的关注重点了,也就是说,在面向对象编程中,我们主要关注的就是怎么把要煮的面、锅、水等对象构造出来,然后结合各种现有方法去把问题解决!把面煮熟!反观第一种煮面思想,恰恰就是从如何煮面入手!也就是说,实际上,面向对象的方法依赖于面向过程实现出来的函数。
实际上也确实如此。在Java和python等语言的库中有相当多的内置方法,这些方法的实现,实际上大多数是由C语言完成的。这是因为C语言由于它的“古老性”和它面向过程的特性,使得C语言在操作系统和计算机的硬件交流上有很大优势,所以底层用C语言去实现,可以使得程序的运行速度非常快。
什么是类,什么是对象
说完什么是面向对象思想,那在我们的Java中,究竟什么是类,什么对象呢?
还是拿上面煮面的例子来说。
在思考煮面的问题时,我们是有具体的实例,也就是对象,如锅,水还有面,而它们所属物品种类抽象出来看就是我们要说的Java里的类。锅的“类”是工具或者说电器,面和水的“类”是原料等等。
Java里的类实际上非常丰富,在我还没学类的时候,实际上已经开始用了。像是在IDEA里创建的java文件里都会有最少一个public类,甚至8种基本数据类型都各自有一个类所属,而我们创建的变量实际上就是用这些类所创建出来的实例化对象,我们称之为对象。
当然,在实际应用和解决问题中,我们所说的对象更多的是依据我们自己构建的类而创建出来的对象,像是
public class Student {
public int number;
public String name;
public static void main(String args[]){
Student student = new Student();
student.name = "七七";
student.number = 2023;
System.out.println(student.name);
System.out.println(student.number);
}
}
这段代码中就用定义好的Student类定义了一个student实例对象,并通过“.”符号对该对象中的"name"和"number"成员变量进行了访问并修改。
好了,关于类和对象的基本思想概念到这里就介绍完了,但是关于这一部分,还有许多比较难理解的细节和特性,这一点我放到下一篇来讲。问就是因为今天不想写了呜呜呜~过两天考马原,还要复习~
以上就是这篇博客的所有内容了,感谢您能看到这里,喜欢这篇博客就点个免费的赞吧,欢迎和我交流Java知识!更欢迎您能指出我博客里的不足之处!