如无特殊说明 本文章全文均采用CC-BY-NC 4.0 中国大陆协议授权许可
本文希望用一种新手的和生动活泼的角度,从零开始带领那些希望零基础入门Java开发的小白们成功踏入Java Coding的道路
当然,本文作者也只是一个普通的业余Java Coder,文章中必会有所纰漏,如有此类情况发生也请大佬们不吝赐教。
因为只是个试水作,因此第一章的篇幅将会非常非常短,仅仅展示了一个本人作文的风格,希望各路大佬或是希望前来学习的小白能够给出各类指导意见,谢谢!
那么以下是第一章的正文:
Hey,你好啊,当你点开这个文章的时候,我相信你一定是满怀着一颗激动的心情,希望能够在这个自己从未涉足但又希望有所建树的领域中大显身手!但是,我相信你也一定会知道,这将是一条漫长而又遥远的路途,前方有着各种未知的谜团,等待着你去探索……
但是等等,教练,我还有问题……
为什么选择从Java入门?
我们当然知道,这个世界上存在着各种不同的计算机编程语言,但是为什么要从Java开始?
因为作者只会Java(逃
但其实顺着这个问题深究下去,我们能够发现选择Java入门是有其一定合理性的:
- Java的语法学习难度是适中的
Java的语法十分容易学习,因为他中规中矩,不像Kotlin那样甜到掉牙,也不像Python那样过于简陋,这正合适一个初学者的学习。
- Java采用了现代编程语言中广泛使用的「面向对象」程序设计
什么是「面向对象」?是指对着女朋友编程吗?
很显然不是,所谓「对象(Object)」大概可以被比喻为一种容器,里头放入了各种我们希望干的事情。与之相对的是「面相过程」。现在我们可能无法理解此两者中任意一者的意义和二者之间的区别,但是相信我,在接下来的学习中,你会对这些概念的内容越来越清晰的。
- Java是跨平台的
很显然,对于计算机操作系统,存在着Windows,Mac OS,Linux等多个完全搭不着边的操作系统,作为一个初学者,我们不可能闲着为不同的操作系统学习同一种问题的不同解决方案。Java为我们很好的解决了这个难题。借助「Java虚拟机」,我们可以在不同的操作系统中,用同一套代码实现完全相同的事!这看起来很瓶常,但实际上却是一个伟大的工程!
好吧,那么我们从何开始?
也许你会认为我会像其他教程一样,一开始就要求你下载各种你根本听不懂的专业术语组成的各种软件。但并不是这样,请看以下一个问题:
假设你要正在设计一个高铁售票系统,你需要完成以下的逻辑: 当用户购买车票时,你需要先检测这趟车次是否存在,然后再检测这趟车次是否有余票,如果有的话那么卖票给用户,然后在后台日志中记录下这件事情
看起来是再正常不过的流程,但是换做你你要怎么设计呢?你可能会写道:
如果 用户希望购买车票的车次 存在:
且 如果 用户希望购买车票的车次 有余票:
卖票给用户
记录到后台
通知用户购买成功
当然,以上只是伪代码,是为了说明流程,并不是真正的代码
确实是这样,但是如果高铁售票开辟了超售通道,不希望检测余票,你又要怎么写呢?你可能又会写道:
如果 用户希望购买车票的车次 存在:
卖票给用户
记录到后台
通知用户购买成功
看起来也没啥问题,但是如果又有新的需求呢?那么每次增加一个新的需求,你都需要不断重复卖票的那三步:「卖票,记录,通知」
有没有办法把这部分聚合到一起,需要的时候用一个简单的方式调用?
当然有,你完全可以这么写:
卖票:
卖票给用户
记录到后台
通知用户购买成功
这样的话上面那两部分可以分别改写为:
如果 用户希望购买车票的车次 存在:
且 如果 用户希望购买车票的车次 有余票:
卖票
和
如果 用户希望购买车票的车次 存在:
卖票
Hey,简单了很多不是吗?
你可能没有发现,这一个简单示例过去后,你已经发现了一个惊人的东西——在Java中,我们称这种东西为「方法(Method)」,这个名字可能有点难以理解,因此你需要知道在其他编程语言中,这种东西被称作「函数(Function)」。
Hey,他确实和数学函数一样,就像f(x)=2x+1,我们没必要每一次需要给x乘二加一的时候都写一遍2x+1,我们只需要拿f(x)来表示这后面的一段内容就行了。
函数,或者说方法,就是这样的东西。
在上例中,我们定义了的那个卖票的方法用Java代码写差不多是这样:
/*** 卖票方法**/publicvoidsellTicket(){//卖票给用户sellToUser();//记录到后台logToConsole();//通知用户购买成功askForSuccess();}
至此,你已经向成为 Java Coder这条道路踏出了坚实的一步!但是别着急,我们还没有发现Java的精髓:
众所周知,一张高铁票根上应该包含着列车名称,列车车次,发车时间等各种信息,我们应该如何表示他们呢?
如果你没有想法,那么为何不尝试把他们收集到一个盒子里,然后把整个盒子扔给用户让他们自己拆开看里头有什么信息呢?
如果你觉得这么做很合适,那么恭喜你,这个盒子就是我刚才所说的「对象(Object)」,所谓「面向对象」,就是指我们通过创建一个一个这样的盒子,并通过操作这些盒子来进行编程。
一个表示一张车票的Java盒子应该是如下的样子:
/*** 车票对象**/publicclassTicket{Stringname;Stringid;DatestartTime;}
其实想一想,这似乎不是很难容易理解,那么也许下一次,我们可以了解到更多真正有关于这个语言的内容……
(本章完)
声明:本文部分素材转载自互联网,如有侵权立即删除 。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容