John Squirrels
第 41 级
San Francisco

旧级别 02

已在 随机的 群组中发布
个会员

CodeGym – 学习 Java 编程

旧级别 02 - 1学习编程和接受教育的全新方式怎么样?这看起来不像你以前见过的任何东西。学习如何,你有一个目标,手段和结果?我很高兴向您介绍用于学习 Java 的新在线编程课程。

1 训练是一个网络游戏

您接受一项任务,执行它并获得奖励。我认为这对你来说很清楚也很常见。任务种类繁多:阅读代码、解决任务、视频课程、更正代码中的错误、添加新功能、大型任务、编写游戏等等。

2 只有最基本的东西

为了课程不会持续5年,我把有用的都扔掉了,只留下最需要的东西。我分析了劳动力市场上的数十个职位空缺。本课程包含新手获得 Java 初级开发人员工作所需了解的所有主题。

3 我已经彻底了解了您的培训

一个完整的课程包含500 个小型讲座和 1200(!)个实际任务。任务虽小,但数量众多。有很多。就那么最低限度,做那个,你就会得到如此宝贵的经验。还有结对工作、不同的游戏、大型任务、真实项目和其他类型的练习。

4 你不能完成游戏而不成为开发者

课程包含 40 个级别。只有在当前级别上解决了大部分任务后,您才能进入下一级别。从小而简单开始,以大而有用结束。每个到达终点的人将获得300-500小时的实践经验。这提供了一个很好的获胜机会。并找到一份工作。

5 以目标为导向的面试准备

最后 10 个级别专门用于撰写简历、准备面试和获得团队合作技能。将添加求职面试视频及其分析。好吧,当然,面试中的典型问题和答案。 旧级别 02 - 2

6 可现场直接解决任务

它非常方便和有效。刚刚在讲座中分析了一项新任务后,您必须在网站上通过类比来创建自己的任务。对于那些想在 IDE 中完成任务的人来说,有一个插件可以让您通过点击两次来接收任务,然后将其提交以供签入。讲座、示例分析、直接在网站上解决任务、在 IDE 中解决任务——理论与实践之间的差距前所未有地缩小。

7 即时任务检查(不到一秒)

您是否熟悉这种情况,当您移交一项任务/工作进行检查时,不得不等待一周的结果,因为检查它的人很忙?大多数线下课程就是这种情况。在 CodeGym 中,按下“执行/检查”按钮后,您将在不到一秒钟内获得编译和检查任务解决方案的结果。

8 CodeGym 喜欢它,当你在学习期间花时间在 Facebook 上时

在 Facebook 上有一个专用于该项目的页面。您可以在其中找到有趣的技术文章、励志故事、CodeGym 新闻和许多其他有用的信息。

9 覆盖范围

讲座中有许多不同网站的参考资料,您可以在其中阅读其他讲师的解释。我的目标是让你理解材料,而不是只听我说。

10 你只需要你的大脑和计算机就可以成为一名开发人员

这将花费您 3 到 6 个月的时间,具体取决于您练习的时间。

11 支持

旧级别 02 - 3当你面对成千上万的任务时,毫无疑问会出现问题。我们建立了一项特殊服务,您可以在其中提出有关任务的问题。其他 CodeGym 学生、版主、志愿者和该服务的创始成员将回答您的问题。

12 社区

我们相信团结就是力量。因此我们创建了社区,您可以在这里提问;讨论不同的话题,分享文章和博客。此外,社区是熟人找工作的理想场所。因此,请随时提出聪明的问题并给出聪明的答案。您的行为和帮助他人越积极,其他协会成员建议您加入他们项目的机会就越大。

你已经达到了一个新的水平

2级

旧级别 02 - 4

1 Elly,一切的基础

- 嘿,阿米戈。今天我想告诉你一个典型的 Java 程序是如何构造的。关键是每个 Java 程序都由类和对象组成 - 我已经知道什么是课程了。什么是对象? - 类比建造一艘小船,首先需要画出图纸,然后交给船厂。将根据这张图纸组装一艘船。或五艘船。事实上,你想要多少就多少。几十艘相同的船是根据一张图纸建造的,这就是全部!- Java 编程中的所有内容都完全相同。 - 程序员就像设计工程师。如果设计工程师必须画图,Java 程序员就必须编写类。 然后,根据图纸制作零件,根据类制作物体。 - 首先,我们编写类(画图),然后在程序运行时,Java 虚拟机使用这些类创建对象。就像造船一样。有一张图纸和很多船。不同的船只有不同的名称,装载着不同的货物。然而,它们非常相似:它们都具有相同的结构并且可以执行相同的任务。 - 就船舶而言,一切都很清楚。给我更多的比较来理解它到底是什么? - 当然。例如,蜜蜂...... 旧级别 02 - 5- 哦不,等一下,蜜蜂让我想起了一些不好的事情。想想蚁丘更好。 - 蚁丘是对象交互的一个很好的例子。在最简单的蚁丘中,有三类蚂蚁:蚁后、兵蚁和工蚁。每个班级的蚂蚁数量不同。蜂后独自在巢中;有数十名士兵和数百名工作蚂蚁。所以,我们可以说,有三个类和数百个对象。蚂蚁彼此交流,同蚂蚁和其他类的蚂蚁按照严格的规则交流。 - 这是一个完美的例子。对于一个典型的程序,它都是一样的。主对象创建所有其他类的对象。对象开始相互交互并与程序的“外部世界”交互。对象的行为被硬编码在它们内部。 - 我不太明白。而是一点都不懂。 ——这两种解释是一枚硬币的不同面。事实介于两者之间。第一个示例(带有绘图和船舶的示例)显示了类与此类对象之间的关系。相似度非常接近。第二个例子(有蚁丘的例子)显示了编写的类和运行时存在的对象之间的关系。 - 你的意思是首先我们需要为程序中存在的所有对象编写类,更重要的是,描述它们的交互? - 是的,但它比看起来容易。在Java中,程序运行时的一切都是对象,在编写程序时,应该描述对象交互的不同方式。对象只是相互调用方法并将必要的数据传递给它们。 - 不明显,但几乎清楚。 - 但是您如何知道要调用哪些方法以及需要将哪些数据传递给方法? - 每个类都有其描述以指定类的创建目的。每个方法同样都有它的描述,说明它做什么以及必须向它发送什么数据。要使用该类,您需要大致了解它的作用。此外,您需要准确了解此类的每个方法的作用。但您不必知道它是如何完成的。这是一种魔法。 - 哼。听起来是这样。   - 在这里,看一下复制文件的类代码: 旧级别 02 - 6- 这不是那么容易,但我已经明白了。 - 美好的。回头见,鳄鱼!

2 Risha,变量和原始类型

- 嘿你,自由劳动。- 我的意思是,«嗨,阿米戈»。我想向您介绍变量的内部结构。您已经知道每个变量都有一块与之关联的内存,变量存储它的值。 - 是的。你上次说了。 - 美好的。你记得它是件好事。那我继续。-。当我们在程序中描述一个新类时,这意味着我们声明了一个新的复杂复合类型,其数据要么是其他复杂类型,要么是原始类型。 旧级别 02 - 7- 仍然很清楚奇迹。 - 由于大型(复杂)类型由许多小型(原始)类型组成,因此它们的对象会占用大量内存。比通常的原始类型变量做的更多。有时更多。复杂类型变量的分配需要花费很多时间并且需要复制大量内存。这就是为什么复杂类型变量不存储对象本身,而是仅存储对象引用(即四字节地址)的原因。这足以访问对象数据。JVM 承担了与之相关的所有困难。 - 我不明白。 - 我们已经讨论过变量就像一个盒子。要在其中存储 13,您可以将数字写在一张纸上并将其放入一个盒子中。- 现在假设您必须在一个盒子(变量)中存储一些更大的东西。例如,一条狗、一辆汽车或您的邻居乔。为了简化,您可以做一件简单的事情:用狗的照片代替狗,用汽车的车牌代替汽车,用乔的电话号码代替乔本人写在一张纸上。- 现在我们拿一张纸,在上面写上乔的电话号码。它就像一个对象引用。如果我们从盒子里拿出一张写有 Joe 号码的纸,复印并放入几个盒子,对 Joe 的引用会增加,但只能有一个 Joe。- 这种数据存储的优点是可以有很多引用而只有一个对象。- 是兴奋的。顺便说一句,我几乎明白了。只再回答一个问题:如果我将一个复杂类型变量赋值给另一个复杂类型变量会怎样?- 那么这两个变量将包含相同的地址。因此,如果您更改存储在一个复杂类型变量中的数据,则另一个复杂类型变量的数据也会更改因为你知道,变量存储引用的对象实际上只有一个。然而,可能有大量变量存储对对象的引用。 - 在没有对象引用的情况下,什么存储在复杂类型变量(引用/类类型)中?真的会有这种事吗? - 是的,阿米戈。你把我的话从我嘴里拿走了。那可以。如果引用(复杂)类型变量中没有对象引用,它会存储null,一个特殊的 «null reference»。事实上,它只是存储一个等于 0 的对象的地址。但是 Java 虚拟机从不创建地址为零的对象,因此它始终知道如果引用变量为 0,则那里没有对象。 旧级别 02 - 8我做对了吗?变量分为两种类型——原始变量和引用变量。基本类型变量存储值,而引用类型变量存储对象引用。原始类型有 int、char、boolean 等等。其余的是参考变量,它们是使用类形成的。 - 没错,孩子。

3 Elly,什么是物体

旧级别 02 - 9- 又是你最喜欢的老师。由于我们进展很快,我将告诉您对象是什么以及如何处理它们。 - 要创建任何对象,都需要在其前面写上对象类型名称(class)和关键字new 。假设我们有一个 Cat 类,那么: 旧级别 02 - 10- 如果您只是创建一个对象而不将其 [its reference] 分配给任何变量,会发生什么情况? - 如果这样做,Java 虚拟机将创建该对象并立即将其声明为垃圾(未使用的对象)。一段时间后,它将在垃圾回收期间删除该对象。 - 如果我不再需要该对象,我该如何销毁它? - 你不能。一旦没有变量来存储对象引用,该对象将被标记为垃圾,JVM 将在下一次垃圾收集期间销毁它。 只要有至少一个对象引用,它就会被认为是活的,不会被销毁。当你想快速销毁对象时,将其所有引用设置为null,即为引用该对象的所有变量赋值 null 。- 知道了。经过前面的讲座,这似乎一点也不难。 - 好的,那么这里有一些任务可以提高你的技能。这些也在 System.out 上。但是以后会有更困难的。您可以向我们展示您制造的是什么钢材。
任务
1个 编写一个程序,显示:«一步一步,事情就完成了。»。
2个 编写一个显示 7 次的程序:«做不可能的事很有趣。»。
3个 编写一个程序,显示:«总是渴望学习有用的东西。»。

4 Risha,变量的可见性。

- 你好,我最喜欢的学生。现在我将告诉你变量的可见性- 为什么,也有不可见的变量? - 不,变量在可以访问该变量的代码位置可见。 有些变量可以从程序中的任何地方访问,有些变量只能在它们的类中访问,有些变量只能在一个方法中访问。 - 例如,您不能在变量声明之前引用它。 - 天气晴朗。 - 以下是一些示例: 旧级别 02 - 111 在方法中声明的变量从声明开始到方法结束都存在/可见。 2 在代码块中声明的变量存在于该代码块的末尾。 3 变量——方法参数——存在于方法范围内的任何地方。 4 类/对象变量在其对象的整个生命周期内都存在。特殊访问修饰符 public 和 private 还控制它们的可见性。 5 静态类变量存在于程序运行时。访问修饰符还决定了它们的可见性。 - 我喜欢图片,一切都井井有条。 - 对你有好处,阿米戈。一直都知道你是个聪明人。- 我还会告诉您有关访问修饰符的信息。别那么害怕,这不是火箭科学。这些是您看到的 publicprivate词。- 我不害怕,只是这里很冷。 - 好,当然。您可以控制其他类对您类中方法和变量的访问(可见性)。对于每个方法或变量,您只能指定一个访问修饰符。1 修饰符public 可以从程序中的任何地方访问带有修饰符 public 标记的变量、方法或类。这是最高程度的开放,没有限制。 2 修饰符private标记 有修饰符 private 的变量或方法只能从声明它的类中访问。对于所有其他类,标记的方法或变量是不可见的,就好像它们不存在一样。这是最高程度的封闭性(仅在同一类中可见)。 3 修饰符默认值 如果任何修饰符不标记变量或方法,则认为它是修饰符默认值。具有该修饰符的变量或方法(即,根本没有任何修饰符)对声明它们的包的所有类都是可见的。仅在同一个包中。这个修饰符有时被称为package来暗示整个包都可以访问变量和方法,它们的类属于 Explanation 选项卡: 旧级别 02 - 12

5 Diego,创建一堆变量的任务

- 你好朋友。如果需要,我会为您保留一份合同副本。那个鬼鬼祟祟的小气鬼 Risha 幸福地不知道。你应该看到我合同上的金额。呵呵,呵呵。 - 干得好,迭戈。我认为你教了我真正有用的东西。 - 当然可以,阿米戈。没有痛苦就没有收获。但还是有人痛不欲生。 - 让我们更好地转手学习。现在我将向您展示如何以不同的方式创建一堆变量: 旧级别 02 - 13- 哇,迭戈!你太聪明了。 - 嘿嘿!谢谢,阿米戈。- 我想你已经错过了我的任务。所以这里有一些。那些人类,外星人对我们的机器人生活一无所知。除了我谁会教你呢?
任务
1个 编写一个显示 3 次的程序:«许多人活着只是因为射杀他们是违法的。»。
2个 编写一个程序,显示:«如果我需要你的意见,我会请你填写必要的表格。»。
3个 编写一个显示 20 次的程序:«我说过的大部分事情我都没说过。»。

6 Elly,通过引用传递。参考变量

- 嘿,阿米戈,又是我,艾莉。抱歉,我总是这么说,但这就是 31 世纪地球上做事的方式。我将向您解释引用变量的特征以及如何将引用参数传递给函数(方法)。 - 我准备好了。 - 那么,引用变量是除原始类型之外的所有类型的变量。这些变量只包含对象的地址(对象引用)。 - 基本类型的变量存储一个值和类型,类变量存储对同一类对象的引用,well,或null。我对吗? - 绝对地。 - 那么,什么是参考? - 对象和它的引用是相关联的,比方说,就像一个人和他的电话号码。一个电话号码不是一个人,但它可以用来打电话给一个人,向他提出要求,指导或命令他。引用也用于与对象交互。所有对象都通过引用相互交互。 - 就好像人们通过电话互相交流一样? - 这是正确的。当你分配一个原始对象时,它的值被复制(复制)。当您分配一个引用变量时,只会复制对象地址(电话号码),而不是对象本身。 - ОK,我明白了。 - 引用提供了另一个优势:您可以将对象引用传递给任何方法,并且此方法将能够通过调用其方法和访问对象内的数据来使用其引用来修改(更改)我们的对象。 - 变量a 和 b旧级别 02 - 14的值在swap方法中互换。当您调用swap方法时,变量a 和 b接收值m 和 n的副本。因此,当您更改a & b的值时,变量m & n的值保持不变。在右栏的代码中可以清楚地看到。 - 老实说,我对此一无所知。我可以再举几个例子吗? - 在引用类型的情况下,您可以这样做: 旧级别 02 - 15- 变量a 和b 分别被分配给emma 和alice 的引用,a 和b 的值在对象emma 和alice 内发生变化。 - 那么也可以在其他类中声明类吗?哇! ——至于其他的,就不清楚了。 - 并非同时发生。

7 Elly,函数调用,返回值

——嗯,那我们转身吧。我们将讨论方法调用的工作原理,然后您再尝试浏览一下上一课,好吗? - 交易! - 好吧,那么我会告诉你有关函数/方法调用和返回值的信息。- 命令被分组到函数中,因此您可以将它们作为一个复杂的命令在一个块中运行。为此,您需要编写函数(方法)的名称,然后在名称后的括号中指定值和参数。 旧级别 02 - 16- 在上面的例子中,我们编写了一个函数,显示传递的字符串 4 次。然后我们在第 6 行调用了函数 print4。 - 当执行到第 6 行时,程序会跳转到第 9 行,并为 s 变量赋值“我喜欢移动它,移动它”。 - 然后将执行第 11-14 行,最后,函数将完成,程序将继续执行第 7 行。 - 明白了。 - 您不仅可以将参数(参数)传递给函数,还可以返回函数运行的结果(值)。这是通过使用关键字 return 完成的。这是它的样子: 旧级别 02 - 17- 我想我正在接受它。左边和右边的代码是一样的。在左侧,它只是作为一个单独的函数呈现。- 该函数计算一个值并将其传递给使用 return 命令调用它的人。至少我是这么认为的。 - 基本上,这是真的。 - 什么是 void 类型? - 有些函数只是做一些事情,但不计算和返回任何值,比如我们的方法main()。对于那些函数,它创建了一个特殊的结果类型void(空类型)。 - 如果函数不返回任何内容,为什么我们可以什么都不指定? - 想想每个变量是如何声明的:类型和名称。函数是用类型、名称和括号声明的。函数名后跟括号是函数调用! - 因此,与将函数分为返回值和不返回值两类相比,提出“空类型”更容易吗? - 确切地!你是个思维敏捷的人,我的孩子。 - 我怎样才能返回一个空类型? - 你不能。它是这样工作的:当 JVM 执行返回时命令,它计算return右边表达式的值,将该值存储在一个特殊的内存区域,并立即退出函数它在调用函数的地方使用保存的值作为函数调用的结果。你可以在上面的例子中看到它。 - 你是指int m = min(a,b)转换为m = m2的地方吗? - 是的。在函数调用之后,一切继续工作,就好像它的结果不是函数而是写在同一个地方。再读一遍那句话,看看最后一个例子的代码。 - 这看起来很容易,但实际上很难。我只得到一点点,仅此而已。 - 没关系。第一次尝试时,您只能理解您已经知道的内容。对你来说越是进入一个新的领域,就越是不清楚。结果会更棒。随着时间的推移,一切都变得清晰起来。 - 好吧,如果是这样,那就让我们继续吧。

8迭戈

- 嘿,阿米戈。这里有几个任务给你。现在您可以做的不仅仅是 System.out。尽力而为!我相信你!
任务
1个 两个数字中的最小值
编写一个函数,返回至少两个数字。
2个 两个数的最大值
编写一个函数,最多返回两个数。
3个 三个数字中的最小值
编写一个函数,返回至少三个数字。
4个 最少四个数字
编写一个至少返回四个数字的函数。
函数 min(a,b,c,d) 必须使用(调用)函数 min(a, b)
5个 字符串重复
编写一个函数,显示三倍于传递的字符串。每个字符串都应该在一个新行上。
6个 文本显示
编写一个函数,在同一行中显示三次传递的字符串(单词)。
单词必须用空格分隔,不必合并为一个。

9 迭戈,班级全名

旧级别 02 - 18- 嘿,阿米戈,我想告诉你完整的班级名称。- 您已经知道这些类在包中。因此,一个完整的类名是一个包含所有由点分隔的包的名称,以及一个类名。示例: 旧级别 02 - 19 - 要在您自己的代码中使用该类,您需要指定其全名。但是,您可以使用短名称 - 仅限类名。为此,您需要通过在声明类之前添加单词import指定其名称来“导入”此类。默认导入java.lang (String, Integer,...) 包的类。您不需要指定它们。示例: 旧级别 02 - 20- 使用短名称的示例: 旧级别 02 - 21- 我明白了。 - 美好的。

10 教授,关于类和对象的讲座

旧级别 02 - 22- 嘿,阿米戈。希望你能理解 Elly 和 Risha 今天告诉你的一切。为了安全起见,正如我所承诺的,这里有指向更多材料的链接:1 我的笔记 2 Thinking in Java。我已经告诉过你的那本很棒的书。如果您阅读它,那就太好了。- 我希望你能抽出时间浏览一下。 - 咳咳。相信我会!

11 胡里奥

- 嘿,阿米戈!希望你能好好休息一下?

评论
  • 受欢迎
你必须先登录才能发表评论
此页面还没有任何评论