上两篇文章我们介绍了类、类的成员变量和成员方法,还以王思聪和咪蒙为例写了一个网红类的程序。上篇最后写的程序是关于方法重写的,再看一遍:
Wanghong类有姓名、年龄、爱好三个成员变量,还有几个成员方法,其中countGuai()是重载的成员方法。主体程序中创建了wsc和mm两个对象的引用,这两个对象给各自的成员变量赋值并进行访问。每个对象也都可以调用在类中定义的成员方法来执行相应代码。调用方法时随时要注意参数与返回值的问题。
这是一个简单的例子,掌握了成员变量和方法的概念理解起来不难。但我现在又要改需求了,假设我是一个娱乐圈小报记者,专门寻找各类八卦消息和花边新闻,每天都雷打不动随时蹲点准备拍明星:
所谓人红是非多,我的任务就是天天盯着这帮网红和明星的一举一动,希望能找到“料”。我做事认真,除了网红类,我还负责歌手类,演员类,体育类等各种明星的盯梢。现在问题来了,假如我要把演员类(Actor)和网红类的代码都写到程序里该怎么办呢?难道都写到一起吗?
假如网红类的成员变量还是姓名年龄爱好,而演员类的成员变量变成了姓名身高(height)绯闻对象(partner)。然后这俩类的方法也都不一样,那写在一起是不是会很乱?所以,类与类之间一般都要分开,一个类中只装那一个类的成员变量和成员方法。比如这两个类单独写出来就是(countGuai()因为重载太多了,我就挑了一个带两个参数的作为例子):
网红类装网红的信息,演员类装演员的信息,井水不犯河水。有人说那程序入口在哪儿呢?大家仔细看,public static void main(String[] args)看起来是不是很像一个方法?它其实就是一种特殊的方法,我们俗称main函数,程序就是从main函数开始执行。main函数一般都放在另外一个单独的类里,装有main函数的类叫主类。比如我们继续添一个叫class Test的主类,里面放main函数以及创建对象访问属性调用方法等:
之前举例子的时候说过类名要和文件名一样。如果多个类在同一文件中则用主类的类名作文件名。所以,创建一个叫Test.java的文件,把以上完整代码拷贝过去并执行:
王思聪打了130个怪,神仙姐姐明天要去拍电影。虽然有三个类,但程序结构非常清晰。而且你会发现每个类都生成了一个单独的class文件,分开编译。以后我们举其它例子时或是写自动化代码时大家会发现这种用一个主类控制多个其它类的方式才是项目中的常态。
有人说一个文件三个类太多,程序也长,看着费劲,那我们可以把它们放在不同的文件里呀。比如我创建三个文件 - Test.java - 装主类,Wanghong.java - 装网红类,Actor.java - 装演员类。执行Test.java,还是一样的结果。
这就是类,成员变量,成员方法的介绍,以后我们还会利用这些知识讨论更多的概念,源代码在OOP3
本篇知识点及注意事项:
1. 类与类之间一般都要分开,一个类中只装那一个类的成员变量和成员方法;
2. main函数是程序的入口,程序从main()开始执行;
3. 如果一个文件中有许多类,文件名用主类名称,也就是包含main函数的类;
4. 多个类可以放在不同文件里。
网友评论