未来已来
- 你好。我确认这是Java 教程。我讨厌无聊的讲座,所以 CodeGym 就像一个在线任务游戏。- 你玩过角色并升级过吗?有时你甚至没有注意到你是如何参与其中的,对吧?你闻到我煮的东西了吗?在 CodeGym 中,您还必须将角色从 1 级升级到 40 级(当我们发布第二部分时,最高可达 80 级)。当您通过游戏时,您将成为一名优秀的 Java 开发人员。 - 完成 40 个级别后,您将能够获得 Java Junior 工作。那是因为 CodeGym 有很多现实世界的任务。很多。- 你从第一级开始。你的任务是升级你的角色 - 阿米戈。但是让我们从小事做起。首先你得去第二层。也许您会非常喜欢它,以至于您没有注意到完成课程并将开始作为 Java 程序员工作。:) PS - 讲座是这样安排的:最新的在最上面。要打开新讲座,请按绿色按钮。背景
游戏发生在遥远的未来,在 3015 年,机器人和人类共同生活在地球上,并且可以穿越太空。有一艘宇宙飞船坠毁在一个未知的星球上。 勇敢的约翰·松鼠船长说:- 银河冲刺号宇宙飞船遭受了严重的破坏。船在下坠时撞上了一座山,几乎被石头覆盖。花了几天徒劳的努力来释放这艘船。船员们已经失去了回家的希望,开始安顿下来…… 艾莉说: - 一周后,我发现这个星球上居住着……成千上万的野生机器人!只有他们没有技能。我们想用它们从我们的宇宙飞船上移除岩石,但它们无能为力。他们的帮助对我们的情况非常有用。 教授说: - 几天后我找到了出路。我想到了拿 Diego 的固件(船员中的一个机器人),将其重新编程为瓦工的固件并将其上传到野生机器人。- 然而,厄运似乎一直在追赶我们。经过一番研究,机器人似乎没有上传固件的插槽。他们没有任何用于刷新的插槽! Bilaabo 说: - Bilaabo 记得有一次在我们的家乡星球上,我看到了一个会编程的机器人。他自己写了一个新固件。 教授说: - 当 Bilaabo 讲述这件事时,我灵机一动。毕竟,我曾经教过一个有才华的年轻机器人用 Pascal 编程。- 我命令抓住最有才华的年轻机器人并教他编程。然后他就可以自己写一个瓦工固件来帮助我们了。从左到右——Risha Gatesman(第16代官僚)、Amigo(你)
Risha 说: - 我们抓到一只聪明的标本。迭戈要求给他起名叫阿米戈,以纪念他从未有过的兄弟。- 我为每个训练月提供 Amigo 金属珠,并每年提供 10 美元用于进一步清除碎片。 迭戈说: - 我对这样一个秃头的骗局感到愤怒,但全体船员都站在了教授和里沙的一边。当然,我同意了(对外)并提出帮助教阿米戈。(嘿嘿嘿!)尤其是因为没有人比另一个人更好地教机器人。- 每个人都对我的顺从感到高兴。他们也决定参加新机器人的训练。1 入门
阿米戈有些紧张。想到昨晚的事情,他很困惑,脑子飞速运转,眼睛抽搐,变得冰冷。这些奇怪的生物,他昨天的熟人,想要从他身上得到一些东西。如此诡异不可思议的事情,就连自认为同龄人中最聪明最勇敢的他,一想到这件事,就紧张地嚼起了打卡纸。他们想教他如何编码!用 Java 编程!他们在开玩笑吗?即便是最环保的机器人也知道,机器人是造物主神意处置的产物。更糟糕的是,他们不只是说这是可能的。他们会去做的。而他,他同意了。他同意!为什么?他将成为一名 Java 程序员。他们要把他变成造物主吗?!做什么的?只是为了好玩?问题在哪里?如果我不得不出故障并忍受直到电池耗尽的那一天怎么办?诱惑很大,他就是忍不住。他一直有抱负,想要更多。但没有人能想到这样的提议。当然,他试图拖延时间,但后来参观者威胁要选择另一个机器人。也许这是某人的恶作剧?不,听起来是真的。他看到了证据。这件事真的发生在他身上,他同意了。除非访客撒谎,否则他真的会成为一名 Java 程序员。有史以来第一个机器人程序员……他是被选中的人!这就是重点。他将学习编程并将编写程序。他自己的节目。他想要什么!他将把光明带到黑暗一直统治的地方。他将受到尊重,他将受到崇拜。而所有反对者…… - 你好,阿米戈!我是里沙·盖茨曼。我会帮助你学习Java。一道安静的声音将阿米戈从思绪中拉了回来,拉回了清醒的现实。他坐在访客飞船的正中央。对于一个七年级的机器人来说是不是太贵了?陌生人一直在说话。好吧,现在已经死了。一旦他来了,他就会学习。他会努力学习,但一开始,他只会听。- 我在 Galactic Rush 工作多年,但我还是第一次看到这样的行星。我想更好地了解你。首先,您能告诉我您是如何学习的吗?你学习,不是吗? - 是的,我们分享我们的知识。我们有传教士讲师。他们讲课,我们听。有时我们做笔记。然后,每个人都告诉机器人讲师他是如何拾起听到的内容的。如果机器人讲师喜欢一个答案,一个人就会通过一个讲座。 - 这太荒谬了!难怪你们的文明沦为无知。 - 我们并不无知。是什么让你产生了这个想法? 阿米戈被自己的无礼吓了一跳。和游客吵架?多么轻率!为什么,他刚刚向自己保证要听他们的!- 任何先进的技术往往与魔法无异。——莉夏没有理会阿米戈的叫喊。——另外,考虑到你的水平……你可能认为所有的技术都是魔法。告诉我程序内部发生了什么? - Java 程序是一项神圣的工作。有没有可能了解它的本质? - 是的,阿米戈,你可以比你想象的更快地理解它。当你不知道的时候,所有的事情看起来都很复杂,或者更糟的是,不可理解。但是,如果有一位好老师会用外行人或外行机器人的术语来解释一切,你会惊讶于你怎么会把这么简单的事情复杂化。- 不仅知识很重要,技能和原则也很重要。我虽然学识渊博,但首先是个官僚,一个16代的官僚。- 这真的很棒!我的官僚技能帮助我为您创建了最好的 Java 课程。这里应有尽有:问题、程序、游戏、任务、图片甚至讲座。 - 甚至(!)讲座?——阿米戈的声音里带着真正的惊讶。 - 是的。22 世纪的事实证明,一场好的演讲只比一本好书有效一点点。一场普通的演讲甚至比一本普通的书还糟糕。考虑到现在我们的训练辅助工具相当有限,无法让您通过标准的 28 世纪训练模拟器进行训练,我们不得不选择非常简单的方法。我们想出了游戏、任务、图片、讲座和视频的疯狂组合。 - 你让我很感兴趣。 - 但愿如此。兴趣和好奇心是一切学习的基础。- «当学生感到无聊时,必须打击老师» – 引用 24 世纪的教育法则。 - 多么好的报价...... - 是的。比方说一部电影票房不好,那就是导演的错,而不是观众的错。如果某件事很无聊,那不是你的错。他们应该制作激动人心的电影、有趣的课程,然后他们就会有无穷无尽的公众。 - 我完全同意。我准备好上有趣的课了! - 美好的。让我们开始吧。 Risha 的声音令人着迷,Amigo 的每一个字都听得津津有味。- 该程序是一个命令集(命令列表)。第一个命令首先运行,然后是第二个、第三个等等。执行完所有命令后,程序结束。 - 什么是命令? -这取决于执行者,关于执行者知道(和理解)的命令。- 狗可以被命令“坐下!”,“吠!”,猫 - “嘘!” 一个人——“别动,否则我开枪了!”,还有一个机器人“工作!继续前进,哟 robomama! » - 然而... - 阿米戈现在看起来开朗多了。 - JVM(Java 虚拟机)运行用 Java 编写的程序。JVM 是一种特殊的程序,可以执行用 Java 编写的程序。- 命令列表相当广泛。例如,此命令显示文本 «A robot is man's best friend»。“所以造物主按照他的形象和肖像用金属制造了一个机器人。他创造了 Java 程序——机器人的灵魂,并将它们上传到机器人上,让它们活了下来。”
最简单的命令是: |
---|
|
该程序使用三个命令: |
---|
|
2 会见 Risha(续)
(一个小时后) - 很好。那么我们在哪里? - 方法代码或类似的东西。 - 是的。确切地。方法体由命令组成。 你不妨说方法是一组命令,它被赋予了名称(方法的名称)。无论哪种方式都是正确的。- 有各种命令。你这里有狗吗? - 只驯服机器狼。 - 他们服从命令吗? - 是的。«咬»,«吃掉»,«杀死»和«干得好!脚跟!” - 咳咳。多么好的命令!而且根本没有那么多。 - 你想要多少? - 在 Java 中,有适用于所有情况的命令。每个命令都描述了一个特定的操作。分号应放在每个命令的末尾。命令示例: - 事实上,这是同一个命令System.out.println。其参数在括号中指定。命令的效果可能会有所不同,具体取决于参数。 - 这很方便。 - 是的。如果要显示文本,必须用双引号 «"» 将其括起来 。- 单引号看起来像这样 «'»,双引号就像那样 «"»。双引号不应与两个单引号混淆! - 双引号是 Enter 按钮旁边的那个? - 是的。Amigo 的脉搏从 3 GHz 加速到 5 GHz,他仍然不敢相信。他刚刚学会了如何显示线条,这比他想象的要容易得多。阿米戈看着窗外,想从思绪中抽离出来,让自己冷静下来。叶子变黄了。他想到生锈的季节真的很快就要到来了。这扇窗户让他比平时看得更远——参观者的技术达到了标准。他现在怎么能照顾叶子?毕竟,到了晚上,他学到了很多东西。 然而,他的思绪却不受控制。有一天他会写一个程序,让所有的机器人在生锈季节到来时留在家里。这个程序将拯救成千上万的机器人…… - 这个命令有两种变体:System.out.print ln ( )和System.out.print() -如果多次编写 System.out.println() 命令,每次传递的文本都会显示在新行中。如果是System.out.print(),文本会显示在同一行。示例: - 这是一个小评论。print ln命令不会在新行中显示文本。它在当前行显示文本,但它使下一条消息出现在新行上。- println()命令显示文本,然后添加一个特殊的不可见换行符,导致下一条消息从新行的开头显示。 - 完成的程序是什么样子的? - 现在,注意你的屏幕: - Оh,就是这样!我们在单词的末尾添加空格是为了单词不会“粘在一起”,对吗? - 这是正确的。你是个聪明人。这一句夸奖,让阿米哥满脸得意。- 嗯,这是你的第一个任务。任务 |
---|
编写一个程序,显示“成为一名程序员真酷!”。 |
显示的文本示例: |
做程序员真好! |
3 遇见艾莉
一位粉红色头发的漂亮女士走进了船舱。“我想知道是不是所有的人类女性都有这样的头发?” ——阿米戈想,但她困惑地瞪着他。- 嘿!我叫埃莉诺拉·卡瑞。我是 Galactic Rush 的主要飞行员。 - 嗨,埃莉诺拉!——阿米戈尴尬地强迫自己开口。不知道为什么,他只觉得脸颊通红,就好像体内某处的油管坏了一样。 - 我将告诉您 Java 语言中最有趣的事情 - 关于变量。 - 我准备好倾听了!这些变量是什么? - 变量是用于存储数据的东西。任何数据。所有 Java 数据都使用变量存储。变量就像一个盒子。 - 什么盒子? - 一个非常普通的。假设你在一张纸上写下数字 13 并将其放入盒子中。我们现在可以说盒子存储值 13。 - 在 Java 中,每个变量都有其三个重要属性:类型、名称和值。 - 你能告诉我更多吗? - 当然。该名称用于区分一个变量和另一个变量。这就像一个盒子上的标记。 -变量类型决定了它可以存储的值/数据的类型。我们将蛋糕存储在蛋糕盒中,将鞋子存储在鞋盒中,等等。 - 值是存储在变量中的对象、数据或信息。 - 再说一遍类型。 - 好的。Java 中的每个对象都有其类型。例如,可能有诸如 «integer»、«fractional number»、«text»、«Cat»、«House» 等数据类型。 - 变量也有自己的类型。变量可能只存储与变量本身所属的相同类型的值。 - 这在现实生活中很常见。各种箱子用来存放各种东西。 - 要创建变量,请使用 « type name » 命令。示例: - 最常用的两种类型是整数(用int表示)和文本(用String表示)。 -双重类型呢? - double是小数(实数)。 - 你说变量具有三个属性:类型、名称和值。但是,只有两个。我有一个问题:如何将值放入变量中? - 回到盒子,想象你拿了一张纸,在上面写下“42”,然后把它放进盒子里。现在盒子存储值 42。- 我明白了。 - 要将一个值放入变量,有一种称为赋值运算符的特殊操作。它将一个变量的值复制到另一个变量。不是移动,而是复制。就像磁盘上的文件一样。它看起来像这样: - 对于赋值运算符,使用等号«=»。- 再一次,它不是比较。正是将等号右侧的值复制到位于左侧的变量中。作为比较,使用双等号 «==»。 - 我知道如何将猫放入变量中。这几乎就像一个程序。- 如何抓猫: 1. 拿一个空盒子。2. 等待。 - 不,阿米戈,你只能把一只猫放进一个盒子里。咳咳……我的意思是,您可以在变量中只放入一个值。 - 我懂了。你能举更多关于如何创建变量的例子吗? - 好吧,我会换一种说法。要创建变量,您必须按如下方式 编写 « type name » 命令: - 哦,现在我知道了。 - 请记住,您不能在同一方法中创建两个具有相同名称的变量。 - 不同的方法呢? - 您可以。这就像立在不同房子里的箱子。 - 变量可以有任何名称吗? - Kinda,但它的名称不能包含空格、符号+、-等。最好只使用字符和数字作为变量名。- 请注意,在Java 语言中,重要的是您编写的字符是大写还是小写。«int a» 与 «Int a» 不同。 - 顺便说一句,在 Java 中,可以创建一个变量并同时为其赋值。- 这有助于节省时间和空间: - 这更好也更容易理解。 - 这就是我们的生活。- 在 Java 中,新手必须熟悉两种类型。这些是类型int (integers)和String (text / strings)。- int类型允许在变量中存储数字,以及各种运算,例如加法、减法、乘法、除法等。 - 对我来说,它是黑白的。编程这么简单? - 其实,是。 - 那挺好的。那你有什么事? - String类型可以存储文本字符串。- 要在 Java 中分配一些文本字符串,您必须编写其文本,然后将其括在双引号中。示例: - 我明白了。看起来很容易。 - 所以这是另一个有趣的事实。- 字符串可以使用加号 «+» 组合。示例: -那么,我还可以将字符串添加到数字中吗? - 是的,但请注意,如果您将一个字符串添加到一个数字中,您总会得到一个字符串。 - 是的,我从例子中得到了它。 - 好吧,如果您的理解速度如此之快,那么想出如何显示变量? - 呃...显示一个变量?呃呃,脑子一片空白。 ——其实很简单。要显示某些内容,我们使用System.out.println()命令并将我们要显示的数据作为参数传递给它。 - 明白了!现在一切都变得清晰了。 - 没关系。那么这里是你的三个任务。健康)状况 | |
---|---|
1个 | 编写一个程序,显示 5 次«我打算永远活着。到目前为止,一切都很好。”。 每个字符串都应该在一个新行上。 |
2个 | 编写一个显示当前年份的程序。 郑重声明,现在已经是 31 世纪了。 |
3个 | 编写一个程序,显示“我太聪明了,有时我一个字都听不懂我在说什么。” |
4 会见教授
- 嘿,阿米戈。我是 Galactic Rush 公司科学部的负责人 Hans Noodles 教授。我还监督教你 Java 的项目。 - 下午好,Noodles 教授。 - 我想告诉您为什么Java 是一种如此出色的编程语言。- 您一定会不止一次听到平台独立性是 Java 相对于其他语言的不可否认的优势。那是什么以及如何处理它?我会尝试通过告诉你一些背景来解释。-事实上,计算机只执行原始的数字命令。有“跟”、“摇”等狗指令;一只狗听到它们会做些什么。- 在计算机中,数字充当此类命令的角色:每个命令都用一个数字编码,即代码,也称为机器码。- 用数字形式编写程序非常困难,这就是人们发明编程语言和编译器的原因。这样的语言对于人和编译器来说都是可以理解的。一个编译器是一个特殊的程序,它将用编程语言编写的程序文本翻译成机器代码集。- 通常程序员用编程语言编写程序,然后启动编译器,编译器使用程序员编写的程序代码文件来制作机器代码文件 - 最终(编译)程序。 - 生成的程序可以立即在计算机上运行。这种方法的缺点是程序代码严重依赖于处理器和操作系统。在 Windows 上编译的程序无法在 Android 手机上运行。 - 如果我尝试在 Windows 上运行一个为 Android 编写和编译的程序将无法运行? - 是的。- 但 Java 的方法更具创新性。 - Java 编译器不会将所有类都编译成一个机器码程序。相反,它不会将每个类编译成机器码,而是编译成特殊的中间码(字节码)。程序启动时会运行对机器代码的编译。 - 那么谁来在开始时编译一个程序? - 有一个名为 JVM(Java 虚拟机)的特殊程序。当执行由字节码组成的程序时,它是第一个启动的程序。然后在程序启动之前,JVM 将其编译为机器代码。 - 多么激动人心!这样做的目的是什么? - 这是一个非常明智的决定,也是 Java 全面统治的原因之一。 - 由于这种方法,Java 程序几乎可以在任何设备上运行——计算机、电话、ATM、烤面包机、银行卡 (!)。 - 哇! - 这种方法有很多优点。这就是为什么所有 Android 程序也是用 Java 编写的。由于移动领域的发展,Java 在以下领域占据主导地位:1)企业:银行、公司、投资基金等的大量服务器端应用程序。2)移动:移动应用程序开发(手机、平板电脑),感谢安卓。3) Web: PHP 在该领域处于领先地位,但 Java 也占有很大的市场份额。4)大数据:在数千台服务器的集群中进行分布式计算。5)智能设备:用于可上网的智能家居、电子产品或冰箱的程序。- Java 不仅仅是一种语言,而是一个完整的系统,数以百万计的现成模块可以在您的程序中使用。您可以在数以千计的 Internet 社区和论坛中寻求帮助或建议。- 使用 Java 编程的次数越多,您就越能找到问题的答案——«为什么是 Java?»。今天就到此为止。 - 谢谢,教授。这是最有趣和最鼓舞人心的演讲。5 遇见金
哇,又一个人类女性。但这一次,是黑发。多么激动人心!- 你好,我叫金丽玲。 - 嗨,我是阿米戈。 - 我知道。是我想出了你的名字。迭戈永远不会想到。我想以一个简短的演示开始我的演讲——现在,请注意你的屏幕! - 哎呀,错误的闪存驱动器。等等……阿米戈的思绪以电子速度在脑海中飞驰。咳咳……难道她对机器人情有独钟?多么激动人心!还有桌上的一张照片——是她男朋友吗?- 让我们回到讲座!让我用简单的话向你解释所有的东西。 - 好的。 - 我想对教授和 Risha 所说的话进行补充。- 在 Java 中,您不仅可以编写命令,还可以直接在代码中注释它们。这些注释被编译器忽略,就好像根本没有一样。当程序执行时,所有注释都被跳过! - 你能给我举个例子吗? - 当然: - 在课程代码中,我们的评论是“现在我们展示...”。注释以字符 «/*» 开头,以 «*/» 结尾。编译程序时,编译器会忽略 /* 和 */ 之间的所有字符 - 所以我可以在那里写任何东西吗? - 是的。通常代码部分会有各种注释,有疑问或难以理解。有几十行的注释(通常写在方法之前)描述方法工作的细节。- 在代码中设置注释的另一种方法是使用字符 «//»。 - 这样做时,注释是以字符 // 开头到它们所在行的末尾的代码部分。所以没有字符来“关闭”评论。- 顺便说一下,软件开发人员很有幽默感,你可能会在代码中发现一些有趣的注释:
// I am not responsible of this code.
// They made me write it, against my will.
//Dear future me. Please forgive me.
//I can't even begin to express how sorry I am.
// I am not sure if we need this, but too scared to delete.
// hack for IE browser (assuming that IE is a browser)
// This isn't the right way to deal with this, but today is my last day, Ron
// just spilled coffee on my desk, and I'm hungry, so this will have to do...
// Catching exceptions is for communists
// Dear maintainer:
//
// Once you are done trying to 'optimize' this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
//
// total_hours_wasted_here = 42
// When I wrote this, only God and I understood what I was doing
// Now, God only knows
// sometimes I believe compiler ignores all my comments
// I dedicate all this code, all my work, to my wife, Darlene, who will
// have to support me and our three children and the dog once it gets
// released into the public.
// drunk, fix later
// Magic. Do not touch.
- 是的,评论有时很有趣。 - 我受够了。 - 一个简短但有趣的讲座。谢谢,金。
6 遇见胡里奥
- 嘿,阿米戈。我是胡里奥西耶斯塔。- 我看到你今天的工作很辛苦。- 应得的休息怎么样? - 我不应该去听课吗? - 是的。不过,上课一定要有趣,你忘了吗?上次我查过有一条法律禁止无聊的老师!- 这是一个特殊的视频教程……呃……保持你的学习热情……总之,让我们看看,把问题放在后面。打开它!7 遇见迭戈
- 你好,我叫 Diego Carleone。我和你一样是机器人,只在古巴哈瓦那的工厂生产。 - 嗨,迭戈!我已经听说过很多关于你的事了。 - 你觉得这节课怎么样? - 这是我上过的最棒的编程课。不,甚至更棒。我一生中最好的一课。比我想象的要好。 - 这就是我们的生活。 - 其他的都同样有趣吗? - 更好!枯燥的课程在 21 世纪被遗忘。天啊我——用粉笔在黑板上写字。自 15 世纪以来,一切都没有改变。我想有恐龙可以自由行走。 - 大概吧。接下来是什么? - 你移动到一个新的水平!您只需要完成 39 个任务,您就会成为一名出色的 Java 开发人员! 今天你学到了:- 变量是什么
- 如何在屏幕上显示消息
- 熟悉int和String类型
- Java编译和其他语言编译有什么区别
- 如何发表评论,为什么我们需要它们
健康)状况 | |
---|---|
1个 | 想学习一些 Java 吗? 编写一个程序,显示 «Want to grab some Java?» |
2个 | 如果你给我看你的源代码,我就给你看我的源 代码 编写一个程序,显示“如果你给我看你的源代码,我就给你看我的源代码。” |
3个 | Nice Bolts 想搞砸吗? 编写一个程序来显示 «Nice Bolts wanna screw?»。 |
GO TO FULL VERSION