04-推杯换盏
带着老学士的任务书,拜别老学士,退出门来,正好和雪山派的大人物撞了个满怀。
“我正找你,刚才得了两壶好酒,要不要一起喝点儿?”
你抬头望向瀑布外,却见夕阳西下,一轮晚霞映在天边,不想又是一天要过去了。
反正闲来无事,不若跟他一起喝点儿,跟大人物转身来到厨房,点了几个下酒菜,找了张闲桌坐了下来。
酒菜之间,两人推杯换盏,聊了一些江湖上的事情。
酒至半酣,大人物突然问道:“贤弟,int和String你了解多少?”
你微微一愣,别说,这几日虽然每天都听说int和String两种武功,但是这跟自己世界中的武功相比,太多与玄学,实在不知道是怎么一回事。
你把脑袋摇的跟拨浪鼓一样,道:“我还真不知道这其中的奥妙。兄台可否赐教一二?”
大人物收拾一下不正经的神态,一本正经的说道:“我想,你一定有很大的疑惑:武功,所谓武功,克敌制胜之手段,竞技的本领。但是,为什么爪洼世界的武功不是竞技之用而是注入之用呢?”
“其实,int也好,String也罢,其本质跟武功关系不大,其实int和String都是一种形态,或者叫做类型,通过这种形态可以变化出各种的所谓的变量。”
“我们平时所能见到的,大多与这两种形态有关,比如数字,就是int,而文本就是String。整个爪洼世界被一张大网所笼罩,其核心就是爪洼虚拟机,爪洼虚拟机的运行前,靠的是处理器的运行,而处理器的运行就是通过从内存中读取内容或者写入内容。”
“所谓的写入内存,并不是用笔去写,而是通过符咒的方式,加上武功的帮助,最终完成这些内容的写入,因此,武功在很大程度上,决定了这些内容能够正确的写入到内存中去。”
大人物停下话头,呷了一口酒,闭眼砸吧了一下滋味后,缓缓的又道:“你有没有好奇过,为什么这里写符咒用的都是西方文字?”
你接触多了类似的事情,到并不非常在意这件事情,大人物问到此时,你却才发现的确如此。
大人物从你的神色中就已经看出来了你的不解,于是道:“所谓的爪洼世界,其实本来就不是天朝的原有的东西,这里其实就是一个平行时空,而这里的所有人都是因为我们是天朝人,所以周围所有人都是天朝人。说白了,我们在一个平行空间中,所有你看到的这一切,都是NPC,你其实就是在一个游戏里。”
你听罢大人物的话,突然想起那天在山脚下睡梦中乔布斯说过的话,你激动的抓住大人物的手,问道:“你也是穿越过来的,是不是?你一定可以带我出去的,是不是?”
大人物被你抓的有点儿疼,连声道:“你先放开我,我慢慢跟你说。”
“你猜的没错,我确实和你一样是穿越过来的。但是我并没有什么大志向,正好有一天雪山派招工,我就去了,然后就被派到这里。我觉得我现在挺好,我也不认为自己能走出去,所以我就假装是个NPC,在这里混吃混喝的,啥也不愁。”
“别说我了,我反正是不打算出去的。我就是感觉跟你投缘,所以才告诉你这些,你得把这些事情烂在肚子里,不然我可就惨喽。”
你见大人物并没有打算离开的意思,觉得有些悻悻然,但是你转头又想,说不定可以从大人物这里得到一些离开的关键,于是稳定心神的问道:“既然如此,我自当给兄台保密,那么还请兄台多告诉我一些知识吧。”
大人物道:“只要你保密,其他的你放心,我自当言无不尽的。”
“天朝人不懂得这些编程的概念,他们只是按照程序设定的方式进行他们的工作,因此他们需要把不明白的问题通过他们自己的理解解释的合情合理,因此就有了武功,符咒这些概念。这也不打紧,有了这些概念,其实更容易让你学会编程的一些内容。”
“我们继续说回int和String的问题,其实在编程的世界中,int和String就是两种数据类型,以后你还会学到更多的数据类型。所谓的符咒,在编程世界中被称为类,这里存在一个面向对象的概念,以后你会慢慢明白,我不需要对你说的太多,我只是要告诉你,符咒就是类,而类就是类型。”
“String类型是一种特殊的类型,首先你记住,String它是一个类,因为S是大写的,只要以后看到第一个字母大写的标识符……对了,标识符就是你看到的所有的变量,常量,类名,方法名等等,这些我们自己定义的内容都叫做标识符。你只要看到第一个字母大写的标识符,那么就可以确定它是类。当然也有例外,慢慢你就懂了,先这样记住就行。”
“String这个类非常强大,它不仅可以定义字符串,还能改变其他类型的内容变为字符串。我给你写个符咒你看看能不能看得懂。你不是已经从阿娇那里知道包的概念了吗?你可以以今天的日期做一个包,然后给我一个符咒,我写给你看。”
你听从大人物的建议,在原来包的中有放入一个小包,写上今天的日期,又拿出一张符咒递给大人物。之间大人物快速的在符咒上写了些内容
package xkx.javaworld.day0404;
/**
* 符咒包: xkx.javaworld.day0404
* 总纲名: StringDemo1
* 制符人: 小虾米
* 符咒文: String的相关知识
* 制符日: 爪洼历1127年04月04日
*/
public class StringDemo1 {
public static void main(String[] args) {
String str1 = "hello";
String str2 = " ";
String str3 = "world";
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str1 + str2 + str3);
}
}
大人物写完之后,将符咒贴在桌子上,只见桌子上显现一些内容:
符咒效果 |
---|
hello world hello world |
大人物说道:“你看,我定义了三个String类型的变量,分别为str1,str2,str3,当我去执行这个符咒的时候,println方法会将这三个变量的值显现出来,并且我通过+符号可以将在和三个值串联为一个内容,这就是String类型的基本使用。”
“我再写一张关于int类型的给你看。”说罢,大人物又从你包中拿出一张符咒写了起来。
package xkx.javaworld.day0404;
/**
* 符咒包: xkx.javaworld.day0404
* 总纲名: IntDemo02
* 制符人: 小虾米
* 符咒文:
* 制符日: 爪洼历1127年04月04日
*/
public class IntDemo02 {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a);
System.out.println(b);
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
}
}
“这是int类型,它表示的就是一个整数,就像我们学过的一样,数字之间是可以进行运算的,我们称为四则运算。但是应该你也知道,在爪洼世界,也就是编程世界,有时候除法运算不是你所理解的那样。有的编程语言中的除法可能会有小数,但是爪洼,也就是Java,它的除法运算不会保留任何的小数。我们看看结果。”
符咒效果 |
---|
30 -10 200 0 |
“就像你看到的,除法运算的结果为零,原因就是不保留小数。我们都知道10除以20应该是0.5,而int的特性就是只取整数不取小数,所以0被保留,.5被舍弃,要记住,这里没有四舍五入的概念。”
“我们今天再看一个符咒,我们这一次把int和String一起使用。”
package xkx.javaworld.day0404;
/**
* 符咒包: xkx.javaworld.day0404
* 总纲名: IntStringDemo03
* 制符人: 小虾米
* 符咒文:
* 制符日: 爪洼历1127年04月04日
*/
public class IntStringDemo03 {
public static void main(String[] args) {
int a = 10;
int b = 20;
String str = "总和";
System.out.println(str + a + b);
System.out.println(a + str + b);
System.out.println(a + b + str);
}
}
大人物写罢,直接放在桌子上,启动了符咒。
符咒结果 |
---|
总和1020 10总和20 30总和 |
当结果显现之时,大人物道:“我希望你能明白这个符咒的意义。String类型通过+符号,会将其他的类型变为String类型,刚才我已经说过了。所以第一个println方法显示结果的时候先通过str字符串转化了a变量,字符串本身是不具备四则运算的,所以在继续合并变量b的时候,a和b不会进行加法运算,因此str,a,b的值就像是拓写一样顺次被写了出来。”
“第二种比较容易理解,str作为String类型,任何变量与之相加都会变为String类型,因此a和b都直接被写了出来。”
“我希望你能明白的是第三种,像第一种情况,String类型的后面有多少个其他类型变量都会被变为String类型,但是前面不一样。因为执行的过程是从上往下,从左往右,因此,前面的a和b作为数字类型,他们具有加法运算的功能,所以先进行了加法操作,然后被str给同化为String类型,这一点要牢牢记住,这三种情况要一一分清才行。”
大人物说罢,收起三张符咒递给了你,你小心翼翼的把符咒收好。
大人物晃了晃酒葫芦,发现不一会儿功夫,已经将两壶酒喝了个精光。
“今天就说到这吧,没有酒了,说啥也不香了,而且今天跟你说的也很多了。千万记住,给我保密。”
你郑重的回应了大人物,大人物感觉挺放心,又道:“兄台,我这里有些任务可以给你,我不能帮你走出去,但是我可以帮你提升一些经验,祝你早日离开。”
说罢,递给你几张符咒。
任务1:学会保密
有的时候,相信一个人不是非常容易的事情。但是由不得不冒着风险去相信别人。大人物希望你能够真的为他保守秘密,所以大人物希望你能够将“我将保守大人物的秘密,不向任何人提起这件事情。”这句话打印10遍,虽然不知道是否管用,但是总是比没有任何的字面保证来的保险一些。
package xkx.javaworld.level01.task05;
//在这里编写代码
任务2:混乱的注释
符咒师的工作有时候会非常无聊,无聊到只是修改客户写错的注释。大人物今天得到一份基本不赚钱的活,只要把注释修改正确就可以了,或许你可以帮大人物改一下。
客户本来是想要显示一句诗:明日复明日,明日何其多。
package xkx.javaworld.level01.task06;
/**
* 符咒包: xkx.javaworld.level01.task06
* 总纲名: Task
* 制符人: 小虾米
* 符咒文: 混乱的注释
* 制符日: 爪洼历1127年04月04日
*/
public class Task {
/*
符咒师的工作有时候会非常无聊,无聊到只是修改客户写错的注释。
大人物今天得到一份基本不赚钱的活,只要把注释修改为正确就可以了。
或许你可以帮大人物改一下。
*/
public static void main(String[] args) {
//String s = "明日";
//System.out.println("明日");
//System.out.println("复");
//System.out.println("重复");
//System.out.println(s);
//System.out.println(",");
//System.out.println(s);
//System.out.println("明日");
//System.out.println("何");
//System.out.println("如何");
//System.out.println("he");
//System.out.println("少");
//System.out.println("奇多");
//System.out.println("其");
//System.out.println("多");
//System.out.println("多。");
}
}
任务3:注释的用法
客户有时候会写错一些内容,但是我们不应该直接去修改这些内容,最佳的做法就是通过注释原有的内容,然后再去定义新的内容。
在检查客户的符咒是,发现客户把名字写错了,这是一个关于老学士的符咒,你看看能不能改一下。
package xkx.javaworld.level01.task07;
/**
* 符咒包: xkx.javaworld.level01.task07
* 总纲名: Task
* 制符人: 小虾米
* 符咒文: 注释的用法
* 制符日: 爪洼历1127年04月04日
*/
public class Task {
/*
客户有时候会写错一些内容,但是我们不应该直接去修改这些内容,最佳的做法就是通过注释原有的内容,然后再去定义新的内容。
在检查客户的符咒是,发现客户把名字写错了,这是一个关于老学士的符咒,你看看能不能改一下。
*/
public static void main(String[] args) {
String name = "老居士";
String text = "您好," + name + ":";
System.out.println(text);
}
}
任务4:更多的修改
我们在符咒中又发现了多处需要修改的内容,其中有一处就是老学士在给龙木岛主的符咒中,搞错了两个人的年龄。
我们都认为你还记得之前帮老学士计算的岛主们的年龄一事,所以这个还是由你来处理更好一些。
package xkx.javaworld.level01.task08;
/**
* 符咒包: xkx.javaworld.level01.task08
* 总纲名: Task
* 制符人: 小虾米
* 符咒文: 更多的修改
* 制符日: 爪洼历1127年04月04日
*/
public class Task {
/*
我们在符咒中又发现了多处需要修改的内容,其中有一处就是老学士在给龙木岛主的符咒中,搞错了两个人的年龄。
我们都认为你还记得之前帮老学士计算的岛主们的年龄一事,所以这个还是由你来处理更好一些。
*/
public static void main(String[] args) {
String longName = "木岛主";
int longAge = 67;
System.out.println("姓名:" + longName + ",年龄:" + longAge);
}
}
我来说一句