00:00
下边呢,花一个比较简短的时间呢,给大家讲讲这个魅方法的使用啊,要说使用的话呢,有点牵强了,因为第一天呢就开始会用了,就是作为我们程序的入口,只不过呢,到目前为止,这个main方法里边涉及到的每一个单词我们呢就都熟悉了,Public static word may,包括这个行参是一个数组,我们呢就都没有陌生的东西了,所以呢,我们再稍微的提一下这个类,呃,这个方法行,那我这块呢,新建一个,新建一个类,这我就关于这个made的一个test了。好,这呢就是我们关于这个叫main方法的一个使用说明,嗯,这呢,第一方面咱们从第一天讲课时候呢,就提到过这个没方法,它作为我们程序的入口出现。没方法呢,也属于众多方法中的一个,只不过这个方法呢比较特别,特别呢,就特别在呢,它是程序的入口,没方法作为我们程序的一个入口出现。
01:12
这个不用多说了,咱们到目前为止体现的其实都是这样的一个特点,好,那么第二点这个may方法,整个它这个格式呢,我们写到这吧,直接我这样may一下叫啊,还写错了,May out,斜杠,Public static word may,我们刚才呢说到的这个点呢,说它是程序的入口,这是它独特的方面,别人都不行,你这写一个MAY1啊,我这块呢,去找run,就连找那个Java application都找不到这个你改成一个may,它才能够识别,这才是入口啊,这块你再看它就有。这是它独特的点,那另外的话呢,人家其实也是一个方法呀。那是一个方法,只不过这个方法呢,是一个静态方法而已,所以说我们第二个想体现的就是我这个妹的话呢,它也是一个普通的静态方法啊,就是把人家这个身段呢,现在降下来,它也是一个普通的静态方法,这我们提一下啊。
02:13
没方法,它也是一个普通的,也是一个普通的这个静态方法,它要是一个普通的静态方法的话呢,咱们说是不是也可以考虑通过这个泪去掉呀。咱们说静态方法是不是通过类去调啊,对咱们这也可以,那这个呢,我们让它呢,仍然体现呢,叫程序的入口,现在呢,我再写一个,我再写一个class,比如我叫就叫这个吧,这是一个类,这个类里边呢,我也写个main方法。我型没方法,首先呢,这么着写是可以的,咱们只说了在一个原文件当中呢,只能声明一个public的一个类,可没说呢,这个每个类里边呢,不能去写各自的酶方法,这是可以的,那么这个make方法呢,我就想让它体现为是一个普通的静态方法,普通的静态方法那在这里边我可以做什么事呢?比如说我呢,就这样子,我这个上来呢,X等于new,一个string,你不是形态是个数组吗?我进来以后呢,我就造一个数组,这个长度呢,比如是100,然后接下来呢,我写个for循环in塔I等于零,I呢小于这个叫x.LA然后哎,加这行在这里边的话,我们拿到每一个变量,然后呢,我给大家做一个赋值。
03:40
比如我就写一个叫R下划线,哎,这样做了一个简单的赋值,赋值完以后的话呢,我这块呢,还对它进行一个输出。行这里边儿呢,相当于我就写了一些代码逻辑,然后写完以后呢,我在这个位置体现这个类方法呢,作为一个入口,它作为一个入口,我现在呢,就可以调用这个类的。
04:05
这个方法了对吧,哎,调用这个类的这个main方法,我就让他呢去点一下了。第二妹这个妹呢,需要我传一个具体的一个数组是吧,那那其实我这里边好像也可以不对它进行一个复制了,我直接在这里边我去扭一个,这样我扭个100。那这里边儿呢,就直接来调了,这个能看懂吧,那这时候呢,你看我点右键我去执行。执行的时候呢,它这出来一个这个结构,因为他发现有两个may了,他问你把哪个当成入口。是不是把这个当成入口了,嗯,我OK一下。嗯,没出来,我这是一个妹,他这里面没写东西,这就可以了。
05:06
那还是他。哎,这就出来了,那此时的话呢,咱们下边这个内方法呢,就是作为一个普通的静态方法出现的,那那你既然是一个普通的静态方法,咱们说了,说静态方法里边是不是只能调静态的,这个你要是当前类有一些结构的话呢,静态里边是不是只能调静态啊对这也是咱们为什么以前讲这个没方法的时候,说咱们以前说的都是什么呢?说我造了一个类,说这个类里边呢,在这儿,比如说有些属性,我们在这个may方法里边,你想用这些属性,以前呢,可能总有同学呢,直接就在这儿写这个属性了,咱说不行,说呢哎必须呢去造对象,通过对象呢去调属性,咱们之前呢,都强调的是这样这样一个事儿,其实呢,就是因为你这个属性如果不是静态的话呢,在这个static方法里边是掉不了的。
06:02
静态里边只能调静态啊,再换句话说呢,比如说我这个made test当中,我定义了一个普通的方法,我叫一个收方法。里边有一些代码逻辑了,然后呢,大家在这呢,直接写个售,当时呢,这不就报错了,报错呢,有的同学就直接往这一点,然后呢,诶它有个提示我一点,诶好了,这不就是相当于你静态里掉静态了,所以他才好了,以前咱们强调了没讲静态的时候呢,说大家你别这样整说呢,你去造对象,哎造完一个对象以后,通过这个对象呢,去掉寿。原来咱们是不是都这样说的对,就是因为呢,我们有了对象以后,你这个对象呢,是可以调这个非静态的这个结构了,你要直接在这里边去调静态是不可以的,因为静态里边不能调非静态,诶是这样个原因,那么以后大家写代码的时候呢,呃,你考虑一下这个方法,如果是需要直接写成静态了,那你就写成静态,这里边呢,就没有必要呢去造对象了,因为静态的方法呢,直接被我们这个类呢,可以直接掉,哎我就直接呢拿泪去掉,行,那这呢,我们就相当于把这个static呢也提了一下,那么除了这个static之外呢,其他的像这个public public呢,就指明咱们这个方法的一个权限了,我这呢点右键呢做一个rise去执行,实际上呢,是我们Java虚拟机呢,它要掉我们当前这个类的这个方法,肯定已经出了这个类了,而且呢,也不是在我们当前这样一个包里边儿了。
07:30
要求我们没没方法权限要大一些,权限你要不大的话呢,我这个类去点的时候可能点不出来,所以我们要想让它作为一个入口,这个权限呢要大,然后呢,我们这里边的话呢,你可以去创建当前类的对象,但是呢,我这个是入口,你你要是造也得是在我这里边造,也就导致呢,就是我们这个方法你要调呢,必须得拿当前这个类去掉。因为你这种没有对象啊,我这还是个入口,你要是造对象也得在我这里边去造是吧,所以呢,就导致就像咱们刚才说的那个单立模式一样,你那个盖的方法呢,必须得是个静态的。
08:08
嗯,咱们这呢,也得是是个静态的啊,通过我们这个类呢,去调这个Y呢,就是说我们这个方法呢,不需要返回值,因为你是个入口,你执行完就执行完了,你返回你给谁啊。对吧,你要说你这个受方法有个返回值,那行,我在里边呢,接收一下返回值可以再操作,那你这个没方法,它这个到这个就结束了,你返回给谁呢?没有东西再去接着了,所以呢,你是个avoid的。这呢就是个名字,长这个样子的话呢,识别为是一个入口。行,然后再往后看的话呢,诶,这竟然还有一个行参,这个魅方法怎么还整个行参呢?这样我们可以再说另外一个事儿,这个行参是一个死锥形的一个数组,这儿呢,其实也可以作为我们跟控制台进行交互的一种方式,这就是我们下要提的这个第三个说这个main方法,它这个行参的出现呢,也可以让我们作为跟控制台交互的一种方式。
09:08
我就直接这样写,说没方法,它也可以作为我们与控制台这个交互的这个方式,我这写的叫也可以作为交互的一种方式,以前我们都怎么做呀,是不是使用这个scanner,使用这个scanner我们可以从控制台呢,去获取相应类型的一个变量,那其实我们用这个main方法的话呢,也可以做。那下边呢,我们来看一下这个main方法怎么做,我这儿呢,再去新建一个。这个呢,我们叫做内DEMO。叫做made DEMO,好,这呢我写一个方法。学完了,学完以后怎么去交互呢?你先不用管那个事儿先呢,假设我们拿到了这个值了,拿到值以后呢,你要干什么事儿呢?假设咱们就做一个简单的输出,就好比是呢,咱们已经是得到那个next int那个int了,你后边做的事呢,咱们就先简单做个输出,那又由于呢,你这是个数组,那我们就简单的写一个遍历。
10:15
I小于叫x.length然后哎,恰恰在这里边呢,我们就简单的去遍历一下,遍历的话呢,我们为了证明说就是咱写的这个,我加上几个星,我呢叫二。第二直接,哎。行这个代码很简单,那现在的话就看我们怎么去交互,呃,把这个数据呢,存到咱们这个磁针型的数组当中呢,这呢我们就得谈一谈这一个小的一个操作了。这个小的操作的话呢,那得看你在哪操作了,咱们当前呢,是在eclip当中,那如果说你要是纯粹的一个代码,咱们在命令行的话呢,那就是另外一种方式,这个我们就分别来说了,比如说现在咱们这个ecl当中,在ecl当中的话呢,我们点右键,这个叫run as run as的话呢,这时候呢,其实要点的是run configuration。
11:10
找到这以后呢,我们实际上试图要找的是一个,呃,对应的一个这个这个相当于是先编译后运行,你得找那个编译后那个文件,咱们当前呢,其实也没有编译过了,所以这块呢,你先这么着一下,我先让他跑一下。先跑一下,跑一下的目的呢,是为了让它编译生成这个自解码文件啊,然后我们在呢,Run as,我选一个这个叫run configuration,那这时候呢,它默认的就定位到咱们当前刚才跑的这个程序了。就到这了,到这以后你选中它,然后这呢有个叫arguments,就是参数的意思,点开在这呢,我们可以去填入一个参数,此时呢,我们填这个参数呢,都就会把这个值呢付给咱们这个行参了,比如说我们这里边写几个人名。写这个。
12:00
周华健。嗯。刘德华啊,脑子里边浮现的就是刘德华了,这个一看这个写这个名呢,感觉就是时代跟大家有有这个代差了,就是吧,张学友写的就比较老了,这个中间的话呢,大家用这个空格给它隔开,写一个空格就可以了,那这里边要不要加双引号呢?按说是该加,因为我们把这个值呢,付给的其实都是我们这个数组的这个元素了,但是其实你不加呢,也没事,你要想加呢,想加你就加上,所以我这块呢,就是有的加,有的不加了。让你体现呢,就是都可以,我就写了三个人,然后我点一下这个run。你看就出来了,这里边儿这几个星呢,是咱们加的,哎,这就都行,就是你加不加这个双引号呢,都OK,相当于呢,这个时候我们就从这个控制台上呢,也能够去获取具体的数据了,Scanner可以,我们这个main方法其实天然的也可以。
13:02
只是呢,我们这个没方法,你获取到的呢,他都认为你是死顿,都是拿死顿接收的,那比如说现在我们想从控制台呢,去获取一下小明的期末成绩,小明的期末成绩,那你怎么办呀,那你只能考虑是不是把这个成绩呢,给他做一个转换呀,那怎么转,咱们是不是也讲了呀,我比如说就写到这里边吧,这相当于我们需要把一个string转化成一个int型,昨天咋讲的来着,In,我们叫pass in把这个AI放进去,这呢,我们就得到了一个int型的一个值,诶我叫它吧,这呢,我们可以去输出一下,诶我们这个number前面呢,咱们也可以区分一下,加上个双引号,现在我用这个井号吧。诶这样一下,这就是做了一个转换,就如果呢,你想获取小明的期末成绩,那那你就假设就一个数,那你就只填回头呢,我们赋值的时候,你就赋一个就完了,我run还是点这。
14:09
过来这个呢,就都删掉了,因为是期末成绩了嘛,考了89分,那你填一个的话呢,这个速度长度就是一,我是上边这个呢,是以字符串的方式体现的,下边这个呢,是以这个int的方式体现的,你说这个我们传入的不是小明的期末成绩了,是这一个班各个同学的期末成绩,那就有多个了,那你在这个后边呢,空格一下56分,再空格一下99分,空格43分,你就依次呢去传就可以了,这个时候也是一样,加不加引号呢都可以。77。因为你这时候传的呢,首先他认为你都是一个字符串,我这个写的是中文下的吧,这个注意你改成这个英文下的这样77好,然后呢,我做一个RA啊也是OK的,没问题,但是呢,嗯,你你别写这个abcd这样的数,因为我这块转化的话呢,你要写错的话呢,是不是照样就出问题了。
15:13
这个位置我后边写一个A来转一下,这不肯定会报异常吗?嗯,这个呢是正常的,你用什么写它都爆,你把这个AA转换成一个字,转换成一个int,它肯定报行,这呢就咱们说了一下,就是这个may方法呢,其实也可以作为我们跟控制台交互的一种方式,这个大家了解一下就可以了,那那刚才呢,咱们相当于是通过这个eclclipse eclclipse来做的,那如果不在eclipse当中做的话,大家可以把这个类呢,我们CTRLC一下,我放到一个这个文件目录下,比如咱们一开始讲代码这个code和CTRLV放到这儿了,放到这儿以后,我们现在看一下这个控制台,咱们要去交互呢,该怎么去写,首先呢,把我们这控制台呢调出来,CD调出来了,首先我们去编译Java c made的一个demo.java。
16:05
编译好了,然后接着我们去运行,我们呢先跑一下这个程序,你看能不能跑起来made的一个DEMO。这时候呢,它会报一个说找不到或无法加载主类,这个时候呢,大家要注意一下,就是把我们这个文件里边这个包名呢,你得干掉啊。你得干掉了,咱们原来写的时候呢,都没有这个包名的这个概念啊,你也得删掉,要不呢,它就报这样的一个问题了,那我再重新再去编译好,重新编译以后呢,再去运行,因为呢,这时候我们没有去往里边填过这个内容,所以呢,这不就直接呢for循环,相当于那个数字的长度是零就直接结束了,那我们现在呢,想传入一些数据,怎么传这个呢?是在我们这个运行的时候,先Java后边写一个may,写一个DEMO,再空格,再往后呢,就写你这个内容了,比如说我们这写一个。因为咱里边有这个转换了,所以我这呢,只能是填里边是这种数值型的了。
17:04
写个89,就是加不加引号呢都OK行,写了三个,然后回车,那这三个呢,就作为我们传入的这个数据,就给了咱们这个数组了,数组的长度呢就是三。行,就会这样一个情况,行,整个呢,关于这个may方法这个讲解呢,大家作为一个了解就可以了,但为什么还讲一下呢,有的时候呢,会出这种笔试问题,呃,有时候会出现这种情况,说我通过这样的方式呢,去往里边赋值啊,有一些小的一些问题等等,你知道呢,我们没方法呢,也可以去传入数据的啊,就是这样子去写,在运行的时候去写,它可不能写成Java c的时候去写,那时候呢,它就错误的运行的时候传的行这呢就是咱们关于这个main方法的一个使用说明。
我来说两句