在之前的课程当中,给大家简单的介绍了一下类的定义,还有一些相关类的内容,那么在这一节课当中呢,将会更详细具体的给大家介绍类的一些特征。 首先我们先认识一下类,……
在之前的课程当中,给大家简单的介绍了一下类的定义,还有一些相关类的内容,那么在这一节课当中呢,将会更详细具体的给大家介绍类的一些特征。
首先我们先认识一下类,这个也是之前讲到过的,我们现在呢再来复习一下,类的作用是定义一个可以具有各种子成员的复合数据类型,那么因为火山PC是面向对象编程,所有的子程序或者说是方法都需要在类中。
啊,那么类的内容就包括注释成员变量,成员常量以及类成员方法,那么注意的是同一个包。
同一个包中不允许出现相同的类名,类名不允许使用据点名称为启动类的类是程序启动类,用户的程序从此处开始执行,当访问其他包装的公开类时,必须提供类的全名称,也就是说要包名加类名。那么这个呢,主要就是做一个防重复或者防虫名这样的一个处理,因为如果即使你不加包名的话,也可以调用,但是呢,如果说你这个包当中也有一个这个类,别人的包中还有一个这个类,那么当你调用的时候呢,就不知道具体要调用哪一个了,所以说呢,要加上一个包名来让他进行一个精确的调用。
防止重名啊下面呢,我们来看一下第二个内容调用类。
类的调用,那么首先呢,需要确保该类可以被调用,那么如果针对包的话呢,那么这个类需要是公开的啊,需要是公开的。
然后呢,类中还要具有公开的成员或者说方法,那么如果说你这个类就是一个空类的话啊,就只有一个类名,下面什么都没有,那么你这个类创建出来呢,实际上也是没有什么意义的啊,因为它没有任何的方法,那你就没办法去调用。
啊,所以这个呢,是需要大家注意一下的,那么类的调用代码,我们可以直接看右边这里,那首先呢,下面这里呢,我定义了一个类,那么这个类呢,就叫做测试类。
公开,然后呢,在类当中我定义了一个成员变量,但是大家注意我这个成员变量呢,没有公开。然后呢,我又定义了一个方法叫测试方法一。那么这个方法呢,我是有公开的,那么公开之后呢,在内的外部,大家看到上面这有一条横的分割线啊,上面的代码呢,就是我按钮被单击下面的一些代码。那么在这里呢,如果要调用这个类,我就必须使用变量的形式,可以是局部变量,也可以是成员变量啊,都可以,总之是需要一个变量的形式,先把这个类给实例化出来。那么什么叫实例化呢?就是定义一个这个类作为类型的这样的一个变量,那么就相当于是创建了这个类的实例。
那么接下来呢,就可以直接通过类这个这个变量名,大家看到局部变量名叫做类,那么这个名字呢,大家可以随便去起,那这里呢,为了演示我这里就叫做类,那么类下面大家看到有测试方法一,因为我这个测试方法一是公开的,所以呢,我可以直接调用测试方法一啊,大家看好这个调用形式。
那么如果你的这个变量是公开的话,那么就可以在这调用,但是我这里不是公开,所以外部我就不能直接调用这个成员啊,这个成员。
好那么就是这样,大家看一下这个类的一个调用格式。
然后呢,我们打开一个火山来实际的动手写一下这个代码。
那么现在呢是第五课,所以我添加一个第五课的项目。
那在这里呢,因为是控制台,所以呢,我就不需要创建窗口那些了,我就直接在这里插入一个类,那么这个类呢,跟我们刚才的图片一样,我叫做测试类,那么这个类呢,要公开,当然如果你只在自己的这个包当中用的话呢,就不需要公开,那么我这里演示的是到时候呢,可能会被其他包调用啊这样子,所以呢,我可以把它选中公开,这个大家要根据自己实际情况来进行决定。然后呢,我定义一个成员变量。
我就叫整数型,那么这个变量呢,不公开,然后呢,新建一个方法。
叫做类中的方法,那么这个方法呢,我将它设置为公开,那么在这里呢,我直接输出一行文本。
类中的方法被调用,那么这个时候呢,我们这个类就可以说已经简单的构造完毕了,那么在这呢。
启动方法大家看到之前有跟大家说明启动类,这个启动方法是程序最开始执行的地方,所以呢,我就在这里调用我的类。那么调用类呢,我就首先需要创建一个变量,然后呢,给它起一个名字,我可以叫我的类。那么类名呢,就需要是啊,这个变量的类型呢,就是我们要调用的这个类的类型。诶这样子类杠测试类。那么这个时候呢,这个类就已经被实例画出来。那么实例化出来之后呢,我们来看,我就可以用点点了之后呢,大家要找到要调用的方法,那么这里呢,我要调用的是类中的方法,那么呢,我就找到类中的方法。
那么因为它是一个方法呢,所以我们要给它加上一个括号表示呢,我们调用的是一个方法。
好,我们保存一下代码,那么这个时候呢,我就可以直接运行我的程序了。
大家看到这里输出了类中的方法被调用,也就是我这个地方需要输出的啊,这里呢,我加几个标识符,让它能更好的区分出来。
啊,大家看到是这一句,那么因为成员变量呢,没有公开属性,所以呢,如果我用类我点了之后,大家看到这个提示呢,不会提示这个成员变量,那就表示呢,它不能被直接调用,那么如果我强行调用它的话,大家看会发生什么,会直接报告错误啊就表示呢,这个没有没有找到指定的变量常量啊参数,就说它都找遍了,也没有发现这个东西,所以呢,他就会报错。
那么这个成员变量在什么时候有用呢?那如果没有公开,就只是在这个类当中可以用,那么关于这个变量这一块呢,在后面的课程中会给大家进行具体的介绍啊这个地这一节课当中呢,就给大家讲解类。
那么同样的刚才也有提到,如果用成员变量也是可以直接使用这个类的啊我们现在创建一个成员变量。
类型选为测试类。
那这里呢,就不能叫我的类了啊,因为已经变成我的成员变量,那这个时候呢,我们来看效果呢是一样的,只是这两个类呢,它的一个作用范围不同,那这个类的作用范围呢,我们在后面的课程中有一个给大家进行介绍好。
我们继续回到我们的这个课程上。
第三,给大家介绍一下基础类,就是继承,那么类的话呢,是可以从另一个类继承过来的啊,可以把另一个类当做基础的类,好,我们看一下具体的一个定义。
类可以指定一个基础类,大家看右边的图片,这里这个是一个类的定义,那么在定义的时候呢,可以选择一个基础类,那么基础类呢,就是另一个已经写好的类,那么在另一个类当中,我们看到这个类当中呢,有成员变量,也有公开的方法。
啊,他就可以作为一个基础类,那么这个基础类呢,是根据大家不同的一个程序需要啊,自己要动开的去决定公开或者不公开哪些成员,这里呢,只是作为演示作用。
基础类,基础类现在指的就是这一个啊,也就是写在这里的这个类叫做基础类,那么基础类呢,被称为父类或者基础类,那当前的类,那么当前类呢,指的就是这个测试类,当前类就被称为子类啊,相当于他们有一个这样的父子一样的关系。
子类可以调用父类的方法。
子类,也就是我们这个类,如果我这个类里面呢,需要用到父类的方法,我就可以直接进行调用,但反过来不行,父类不能调用子类的方法啊,大家需要注意,子可以调用父,但父不可以调用子。
那么如果父类的成员也是公开的话,就像我现在写到的这样,基础类方法,那么在外部呢,也可以直接进行调用,那么也就是说,可以在外部直接调用父类的公开方法。
那下面呢,给大家演示一下父类这样的一个继承,那首先呢,我们还是要添加一个类,那么把这个类呢,我们一会儿就把它作为父类,所以呢,我们给它先起一个名字叫父类。
然后呢,可以根据需要选择公开或者不公开,那么在这个类当中呢,只有一个方法,父类中的方法。
好,那么在方法中呢?我直接输出一段话,我是父类中的方法。
那么在我们的这个子类啊,就要进行一个继承,那么继承呢,在这个基础类这个位置,我们就要把父类的名字写上,那么当写上之后呢,它就是父类的一个。
继承下来的类就相当于是继承类,也可以称之为子类,那么在这里呢,我就可以调用父类中的方法,大家注意啊,这个方法没有公开,那么没有公开表示的是它不能在外部,外部也就是在这个位置进行调用,那么在子类当中是可以被调用的啊,大家需要注意这一点,那么现在呢,我们来输出一下。
我在这这样一个子类,然后呢,我们来输出一下。
大家看到父类中的方法被调用,然后呢,子类的方法也被调用。
父类,子类?
那么这个呢,就是这样的一个继承,那么如果我现在呢,将父类中的方法进行公开,那么这个时候大家再看,就可以直接在外部调用父类中这样的一个公开的方法。
大家看到这里呢,就又额外的输出了一行负类中的公开方法。
那么这个呢,就是简单的一个继承。
好,我们接下来再看负对象,那么负对象呢,是一个关键字,表示当前类的父类,也就是它的上面的基础类,如果没有负类就无效,那么现在呢,因为我们这里有负类,所以呢,我们就可以通过父对象来调用父类中的东西,但是呢,由于这种命令呢,都是可以直接调用的,那么它主要针对的是一些。
其他或者说一些同名的东西,那么好比说我们父类当中也有一个叫类中的方法。
好,那现在呢,我在父类中再创建一个方法,叫类中的方法,那么现在呢,它就跟子类中的这个重名了是吧?所以呢,我们先把这个代码写上啊,一会呢,我们还有一点要修改的东西。
父类中的方法。
这里呢,我们给他修改的简洁一点吧,不然一会看起来就会比较多。
叫做父类,那么子类这一个呢?同样的修改为子类。
子类类中的方法,这边叫父类类中的方法。
那么因为呢,这个重名是不能直接用的,那么现在大家看一下,如果重名的话呢,它就会爆出这样的一个重名问题,所以说呢,在这里给大家先提前介绍一个属性叫虚拟方法,那么这里呢,选择为可覆盖,那么就表示呢,这个方法可以被同名,那么在这子类当中呢,我们也可以加上这样的一个话。
也加上这样的一个属性,那么这个时候呢,重名的方法就可以正常的进行使用了啊但是呢,这个如果说要覆盖的话,大家注意啊,这个状态就是必须要完全相同的,那么因为这里呢,没有公公开,所以呢,我们把公开也选中,让他俩的状态保持是一模一样的,那么这个时候呢,就可以正常的使用了。
那么,如果。
这样用的话呢,就我现在想这么做,我在我这个方法当中,我还要再调用一下父类中的这个方法。
那么因为呢,我如果直接输出啊,直接输入这个类中的方法,那么现在呢,它默认调用的是子类,那么这样就形成一个无限的递归了,所以肯定是不能这么样的去使用的,那我就必须使用负对象来告诉他,我要用负对象中这样的一个内容。
类中的方法表示呢,我现在要调用负对象的,那么这个时候呢,我们再运行大家看一下效果,首先第一句父类中的方法,第二句是父类类中的方法,第三才到此类类中的方法。那么这个负对象呢,就是做了一个比较严格的这样的一个名称限定,就表示呢,一定要调用到负类啊,这样就不会引起冲突。那么一般来讲呢,在继承中这个用到的是比较多的,通常是子类处理某一些,然后呢,再将结果调给父类,由父类继续进行处理。所以说负对象在以后呢,会经常用到。那么关于这个虚拟方法,这个呢,会在后面给大家进行更详细的介绍,因为它呢,是面向对象的一个重要组成部分,所以说呢,在后面给大家进行介绍。
那么这里呢,大家只需要了解类实例化的一个调用就可以了。
还没有评论呢,快来抢沙发~