首页 > 范文大全 > 正文

如何有效地从C 语言的学习过渡到Java

开篇:润墨网以专业的文秘视角,为您筛选了一篇如何有效地从C 语言的学习过渡到Java范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:Java的应用非常广泛,教学的章节众多再加其庞大的类库,往往使得初学者感到无所适从。从C语言过渡到Java的学习,需要强调C语言作为Java的基础,在教学初期必须对其进行必要的复习和测试,并对二者进行比较教学,消除初学者对Java的陌生感和抵触,尽快进入Java的学习中。

关键词:Java教学;C向Java过渡;比较教学法

中图分类号:TP309 文献标识码:A 文章编号:1009-3044(2013)32-7271-03

1 概述

Java是1995年由Sun公司组织开发的一种编程语言,目前Java已经发展为一个覆盖面广、效率高、易用性强的技术平台,是一门正在被广泛使用的编程语言。Java是一种典型的面向对象程序设计语言,已成为软件开发人员必须掌握的一项基本技术,在学术界、产业界得到广泛应用[1-2]。国内外许多大学已将Java语言列入必修课程,在Java的教学中,一般都开设了C语言(程序设计基础)作为其先导课,但是如何从C语言的学习有效地过渡到Java,是很多老师和学生容易忽略的一点,这点是否做得好,会直接的影响Java的教学效果,笔者根据多年从事这两门课教学的经验,对该问题的解决方法进行了研究,并且在计科系多个班级进行了实施,取得了较为满意的教学效果。

2 在教学中介绍好Java与C语言的关系

Java编程基础,这部分内容与C语言有重叠部分,又有不少不同之处,如何联系C语言的知识点来讲解Java,既要区别二者不同,又不简单将二者割裂开,是从C语言学习有效过渡到java的一个重要原则。

在对Java进行介绍的时候,将C语言和Java语言进行比较,让学生了解C语言和Java之间的联系,并且要强调掌握C语言是学习好Java的必要条件之一。C语言是完全面向过程的语言,而Java是具有面向对象特性的语言,这里不说Java是“纯粹”的面向对象语言,主要是因为Java仍然具有非面向对象的东西,比如基础类型数据:int、float、double等,这些基础类型数据与C语言有大量相似的地方,也有一些不同之处。

任何一门面向对象的语言,必然具有面向过程的东西,比如使用Java编写类的时候,需要根据需要编写该类的成员方法(函数),这些成员方法仍然需要面向过程的编程思想和方法,抛开面向过程来谈面向对象是不可行的。而C语言是以函数为单位来组织程序,Java则是以面向对象的类来进行组织程序,Java本身就自带了一个庞大的类库,里面具有大量的函数,如何使用好Java的类库来构建程序,是Java编程的一大特色。当C语言在一砖一瓦的建造房屋的时候,Java已经在更高的层面建设高楼大厦了。

3 对C语言进行必要的复习和测试

C语言作为Java的先导课,如果学生没有掌握好面向过程的编程思想,就进入到Java的教学,往往效果不尽如人意,而且会使很多学生认为Java过于庞大和复杂,学习起来眼花缭乱,不知如何下手,甚至还没能体会Java的强大和易用性就过早的放弃了学习,做好从C语言向Java学习的过渡,是非常有必要的。

在Java的前期课程中,根据学生的情况,需要花一定量的课时对C语言进行复习和测试,并且在讲解C语言程序的过程中带出Java的一些程序,让学生提前接触Java的程序代码以及 Java语言的编程模式和思想,理解Java最初设计的思想就是为了减轻程序员的编程负担,Java编程的复杂性往往是在于问题本身,而非Java语言。

对C语言的测试可以采用不同难度的编程题,有针对性地进行复习和程序讲解,同时带出Java的程序,让学生对Java的编程有一个初步的认识。对于C语言的复习和测试,应该集中在以下几个知识点上:C语言的各种数据类型,以及在内存中的存放形式;C语言的三种控制语句;C语言的函数;C语言的数组;C语言的指针。

C语言的一个编程题目往往涵盖了几个知识点,选择好难度适当的编程题布置给学生作为练习和测试题,并且在课堂上进行讲解,通过讲解程序来复习这些知识点。下面通过一个笔者在课堂上的示例来讲解这个过程。

编程测试题1:从键盘输入一个数字字符串,将该数字字符串转换为对应的整数。

编程测试题2:从键盘输入一个整数,将该整数转为相应的数字字符串。

第一题,如果用C语言实现,需要完成以下几个步骤:

1)从键盘将数字字符串输入到一个字符数组中;

2)找出数字字符串的长度;

3)遍历字符数组,取出各位上的数字字符,转换为相应的整数,然后组合为相应的整数。

第二题比上一题稍难,如果整数不限正负数,编程量还要大一些,要对一个未知位数的整数进行分解,取出各位上的数字,然后转化为数字字符,需要用到循环结构,并采取一些技巧(如整数与整数相除仍然为整数,整数和10取余数能取得个位上的数字等)。但采用Java语言进行编程,其关键代码只需要一句就完成了:

编程测试题1:

int t = Integer.parseInt(s1); 其中s1是从键盘输入的字符串对象,t是我们需要求的结果。

编程测试题2:

String s2 = String.valueOf(j); 其中j是从键盘输入的整数,s2是我们需要求的结果。

此类题目涉及到流程控制,函数,数组和指针等C语言中重要的知识点,既能检测学生学习C语言的情况,又能起到复习C语言和巩固面向过程编程能力的作用。而Java语言使用这些类库的函数能快速解决此类问题,屏蔽了解决此类问题的具体细节,减轻了程序员的编程负担,使程序员能集中精力关注所解决问题本身,在教学中写出完成的Java程序,并且运行展示结果,让学生对Java的程序有一个初步的认识,让学生认识到Java语言减轻了程序员的编程负担,培训学生对Java的学习兴趣。

通过布置不同难度的面向过程的编程测试题,在复习C语言的同时,带出Java的编程思想,是从C语言到Java学习的一个必要缓冲时期。

4 采用比较法进行Java基础语法的教学

对于Java的基础语法,可以使用比较法与C语言进行对比教学,这样能让学生消除Java入门的陌生感,有区别的地方重点强调,既能起到对C语言进行复习,又能大大提高学习效率。这部分内容包括Java的编程环境、Java编程风格、Java基本数据类型、流程控制、函数定义与调用、数组和字符串等内容。

Java基础与C语言进行对比的不同的主要地方如表1所示[3-4]。

5 结束语

C语言作为Java的先导课,培养学生的面向过程的编程思想和编程能力,是一门非常重要的专业基础课,如何从C语言过渡到Java的学习直接关系到Java的教学效果。首先要打好C语言的基础,面向过程的编程能力会直接影响面向对象的学习,所以在学习Java的前期有必要对C语言进行一定量的复习和练习。其次,在学好C语言的基础上,要转变编程思想,学会查询Java的帮助文档,多使用Java的类库和里面的方法来构建程序、解决问题,建立Java编程的模式和思想。最后,采用比较教学法来学习Java的基础语法,既能复习C语言,又能有效带出Java不同的语法,消除对Java初学的陌生感,提高学习效率,为学习好Java语言打下很好的基础。

参考文献:

[1] 陈国君.Java2程序设计基础[M].北京:清华大学出版社,2009:2-10.

[2] 郑莉,马行言,马素霞.Java语言程序设计[M].北京:清华大学出版社,2009:257-259.

[3] Ivor Horton(美).Java2入门经典[M].北京:机械工业出版社,2009:22-153.

[4] 谭浩强.C程序设计[M]. 4版.北京:清华大学出版社,2010:37-288.