很多人认为编程语言不知道从何学起,总感觉东西越学越多,越学越晕,很是头疼。正所谓“爱她在心口难开”,实际上,任何编程语言的学习都是有规律可循的,而且它们都有一些共性,我们只要掌握了这种规律和共性,学习任何编程语言都会非常轻松。我这里结合多年培训的经验,以目前普遍使用的JAVA语言为例(大家可以推广到任何编程语言),给大家简单介绍一下,希望对初学的朋友有些帮助!
一。面向对象的程序设计
我们现在使用的比较广泛的语言,基本上都是面向对象的,那我们首先要建立面向对象的概念。这是思想层面的。 java中流传着一句话:万物皆对象。它里面主要有两个概念:类和对象。 类是抽象和概念性的东西,是对象的蓝本或模板,是用来描述对象的。 而对象却是具体的,它具有特定的属性和行为,所以又叫实例。
怎么理解呢?打个比方:人是类,那么具体的人张三,李四就是对象。 学校是类,国内的清华大学,北京大学就是对象。 设计师们设计的法拉利跑车的模型是类,那么照着这个模型生产出来能播放音乐跑在马路上的某一部法拉利跑车就是对象。那么,现在我们明白了,面向对象的程序设计,实际上就是对类的设计。如果我们定义一个“人”的类,那么人应该有姓名,年龄,性别等属性,以及吃饭,睡觉,走路等行为。我们将人的描述信息抽象出来后,就可以按照这些信息产生人的对象了。
二。操作符(运算符) 操作数 数据类型
大家想一下,所谓的程序代码,不就是用一些符号对一些不同类型的数据进行各种各样的操作吗?所以我们学习一门语言,首先要了解它有哪些操作符和操作数,以及这些操作数分别属于什么样的类型。举一个数学中很简单的加法运算例子: 3+4,这里待操作的3和4就是操作数,它们属于整数类型。而中间的“+”号,自然就是操作符了。这样的操作在java语句中我们这样表示: int a=3+4;
那么,这里的数字3和4在java中叫直接数,a在java中叫变量。java中声明的变量必须要属于某种具体的类型,这里的int指的就是变量的数据类型。“+”是算术运算符,这个我们很熟悉,“=”是什么呢?它也是一种运算符,叫赋值运算符,它是按从右往左的顺序结合的,上句意思就是将3和4执行数学中的加法运算,然后将结果赋值给a这个变量。现在,我们的运算符和操作数结合起来了,它们在java中一起合称为表达式。然后,一个表达式后面只要跟上一个分隔符“;”,就构成了java中的一条语句。也就是我们俗称的一条代码。多条语句就是一个语句块。
可能有人会问,为什么要声明变量呢?我们要知道,程序的基本功能就是处理数据,而我们的程序就是用变量来表示数据的。上面我们声明了一个名字为a的变量后,它就代表了3和4的算术和。在接下来的代码中我们就可以将a当做操作数进行其他操作了。譬如:int b = a*6;
三。注释 标识符 关键字
任何语言都要提供给程序开发人员做注释的方式 Java语言中定义了三种注释形式:
// 单行注释----注释到行尾
/* 单行或多行注释 */
/** 可以用于文档化处理的单行或多行注释 */
我们前面提到变量,类都要有名字来标识。标识符就是用作给变量、类和方法命名的。它在不同的语言里面有不同的命名规则。在java中的标识符:可以以字母、下划线“_”和”$”符开头;首字符外,可以跟上字母、下划线“_”和”$”符或数字;不能为关键字
Java中一些赋以特定的含义、并用做专门用途的单词称为关键字(keyword)
四。流程控制
程序代码的执行不可能永远是顺序流的,有的时候我们需要选择性的执行某些语句代码,还有的时候需要循环执行某些语句代码。这就要进行流程控制了。 Java流程控制语句分为两类:分支语句和循环语句
1.分支语句:实现程序流程控制的功能 ,即根据一定的条件有选择地执行或跳过特定的语句 Java分支语句分类 if-else 语句 switch 语句 2.循环语句是用来控制那些根据运行期情况需要反复执行的语句系列。 Java中的循环语句有 for do/while while
五。数组 集合
很多时候,我们操作的不是单个元素,而是一组元素。这样,我们就要用到数组和集合了。数组是用来存储一组相同数据类型数据的数据结构。集合也可以用来存储多个对象。
六。异常处理
不要指望自己的程序永远不出错误。 Java程序运行过程中所发生的异常事件可分为两类:错误(Error):JVM系统内部错误、资源耗尽等严重情况异常(Exception): 其它因编程错误或偶然的外在因素导致的一般性问题,例如:对负数开平方根空指针访问试图读取不存在的文件网络连接中断
七。系统API
我们要把汉语说好,一般都要学会些成语。同样,要想学好一门语言,也要用好系统提供给你的API。其中,API(application programming interface, 应用程序接口)指提供给你使用的一些类库。而光有这些类库没有用啊,因为没有说明,所以我们还需要随时可以方便查阅的API DOC。
八。IO流
我们很多时候要进行数据的传输和转移,譬如要把程序中的数据输出到标准输出设备(如命令行),拷贝一个文件,网络聊天等,这就要用到IO流了。把数据想象成水,数据从一处移动到另一处就像水从源头流动到目的地。
九。多线程
如果有一家餐厅,每次只能容许一位顾客进去吃饭,我想它肯定很快倒闭。我们做程序也一样,如果我们的程序在某一时间只能给一个用户提供服务,让其他想要获得服务的用户等待,这样也不行。我们要做到多用户同时访问。所以我们该学习多线程的知识。
十。socket网络通信
有时候我们要做一些与网络有关的程序。这时候就要学习TCP/IP协议以及Socket的相关知识了。
十一。操作数据库
当前,我们的数据多半存储在专门的关系型数据库中。我们要想存储数据到数据库,或者利用数据库中已有的数据时,就要用到语言提供的对数据库的操作了。
上面我粗线条的勾勒了一门编程语言学习的曲线,并没有提到语言实现的原理。 总结一下,我们有了面向对象的思想就可以先建立起模拟问题领域(指软件系统所模拟的真实世界中的系统)的对象模型,软件系统中的各种功能是由各种对象协同工作来共同完成的。而对象又是由类产生的。那么,说到底,我们常常说的用面向对象的编程语言做软件,就是用代码设计若干个类,每个类里面可以写属性和方法(行为),而一个方法的方法体里面就可以写若干条语句(代码),多条代码就可以完成一定功能。最后一直调用下去,就是一个软件!