1.前言
经过了前面的学习,我们已经对java有了初步的了解,接下来我们将学习java的类与对象章节,这是极其重要的一部分。从这个章节开始,我们总算是可以上手写一写代码了。子曰:“工欲善其事,必先利其器,我们要编写代码,一个好用的编译器是必须的,这里我向大家推荐IDEA,这是一款高度优化的编译器。
【尚硅谷IDEA教程(idea经典之作,idea安装,idea使用)】 https://www.bilibili.com/video/BV1PW411X75p?share_source=copy_web&vd_source=9e33e4032ae15af481a3da44421b2170
这里给大家推荐了尚硅谷的IDEA教程,希望大家可以参考。
2.类与对象
我相信在前面的强调下,聪明的你已经对面向对象有了认识,那么现在我们就开始讲述类与对象这一章节吧。
2.1、什么是类
人类一词,相信我们都是认识的,可人加上一个类以后为什么能代表整个地球的人呢?这是因为“人类”的含义就是人这个物种所共有的东西,它都包含了。这样说可能有些抽象。我们举一个例子,人都有发达的大脑,有4肢,有五官,有语言,会使用工具等一系列共同的特点,将这些特点提取出来构成一个东西,这个东西就叫“人类”。所以 “类”的意思便是许多相同物体所具有的共同特征。
2.2、什么是对象
所谓对象就是具体的人,我们从人类这个大的概念中具体到一个真正的“人”,此时这个人就被称为一个“人对象”,这个具体的过程便是实例化。 如图所示,我们构建了一个名叫Human的类,这个类中,有名字,性别,年龄等人的特点。在上面,我们为这些抽象的特点赋值,并使用new来创造这样一个具体的人,此时这个human就代表了小明这个对象。
3.公共类
在上面的图中,我们可以看到,最上面的class前是有一个public修饰的,这个修饰代表了这个类是一个公共类。公共类是java中,启动主函数的地方,如图所示,主函数就在公共类的下面。
不同于C语言中int main的写法,java的主函数写法显示复杂了一些,目前,我们并不需要知道它为什么是这样写的,我们只要记住它的样子是这样的。
对于公共类,在我们当前的学习中,我们只需要知道一个java文件中,有且仅有一个public class,而主函数必须位于这个类中。
4.实例化
看到这里,肯定有人会有疑问,为什么实例化的过程是这样写的呢?
首先,实例化一个对象的固定语法是 类名 对象名 = new 类名(值 or 没有值)。
对于 = 号的左边,理解应该是不能难的,使用类名修饰对象名就像我们构建整形用 int 去 修饰属性名一样。关键是 = 号的右边, new 这个关键字又再一次出现了,前面的章节中,我们说过,new 本质上是在内存中开辟一个地址,那么这里就可以理解为 在内存中开辟一个类型为:Human的内存空间。
因此这里的整句话就是,在内存中开辟一个类名的空间,并将这个空间赋给类名修饰的对象。
重要的一点来了,我们对一个类的实例化必须要在主函数中进行!!!!
5.构造器
但是很多人还是有疑问,小明的值到底是如何传入的呢?
这就涉及到了构造器的概念,什么是构造器呢?请看图:
图中的 public Human(String name, String sex, int age) 便是构造器了,大家不难发现这个写法就像方法一样(函数在java中称为方法,方法的概念,我们之后补充)。没错,这个构造器就是没有返回值的方法,他的作用有两个,一是将外界传入的值赋给我们的属性,二是完成对一个类的实例化。
所以这也就解释了,为什么我们在主方法中实例化时可以传入值了。接下来,我们介绍构造器的写法:
修饰符 类名 (传参);
在当前,我们认识的修饰符只有一个public,所以我们默认就写public。
如果我们不传参,意味着这个构造器是一个无参构造器,无参构造器起到的作用仅仅是帮助类实例化创建对象,并不可以赋值。重点!!!,默认情况下如果我们不构建有参构造器系统默认的用来实例化的构造器就是无参的。如:
至于有参构造器,就可以起到赋值的作用啦,对于this,这个关键字,我们将在明天的课程仔细讲解。
细节提示:如果我们创建了一个有参构造器,如果还想在主函数中使用无参构造器来实例化对象,那么必须要显示的写出无参构造器。如图所示:
6.编写代码
有了主函数以后,我们已经可以编写一些简单的代码了,大家写出经典的“hello word”吧 。