JAVA小白系列之世界初探

转载请注明出处和作者,周末有免费学习分享,别忘了加群看通知:250431014

上一节我们目睹了编程世界的百家争鸣,各个语言都有它的专长之处,相信大家都了解了面向过程、面向对象、函数式编程、编译型语言、解释型语言这些概念,并且了解了几种常见语言的特性,那么这一节我会以例子来为大家呈现这些语言的特点以及加深对上一节课内容的理解。

注:本节例子都是入门级的例子,每个例子都会给大家简单讲解执行过程,在下一节会以计算机的发展史来阐述语言的发展史和计算机中一个程序的执行过程。以下代码为手打并且word会自动首字母大写,不是编译器内构成不保证能够复制粘贴就能运行。另外所有例子都是入门级的例子所以我觉得没有必要截运行流程图,所有例子均输出Hello World。

  • C

#include<stdio.h>

Int main(){

Printf(“%s”,”Hello World”);

}

这里来解释一下这个程序,来看#include<stdio.h>,同样大家这里只需要有个概念即可,等下一节课讲完计算机发展史大家都能明白了,这里的#include<stdio.h>意思是说我需要输出Hello World的函数printf,而这个函数在stdio.h这个文件里面所以我需要把它包括【include】进入我的程序中,这样我才能用它。然后这里给出了例子,我觉得有必要解释一下函数、方法这两个概念。

函数和方法是等价的,那么为何有两种说法?首先我认为在面向过程编程的时候由于我们只关注过程本身所以我们称一个过程叫做一个函数【下一节到计算机发展史的时候,大家会了解到计算机当时弄出来就是做科学计算的,而科学家都叫过程做函数】,而方法呢,大家能猜到的,就是面向对象编程的时候的说法,那么面向过程和面向对象分别叫做函数和方法,那么函数式编程呢?就不用说了吧,这很明显了。

好的弄清楚函数和方法之后我们来看看函数或者方法是怎么定义的【也就是怎么写的】。来看上面的:

Int main(){

Printf(“%s”,”Hello World”);

}

这里的int 叫做返回类型,main叫做函数或者方法名,()表示了这个函数或方法的参数【也就是我需要传些什么进入这个方法或函数】,后面的{}叫做函数体,说白了就是你写具体操作的地方。总结来看就是这样的:

返回类型 函数名(参数){函数体}【当然,面向对象的语言就需要在函数名前面加一个权限修饰符,还有这个定义不是万能的,个别语言有特殊,但是大部分都相同,比如python 的函数体就没有{},别问我为啥他们要怎么定义,毕竟语言是人家开发出来得嘛】返回值如果没有就用void,参数没有就空着即可【这里又有例外了,下节课我再说】。

那么弄清楚这些概念之后我们来看Printf(“%s”,”Hello World”);这个就明了了,printf是个函数,括号内的“%s”,”Hello World”就是刚才说的参数,后面的”Hello World”就不用说了,就是表明要输出的内容,””表明这是个字符串【同样数据类型的概念掌握即可,JAVA部分我会着重讲解】,那么前面的%s是啥,这里同样老样子知道概念就行,这里就是给出了我的输出类型为string 字符串,%s就是%string的简写,告诉计算机我要输出一个字符串格式的,内容为Hello World。

OK就介绍到这里,至于怎么运行的怎么输出的,我下节课讲解计算机发展史的时候一起讲。

  • C++

#include<iostream.h>

Use namespace std;

Class Object{

Private:

String name;

Public:

Void sayHello(){

Cout<<”Hello World”<<endl;

}

}

Int main(){

Object obj();

Obj.sayHello();

}

Ok,了解完了C语言,来看C++还记得么,++就是在C上增加了面向对象,上节课已经把class是什么也讲了,那么应该很容易看到上面的class Object其实就是表明我描述了一个对象【生命体】应该有的特征:一个名字、一个动作sayHello【这里的就叫做方法啦】。

同样因为由C发展过来所以也有一个#include<iostream.h>【新版c++可以省略.h】只不过包括的内容变了,那么来看这里的Use namespace std,从中文翻译过来就是使用名称空间std,那么这是为何?由于这套课程讲解JAVA,所以我就略微补充一些C++的知识,大家如果感兴趣我推荐C++ primer plus这本书,很强大~

名称空间的引入让C++可以在不同名称空间中包括相同的名字的函数或者属性,说白了就是两个不同的村落,每个村可以用相同姓名的人,用的时候包括上村落名就行了,而如果我不加Use namespace std,那么如果我需要输出我只能这样std::cout << "Hello, world!”<<std::endl;【就是村落名+姓名不就能定位了吗】哇,突然发觉不引入这么麻烦的吗?所以我就在文件开头就引入它了。

最后来看:

Int main(){

Object obj();

Obj.sayHello();

}

上面的class Object我刚才已经说了,至于里面的private和public我会在讲JAVA的时候告诉大家,有个概念就行啦。接着看main方法,这个和c是一样的,里面的Object obj();Obj.sayHello();同样有个印象就行了,就是我class Object告诉了计算机我定义了一个这样对象的模型【定义】,而这里的Object obj();【当然也可以new Object(),这个我以后会讲的不要着急】有了这个模型我就可以进行对象的生成了,这里就是生成了一个名为obj的对象,而后面的Obj.sayHello();就是调用了这个对象的方法sayHello();

C++就介绍这么多,除了面向对象的一些新知识,其余和C一样的。

  • Python

#!/usr/bin/python

Def main():

Print “Hello World”;

If __name__ == "__main__":

main()

还记得Python是个解释型语言么,也就是需要一个解释器动态执行而不需要产生中间的代码,那么怎么看着怪怪的,感觉和C++、C比较有些不可思议,其实大同小异,脚本型语言很宽松,因为他们很灵活【动态解释执行嘛】,所以方法并不需要声明返回类型,而If __name__ == "__main__":还记得上面我说了python是个例外,函数体不需要{},这个我就不深入讲解为啥,要讲就得扯到编译原理了,感兴趣的同学可以详细探究,这里还是那句话语言别人写的我们得按照他的要求来,所以就是在这个if语句内调用了main这个方法。至于这个__name__我在讲计算机原理的时候会提到,有个概念就行啦。到时候都会理解啦。

  • Java

Public class Demo{

Public static void main(String[] args){

System.out.println(“hello world”);

}

}

这里来看看Java的主方法,一个Public class Demo{},这里看看是不是和C++的类【就是对象的样子】定义很像?其实都大同小异,同样这里就是一个main方法然后输出hello world 对吧,至于这里的public、static、String[]、System.out.println()大家稍安勿躁,我会在以后徐徐道来,不要着急。

  • Scala

object HelloWorld {
      def main(args: Array[String]): Unit = {
         println("Hello World")

}
}

这里是scala的,和C++、Java不同的是变成了Object 来定义,这里我小小说一下,因为scala是java之后出来的,所以它弄出了很多java不具备的东西,比如这里的object HelloWorld 就是一个伴生对象,它本身就是一个单例,感兴趣的同学可以去看看scala---魔性语言。

好的,这一节就是给大家展现了各个语言之间的基本结构,以及着重讲解了面向对象和面向过程他们之间程序结构,加深了对上节课的概念理解,那么在下一节,我会从计算机的发展史来向大家展示一个程序是怎么运行的,来为大家展开编程世界的大门,之后我再从Java语言层面来描述这个过程,这里大家只需要知道,程序这么定义这么写就能输出Hello World,不要太纠结,跟着我的思路慢慢的理解它,我会以最简单的、最通俗的语言去描述每个知识点的原理~

偷偷告诉大家~每周末都会有知识分享直播在B站上进行分享,不是培训机构忽悠人培训,仅做分享,希望能帮助到大家~可以加QQ群:250431014了解直播时间~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值