00:01
来,咱们继续再往下啊,各位现在还行吗?各位还行吗?这会儿。还好吗?怎么样的话。有问题吗?还好是吧。还行吧,还行还行就行啊。好好好好还行就行啊,那接下来咱们说一下今天最后的一个一个一个一个内容啊,最后的一个内容各位。大家注意看了啊,注意看了。最后一个知识点啊,说完之后呢,咱们整个这个章节就结束了。整个这个第一章Java开发环境就结束了,在下节课就进入第二章了啊,咱们最后一个知识点就是这个public class和class有什么区别。啊。来,你比如说现在啊,我在这儿来一个什么呀,TEST8点加啊,大家注意看啊。注意看注意听啊,最后这个这是个重点呀,写错了。
01:04
我要写public class test8。Public static void men。这样我先这样写啊,我写个class a。Class c。Class d行不行?你说我这样写行吗?一个Java文件里面写多个class,而且大家看好了,我前面还没有加public。啊,没有加这样行不行,来我们编译一下各位啊。写完了啊,很诡异是吧,从来没有接触过这个程序,之前是一直是文件名叫TEST8。然后这就写个public,怎么突然之间就变成这样了,对吧。
02:00
我们先测一下玩嘛是不是玩不要不要不要不要太有压力啊,不要太有压力,我们玩嘛是不是,哎类名叫啥呀,A呀B呀C呀B呀,是不是,哎玩呢啊就当是玩呢,各位啊,别有压力啊D除好大家看当前这个页面,当前不是页面啊,当前这个目录下是不是没有文件。对吧,我们编译一下这个TEST8啊,我们编译一下,编下它成什么JAVA8JAVA。编译。好,编译之后大家看生成了一个什么TEST8,编译之后生成了abcd,生成了四个是不是好,同学们到这你得出一个什么结论,没有为什么,各位不要问我为什么,我解释不了啊,这个是三公司规定的Java语法格式,就是这样,它可以这样做,可以这样做啊,就是一个Java文件里面可以写多个定义,多个class,是没有任何问题的啊,是没有任何问题的,咱们就把结论记住就行了,这个环节的内容没有为啥啊,死记硬背,各位。注意啊,这个内容没有,为什么只能经过测试,然后根据测试结果进行记忆啊,进行记忆好,这是第一个。
03:13
第一个结论是什么?告诉我第一个结论是什么?是一个Java原文件中可以定义多个class没问题吧,一个Java原文件是可以定义多个class没问题,你看它没有,它没有出问题啊,他不是说编译编译不了,你看编译一下Java c编译一下test,八点JAVA1编译,你看它有没有正常生成class啊,Abcd都生成了。对不对,哎,都生成了一个Java命令,可以执行拨款,你看你你你你你这个思维又往前走了啊,又往前走了啊。呃,一个Java命令可以执行多个class吗?不行啊,不行,一会儿我给你解释啊,看怎么弄怎么弄啊。第一个结论,那同学们告诉我第二个结论是什么?
04:04
你现在其实可以告诉我第二个结论了,各位告诉我第二个结论是什么?第一个结论我已经定义完了,说完了第二个结论是啥?第二个结论是什么?告诉我。就是一个Java文件里面必须必须必须得。这个类定义必须得加public吗?必须得加public吗?哎,伟斌说的对啊,没有public也可以,哎,这个结论,这是第二个结论,就是说。Public的,不是必须的。Public的类不是必须的。不是必须的。啊,Publicly不是必须的,来继续,我经过测试,我说了这个环节的这个内容没有,为什么只能经过测试,然后根据测试结果进行记忆,根据我们的测试结果进行记忆啊,第一个结论就是可以定义多个class。啊,然后第二个是。
05:09
好,其实你现在可以下结论啊,第三个结论,你又得出一个什么结论?又得出个什么结论?各位告诉我。每个class都是独立的,哎,说一下啊,你在你Java源代码里边,只要写了一个class某某某,它就一定会对应一个class文件。就是你硬盘上的这个文件,对应的其实就是这段代码。你的这段代码对应的就是你这个文件。你的这段代码对应的其实就是你这个文件的,这个文件对应的其实就是你的这段代码,就是说你只要是有一个class,那么必然会生成一个class文件。听懂了吗?听懂了吗?各位,这是经过测试的第三个结论啊,就是什么?只要有一个class的定义,那么。
06:07
就是在在原文件中只要有一个class定义,那么必然会对应生成一个class文件。这是第三个结论。第四个结论。就这块儿呢,我们可能经过需要经过这个测试来得出一些结论啊,我再强调一下,就是说我们第一个结论就是是什么呢,就是说。我们一个文件。确实可以定义多个class,经过测试,第二个一个class就会生成一个class文件,然后public还不是必须的。啊,可以没有。来,再往下。我尝试着啊。尝试着。假如我对c.class里面输入其他其他class不影响,这不影响不影响不影响啊,一个Java只能有一个public修饰的类,而且必须与文件名句好各位啊,这个浩文呢,他肯定是学过啊,他肯定之前是接触过来,咱们第四个结论是啥呢?我尝试一下啊,我在这个C或者我在个BB前面加public。
07:18
好,我编译一下看行不行啊,来编一下Java c编译test8.java。好报报错了,报错了,不行了,不行了,各位啊好,所有的工作全放下去,不要讨论了,不要讨论,听我说啊,听我说,听我说,大家看到了,这里有一个错误信息提示大家来读一下这个这个这个信息来给给30秒理解一下,给30秒理解一下来他说什么。他说呀,test8.java第20行,这个Java文件的第20行,第20行在这儿。出错了,错误是类B,是公共的。B前面有public。他说你既然你B前面有,你就应该在名字叫做b.Java的文件中声明。
08:05
但是这个文件的名字叫什么呀,叫testva。这得出一个什么结论呢?就是你根据这个测试结果,你得出个啥结论,我觉得我觉得咱们要的是这个啊。没事,咱们慢慢慢慢去去去,呃,总结这个结论啊,总结这个结论来,嗯,我给点时间读一下,我刚才删掉public的时候,大家看编译没有任何问题,没错,但如果说把这个public加上去,诶,妥了,报错了,你看报错了说你类B,既然是公共的,前面有public,你应该把这个程序写到一个b.Java文件中,你这个文件叫test8.java,你的第四个结论是啥?四结论告诉我。Public的类可以没有。
09:01
但如果有的话。Public。修饰的类名。必须和原文件名保持一致。修饰。必须得跟语言文件名保持一致。别问我为啥啊,这是我经过我测试测出的结果,你想人说的很清楚啊,说类壁是公共的。应该在名字叫做b.Java的文件中声明,这个我不知道他为啥这么干啊,反正散公司是这么规定的,Java语言是这么规定的,对吧,你这么规定的,你得听话,你不听话,你看报错了。是不是他说类B是公共的,应该在b.Java文件中声明你这个文件不叫b.Java。对吧,那又得出个什么结论?
10:06
就public类可以没有,但如果有的话,Public修饰的这个类的类名必须得跟文件名一致。第五是啥?Public的类有也只能有一个。对吗,同学们。这个不能这么写对吧。是不是这个不能这么写,如果你写public的话,你只能怎么写同学们?如果定义public的类,你只能这样写,怎么写public class你还能叫做B吗?你还能叫做B吗?你这个文件名叫TEST8,你是不是只能叫TEST8?你是不是只能讲test吧?对吧,TEST8,好,我们再编译一下来,我们先把这个class删掉。
11:01
删完之后呢,大家看这个地方是不是class文件就没了,没了之后呢,接下来我们编译一下,编译一下啊Java c编一下test8.java编译之后呢,大家看生成的是什么?是a. classc. classd.class和test8.class,生成的是这个四个class。这四个class。啊,所以说在这里呢,有一个什么呢?有一个问题,有的人说老师这个结论我不知道为啥得出这个点,Public类为什么只能有一个,好各位你public修饰的这个类,它要求你这个类的名字得和文件名保持一致,对吧,这是一个铁定的一个规矩对吧?好,那我问你。如果还想定义public的类的话,你是不是也只能写public class test吧?在一个Java文件里边,这个类的名字重名吗?能重名吗?你定义public,它有要求public这个类,这个类的public修饰的这个类的类名必须得和原这个原文件名保持一致,这是规定。
12:00
对吧,你写两个能行吗?你写一个T8,你再写一个T8,你咋写T81啊,你写T81的话,对不起,又出问题了,又出问题。对吧,又出问题,出什么问题啊,Public修饰的这个TEST81,你应该在这个test81.java文件中声明,你为什么把这个东西放到这个TEST8点加法当中,所以你只能叫TEST8,但如果说这已经有了一个TEST8,这再来一个TEST8,两个类的名字重了行不行?我们来看看。你看类重复。类重复。类重复啊类重复,所以说这里啊会导致类重复啊,这个会导致类重复,你看类重复啦重复啦,啊类重复了,所以我们这个结论啊,就是第五个结论就是public类啊也只能有一个。要么你没有,要么有你也只能有一个,而且你有的话,你这个类的类名还必须得文件名保持一致。
我来说两句