00:00
关于咱们昨天内容这块,大家还有没有什么疑问啊,有没有什么问题啊,如果是超前的一些问题,你就先不用问了啊,后期我们会去讲。后期会去讲。有问题的在这打一下字啊,打一下字。跟我互动一下啊,没有问题就算了。没有问题就算了啊,还有昨天呢,咱们有一个作业对吧,这个作业呢,咱们可以把它看一下。习题通过变量来描述学生的信息。对吧,学生信息包括什么呀,学号姓名。是不是,哎,性别。身高。其中呢,学号采用整数。啊,姓名采用字符串。啊,性别采用字符型,身高采用什么呀,浮点型。啊,浮点型。这个地方呢,我有一个提示啊,说查阅相关资料,在Java中呢,如何定义字符串类型。
01:06
的变量对吧,如何定义字符型的变量。还有如何定义浮点型的变量?啊。具体的学生数据呢,有两份有两份啊,第一个学生信息是学号11110。哎,姓名是张三,性别是男,身高是1.85米。第二个学生信息是什么呀?是学号120,性别李四啊,不是性名李四,性别女,身高165对吧?要求最终将学生的信息输出到控制台,输出结果如下图所示啊,如下图所示,那么这块呢,其实这个题有点超纲了,各位啊,我布置的这个题不是所有的学生都能做出来啊,为什么?因为有的学生啊,他会查资料,有些学生他不会查。我们整个昨天的这个内容啊,昨天的这个内容,我们其实就说了一个类型,这个类型就叫啥呀,哎,我们八种类型里面啊,就一种类型,我说了就是这个int。
02:09
剩下的这个类型啊,我一句我都没提。所以呢,你可能需要去查一下相关的资料,你比如说字符串应该怎么去表示。对吧,字符型应该怎么去表示。对不对,哎,那么身高带小数的应该怎么去表示?那我带着大家呢,把这个题呢来写一写啊,写一写来,那么这块呢,咱们就找到啊,这个叫Java project02加YSE,然后这块呢,我们把这个CHAPTER03我们打开啊,我们在第三章这一块各位啊,今天我们就讲第四章数据类型啊。来,那么第三章这块呢,我们点右键啊,直接呢,嗯,我们建一个啊这个文件啊,这个文件我们假如说叫练习,或者说我们叫做考试对吧,Exam exam啊然后这块呢,我们。
03:03
点Java或者叫homework对不对,随意啊都行啊homework,那么这个homework呢,我们直接呢,把这个homework应该是一个单词吧。在英语里边是不是有homework这个整整个这个整体单词对吧?啊有整体单词啊叫homework,所以首字母大写就可以了,你不用在这故意大写了啊,它不是两个,它不是两个这个单词啊,它是一个单词啊,一个单词来homework把这个呢,我们。写一下。Public class啊,Homework。然后呢,我们写上public static void主方法加上。这个那。顺手就来的事儿,没有为啥就直接这样写就行了,程序会从这个入口这进来执行,对吧,你没有这个呢,他进不来啊,那么这块呢,咱们的一个要求是什么要求呢?我们可以把这个要求给他复制一下,看能不能复制啊。
04:01
能不能复制那个拿过来放到这。哎,可以啊,那么学生信息包括这个学号姓名。性别身高学号才有整数那行。第一个学生信息。对吧,那学号学号采用整数int对不对?哎,我们叫学号。行不行啊,哎,没问题,那么学号这块呢,它的学号是什么呀?是110,那行妥了,那就是110就行了。那么大家想想,能不能这么干呀,能不能这样呀,给个回应,能不能这么写?这样行不行?行不行啊,给个回应。不行是吧,哎,为啥不行啊。为啥不行啊,类型不兼容啊,编译报错。
05:00
类型不兼容。字面量是字符串。学号变量是int类型。明白吧,啊,就是说学号是印的对吧,110带有双引号的是字符串。类型不兼容。啊,你比如说萝卜地只能种萝卜,白菜地种白菜,你不能对吧,萝卜地种白菜那肯定不行啊,所以这块啊,咱们要注意啊,要注意这个这个这个它有要求等号后面的这个东西。它是一个数据,这个数据啊。必须得和我们前边的这个变量,它的类型怎么啊一致才可以。啊,你说你这个盒子呀,就只能放数字,你非得把一个串。
06:00
这么大的一个东西放到人家,哎,对吧,这样一个小盒子里边,就像我书上所说的,对吧,这个冰箱里呢,只能放什么呀,小食品,你非得把大象放进去,那肯定放不进去。啊,说把大象放冰箱有几步对吧?啊,打开冰箱门。大象放进去,关上面门,这就是扯淡啊,它放不进啊,放不进去。那么这块呢,咱们要注意啊,就是这个类型啊,要兼容啊类型要兼容多大的盒子放多大的数据啊,就是多大的盒子只能放一放什么呢?对应大小的数据。不能随意。啊,不能随意,所以这块呢,大家要注意啊,我们这个程序啊。编译一下homework。啊,走。好,大家看。
07:00
不兼容的类型无法转换为int。就是说呀,他说这个地方是个。啊,这个错误信息你可以保留一份,你看把它编译器报错的信息拿过来对吧?哎,给它放到这个地方,这是错误信息,哎,他说错误不兼容的类型对不对,哎说。这是个死润。这是个string啊。他没有办法给一个in的类型不兼容啊好,这是第一个第一个啊学号,那么这块呢,我们就得注释掉,然后呢,这样怎么写呢,Int叫做学号,然后我们写上110。那你这样行不行呢?我们再编译一下,你看就没有任何问题了,是不是,哎这样就可以了,这个大家理解吧。没问题是吧。
08:01
好没问题,那没问题,那咱就继续了啊,那第二个呢,就是姓名是张三,那么张三这一块。你能这么干吗?你说来个int对吧,我们叫姓名是不是八张三,这样行不行啊,这样行不行啊,乱写行吗?各位。这样行不行?啊。这样写行吗?就是乱写,现在你看那同学就是就是不知道这个东西应该怎么去学,就是等号右边是个啥。等号右边是一个数据。有这些数据吗?有这个数据吗?啊。就是说咱们同学啊,就是学懵了,就学到这之后,老师我有点不太理解这个东西,我看你叭叭叭写的挺顺,为啥我一写就错呢。那你不想想,杜老师有没有曾经说过,等号右边是啥?
09:04
等号右边是啥?就是等号右边啊等号。赋值运算符,赋值运算符右边是啥?啊。右边只能是字面量。只能是自变量,我在课堂上有没有给大家讲自变量啊?就这个等号右边只能是自变量,我讲一讲,我我讲了吧,我自变量有哪些呀?整数型的对吗。有浮点型的对吗?有布尔型的对吗?有字符型的对吗?有字符串型的对吗?是不是就这几种啊,要么你写个整数数字,要么你写这种带小数的,要么你就写一个true或者是false。对吧?哎,或者是false么,你就写单引号的,要么你就写双引号的,总之你你来这么一个东西,来你给我说一下,你这外边连个双引号也没有,单引号也没有,你也不是个数字,你是个啥东西啊,你张三现在根本不是个东西。
10:13
你你你不是字面量啊,你你你说你你跟我这跟哪哪个对应上了,你张三跟我这个对应上了,跟我这个跟我这个跟我这个跟我这个对对上了,都没对上啊,所以说我当时讲课呀,在讲的过程当中,我不知道大家吸收了多少啊,吸收多少,就说等号右边这个东西只能是一个字面量,那你得理解字面量。它都有哪些啊,我课堂上不是说没讲,我讲了呀,我讲了为什么同学还能这么去写呀。对不对,还有这么问啊,老师就问我老师为啥不能这样写啊,啊没没这这你得懂规矩啊,对每一个程序都都是有说法的,都是有规矩的,没有说这个东西你必须得背会啊,你必须咋地咋地咋地啊,就但是你得知道整数型字变量有,浮点型自变量也有,多尔型字变量也有,字符型也有,字符串型也有,我不知道大家我讲完这个之后,大家理解不理解就是等号右边可以出现的是上边这中的这这堆里边的其中一个。
11:09
就是等号右边可以出现的是你上面这一堆里边的其中一个,你不能随便写等号右边的啊。等号,右边的等号就是赋值运算符,右边的只能编写。以上这一堆。当中的一个不能随便写啊,是以上你这一堆里边的其中一个,你这种语法是错误的。啊,是错误,编译报错啊编译报错。那么现在现在问一下大家,在座的各位,你能告诉我这32行编译会报什么错吗?就你你你达到一种境界,一种高手级别,就是说你在编译这个程序之前。
12:04
对吧,哎,你你就能怎么着啊,你就能预料出来。你就能预测出来这个程序啊,它它这个。类型不兼容。类型错误。是大家这个太。它外边没带双引号,我问大家这是不是一个标识符。同学告诉我,咱们就讲深点来,各位告诉我,他外边没带双引号,他不是这个不是这个,不是这个,不是这个也不是这个对吧。那不是这些东西,那我问你它是不是一个标识符啊。标识符还记得吗?各位,标识符还记得吗?标识符只能由数字、字母、下滑键、美元符号来组成,但可以含有中文,对吗?
13:01
是不是?所以我问大家,这是不是一个标识符?如果在一个方法的大括号里边。出现一个标识符。他是啥?中间有特殊符号没有啊,中间哪有没有加空格啊,没加空格啊,没有加空格,中间没有特殊符号。这个是不是一个标志符。如果在一个方法题里边,对了,我忘了问大家了,标识符可以标识哪些?哪些东西?如果按照以下代码。编写的话。张三,就这个张三啊,张三应该是一个标识符。
14:03
就是现在我我我我这个成绩,我是我是我是让他干啥呀啊。呃,这个编译一下,我是想问一下大家,这个编译会报什么错啊,咱们在这就讲深点行吧,咱们就把程序讲透了啊讲透了。如果按照以下代码编写的话。这个张三是不是应该是个标志符啊?标识符可以表示什么?还记得吗?可以标识什么类名,接口名对吗?是不是方法名对吗?变量名对不对?哎,还有什么呀,常量名对不对?好,那么现在我问大家这个更像什么。这个更像什么?这个更像什么,各位?这个更像这几个里边谁。
15:00
这个更像一个类名啊,更像接口名,更方法名。更像常亮?它更像什么呀?它更像一个变量对吧。常量别提了,各位啊,别提常量了,现在咱们常量还没有接触过呢,它现在是不是更像个变量瓶了。哎呀,我这讲深了,我不知道大家理解不理解啊来。我先问大家一个问题啊。我先考一下大家在行吧,算算扩展了各位啊,算扩展了,我先考一下大家啊。问题来了,Int a等于100 B等于什么呀?200?这个大家都理解吧。输出A。输出B。这个大家理解吗?啊。理解理解。理解的话打个一。Java c编译homework。
16:00
点Java Java运行homework可以正常运行,运行结果是什么呀?一百二百没有任何问题对吧。好了,现在我问大家问题,Int c等于B吗?可以吗?这个可以吗,各位?这个可以吗?就是把B里边存的那个数据给C。行不行,这算一个新的知识点,各位啊,这算是今天讲的新的一个知识点啊,就这种写法行不行。就我拿着一个变量,通过等号的方式付给他。啊,拿着一个变量赋给他,这个可以啊,这个可以,这个可以执行,原理是什么?就是将B变量中。啊,保存的值复制一份。
17:05
给谁?给谁?啊,我再强调一下啊,重点重点各位啊,原理是什么?把B变量中的值复制一份。啊,传给谁C啊传给C,复制一份传给C啊好,那这样的话是不是这个输出结果也是200啊。对吧,这个是不是100呀。对不对,哎,这个是多少啊,是200吧,哎,然后呢,B付给C,就表示说把B里边这个东西复制一份,注意啊,我这重点说这俩字叫复制一复制一份传给C啊C现在是200,那这个知识点是新的知识点,所以大家呢,要注意听啊,注意听大家看结果这个200,这个是200对吧?啊是没有任何问题的,是复制一份啊原理复制一份,那现在问大家一个问题。
18:00
代码这么写会不会有问题?他百分百肯定会有问题,我现在就是想问你的是,这个程序它编译器会怎么报这个错,编译器会怎么报这个错。编译怎么报这个错?应该叫找不到符号吧。刘说的对啊,叫找不到符号。因为我后边等号,后边我说了只能出现什么呀,哎,字面量对吧,这些字面量是不是这些东西啊。11.2two false单引号,诶双引号,你这个张三是不是不是其中的其中的一元,不是其中的一元,你又没有在这加双引号,你没有加这个双引号,这证明你应该是一个什么。
19:00
而且我刚才说了张三他是一个什么呀,标识符对吧。如果按照以下代码编写的话,张三是不是应该是个标识符?标识符可以标识什么?可以标识变类名、接口名,它像类名吗?不像接口名像吗?不像方法名,张三是方法名,不是变量名、常量名,对吧?所以张三有可能是变量名,也有可能是常量名,我们常量还没有学过,所以张三我们可以理解成它是个变量名。这种可以啊,张三在这里可以理解为是一个变量的名字。对吧,那我问大家,上面我们定义这个变量了吗。整个从这个大框开始,到这个位置结束。到第38行结束,我们在上面有没有定义变量?我们有没有定义这个变量?我们有没有定义这个变量,这个变量存在不存在?哎,我写没写。
20:01
这样写行不行,各位告诉我。这样写行不行?变量名,这个做变量名行不行?变量名是不是标识符,标识符能不能有,能不能含有中文。各位告诉我,这样写行不行?不行。这是不是标识符啊?如果说这个要是删掉的话,你直接这样写的话,编译器会认为什么,编译器会认为张三他是个什么。变量对吗?但是这个变量在前面定义了吗?写没写这个变量,这个变量名,这个变量声明没声明,没声明所以是什么。就是我问大家一个问题,在一个程序上来就执行,我问大家我直接访问这个东西的时候会出啥问题,告诉我访问这个会出什么问题。
21:02
就这个这个定义了吗?这个变量,哎,你在这写没写这个东西,等于这个写没写,你没写这个对吗?那你这个变量定义了吗。没有定义,那么这个是不是就是找不到符号啊。找不到符号对吧。哎,你你上来访问XYZ,那那XY存存在吗。哎,你不存在啊,来我们来编译一下,这个地方会出现一个什么问题啊,叫找不到符号,那么这个位置是不是也会出现一个找不到符号啊。是不是,哎,来编译一下。好,来看,找不到符号第12行。对吧,哎,第12行会出现一个叫做叫做什么呀,叫做找不到符号这块,那么再往下他又说第40行也是找不到符号啊,应该现在是41啊,41找不到符号,你看这个也是什么呀?哎,找不到符号。所以说我们学程序,其实你可以思考一下,想一想,这个程序其实很好玩,它很好玩,你能够猜测出来编译器会报什么错,这才是高手,你能猜出来这个程序啊,它是错了,但是编译器会报什么错,我觉得这个才是高手啊,才是高手。
22:17
对,那你怎么去改这个代码呀。怎么去改这个代码,各位。就是理解不各位。这个位置为什么会报这个错,找不到符号啊。来,同学们告诉我来这里理解不理解,理解的话打个一。这个为什么会出现找不到符号?找不到符号是因为什么?哎妈,颜标怎么还加双引号啊,加双引号那类型不兼容。
23:04
没有定义这个位置,你你你怎么改这个代码,各位。怎么修改以上代码?当然有多种修改方式。有多种修改修改方式啊。你比如说你可以这么干,想让他过,其实很简单。对不对,你可以把这个张三怎么着啊定义出来。对吧,125你付给他。变量变量名放到这儿,他呢,通过等号再付给他行不行啊。这样改行不行啊,同学们,编译编译器是编译器,能不能通过编译器?这次编译能不能通过,就告诉我编译能不能通过。可以是吧,哎,没有任何问题,来编译好来看是不是没有任何问题啊。没问题啊。
24:02
了解一下啊。啊,这个这个东西讲深了,各位讲绕了是吧,绕了是吧,你是不是有点懵了,现在。妈吗?就是咱们先不管蒙不蒙各位啊,那你就告诉我这个程序,你理解不等于100 B等于200,完了之后呢的C等于BBA呢给C是什么意思,相当于把B里边这个值复制一份给C。你能把这个理解吧。你别多想这个张三各位啊,张三没啥大不了的啊,张三,张三就是个标识符啊,就是个标识符,标识符标识符好,那么还有别的方式对吧?来,我们拿过来这样写行不行?刚才严标说了加个双引号。行不行,这个编译会报什么错?编译报什么错?这个编译报什么错又来了,哎,借助一下宇阳的叫类型不兼容啊。
25:05
这个非常好啊,叫类型不兼容,类型不兼容,因为等号右边带,既然带了双引号,那双引号一带的话,大家想一想是不是就相当于这是一个字面量了,对吧?它是字面量了,它是一个字符串型了,那你前面是一个什么呀?Int型,那你肯定是不行的。对不对,哎类型不兼容,所以这个时候呢,我们再编译你看。你看类型不兼容对不对,错误是类型不兼容对吧,所以说你看我带出来的学生啊,一般啊都是高手啊,一般都是高手,对这个大家呢,要学一些啊一些。乍一看这个程序懵了,这怎么回事对不对?哎,其实你细想一下这个东西啊,哎,有其实挺有意思的啊,挺有意思,鼓捣鼓捣挺有意思啊,类型不兼容,那类型想兼容怎么办呢。类型兼容怎么办呢?
26:00
字符串类型怎么怎么怎么定义呢。哎,新内容各位啊,新内容别问我为啥啊,别问为什么。啊,Java语言就是这么规定的。所以这块呢,我们呀,其实要想解决它也行,对不对,哎。这个位置改成四尊。别多想,各位啊,这个其实和int I等于十的原理一样,十呢,它是一个什么呀?哎,十它是一个什么呀?是一个数字,所以这个是个int,如果你张三是带双引号的一个字符串的话,那我前面就应该是四针。这是一种类型的名字啊,类型的名字死是一种类型的名字啊,死准其中S是大写的啊,不能随便写,不能随便写,String表示字符串类型,Int表示。
27:14
Int表示整数型,明白吧,啊,Int表示整数型,String表示字符串类型啊这样去理解就行了啊,这样去理解就可以了,哎,姓名对不对?哎,那么接下来我们再编译一下Java c编译Java运行好,再看张三是不是有了。对吧,输出了吧,哎,张三输出了啊输出了。好了,这块呢,咱们折腾了半天,各位啊,折腾了半天。那么关于上面这个地方讲的这个内容呢,大家下一周回味一下啊,好好回味一下好吧。
我来说两句