亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于經(jīng)典案例的Java程序設(shè)計(jì)課程教學(xué)探討

        2021-05-29 15:14:59陳安農(nóng)麗娟
        科教導(dǎo)刊 2021年9期
        關(guān)鍵詞:Java程序設(shè)計(jì)課程教學(xué)

        陳安 農(nóng)麗娟

        摘 要 Java程序設(shè)計(jì)本質(zhì)上屬于面向?qū)ο笳Z言的教學(xué),是信息與計(jì)算科學(xué)專業(yè)的專業(yè)核心課程。不同于信科專業(yè)的其他數(shù)學(xué)類課程,Java程序設(shè)計(jì)本身具有很強(qiáng)的實(shí)踐,同時(shí)具有理論概念多、各種類名繁雜等特點(diǎn)。本文針對信科專業(yè)的Java程序設(shè)計(jì)課程教學(xué)進(jìn)行分析,總結(jié)了教學(xué)過程中當(dāng)前存在的問題,并通過Java程序設(shè)計(jì)中的經(jīng)典案例,探討其在教學(xué)中的作用,為課程的教學(xué)改革提供參考。

        關(guān)鍵詞 經(jīng)典案例 Java程序設(shè)計(jì) 課程教學(xué) 信息與計(jì)算科學(xué)專業(yè)

        中圖分類號:G424? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A ? ?DOI:10.16400/j.cnki.kjdkx.2021.03.056

        Discussion on the Teaching of Java Programming Based on Classic Cases

        ——Take Information and Computing Science as an example

        CHEN An, NONG Lijuan

        (College of Science, Guilin University of Technology, Guilin, Guangxi 541006)

        Abstract Java programming essentially belongs to the teaching of object-oriented languages, and is a specialized core course for information and computing science. Different from other mathematics courses for Information and computing science, Java programming itself has strong practice, and at the same time has the characteristics of many theoretical concepts and various types of complex class names. This article analyzes the teaching of Java programming for information and computing science, summarizes the current problems in the teaching process, and discusses its role in teaching through classic cases in Java programming, so as to provide references for the teaching reform of this course.

        Keywords classic case; Java programming; course teaching; information and computing science

        0引言

        面向?qū)ο蟪绦蛟O(shè)計(jì)是信息與計(jì)算科學(xué)專業(yè)培養(yǎng)方案中的一門專業(yè)核心課程,主要目標(biāo)是提升學(xué)生在軟件開發(fā)領(lǐng)域的計(jì)算機(jī)使用能力,包括信息處理和軟件應(yīng)用,使之畢業(yè)后能夠在信息產(chǎn)業(yè)、科技創(chuàng)新等領(lǐng)域從事應(yīng)用開發(fā)工作。本文以Java程序設(shè)計(jì)為例,探討如何通過具體的案例強(qiáng)化學(xué)生的概念理解能力以及編程能力。

        隨著5G時(shí)代的到來,社會(huì)對Java開發(fā)工程師的需求量越來越大。從企業(yè)招聘對職位的要求上看,眾多企業(yè)都需要畢業(yè)生熟悉軟件工程中一些基本的流程,并具有扎實(shí)的編程基礎(chǔ)。因此如何在課堂上有效地激發(fā)學(xué)生學(xué)習(xí)的興趣,提高學(xué)生對Java程序設(shè)計(jì)的學(xué)習(xí)能力,值得我們深入地探討。目前已有一些相關(guān)的教學(xué)研究,比如在文獻(xiàn) [1] 中,作者結(jié)合課程的授課經(jīng)驗(yàn),設(shè)計(jì)了Java程序設(shè)計(jì)的教學(xué)內(nèi)容,并對實(shí)踐教學(xué)方法進(jìn)行了探討。此外,文獻(xiàn) [2] 以面向能力培養(yǎng)為目標(biāo),分析了如何利用在線開放課程平臺(tái)提高學(xué)生的實(shí)際編程能力。但是現(xiàn)有的教學(xué)研究并沒有說明如何解決Java程序設(shè)計(jì)課程中理論概念多的問題。

        本文首先分析信息與計(jì)算科學(xué)專業(yè)在Java程序設(shè)計(jì)教學(xué)中當(dāng)前存在的問題,然后嘗試通過一個(gè)原型案例,結(jié)合課程教學(xué)進(jìn)度,逐漸將原型案例的代碼擴(kuò)展,使之能夠形成代碼學(xué)習(xí)的連貫性,這樣有助于將繁雜的概念化簡,減輕學(xué)生學(xué)習(xí)的負(fù)擔(dān),進(jìn)而提高學(xué)生學(xué)習(xí)的興趣。

        1Java程序設(shè)計(jì)教學(xué)存在的問題

        結(jié)合這幾年Java程序設(shè)計(jì)課程教學(xué)經(jīng)驗(yàn),對存在的問題進(jìn)行總結(jié),主要體現(xiàn)在下面兩方面。

        1.1偏重于概念理論的講解

        Java 程序設(shè)計(jì)是一門集技術(shù)性、理論性和實(shí)踐性于一體的課程,主要介紹Java語言的運(yùn)行環(huán)境、Java基本語法和語句、面向?qū)ο蟪绦蛟O(shè)計(jì)、異常處理機(jī)制、集合和工具類、文件和流、多線程技術(shù)、Java網(wǎng)絡(luò)編程、使用JDBC連接數(shù)據(jù)庫。而其中的面向?qū)ο蟪绦蛟O(shè)計(jì)是課程教學(xué)的重中之重。這部分的內(nèi)容涉及基本的類定義、信息封裝、類的繼承、接口的實(shí)現(xiàn)以及多態(tài)等重要概念,這將對后續(xù)的類庫學(xué)習(xí)是至關(guān)重要的。但是一般而言,在這部分內(nèi)容的教學(xué)中,教師更多偏重概念性地講解,結(jié)合的代碼學(xué)習(xí)也沒有一致性,這往往使得編程水平差的學(xué)生一頭霧水,不知所蹤。

        1.2教材的代碼過于復(fù)雜

        在使用的Java教程都會(huì)提供代碼進(jìn)行學(xué)習(xí),如《Java程序設(shè)計(jì)及應(yīng)用開發(fā)》一書中從面向?qū)ο蠓治龀霭l(fā),結(jié)合UML類圖描述類結(jié)構(gòu)以及類之間的關(guān)系,并且提供了豐富的代碼。[3]但是有時(shí)候?qū)τ趧側(cè)腴T的學(xué)生,繁雜多樣的代碼使得學(xué)生更容易迷失。他們常常將課本的例子在計(jì)算機(jī)上抄一遍。如果代碼過于冗長,那么錄入代碼就占據(jù)上機(jī)課的大部分時(shí)間,并且他們從中也容易形成挫敗感。因此有必要精簡代碼,但簡化后的代碼又能表達(dá)出核心思想。

        2 Java程序設(shè)計(jì)中經(jīng)典案例教學(xué)探討

        如何解決解決Java程序設(shè)計(jì)課程中理論概念多,案例不連貫的問題呢?下面我們嘗試從一個(gè)原型出發(fā),結(jié)合教學(xué)進(jìn)度,逐漸豐富這個(gè)簡單原型,從而“一以貫之”,將各個(gè)知識點(diǎn)貫穿起來,提高學(xué)生學(xué)習(xí)的信心。為介紹方便,我們這里僅以字節(jié)碼文件以及面向?qū)ο笳Z言的三大特性為例,其他內(nèi)容可類似得到。

        2.1 字節(jié)碼文件

        一般來說,學(xué)習(xí)一門基本的程序設(shè)計(jì)語言都是從“hello world”開始。為體現(xiàn)整個(gè)教學(xué)案例的連貫性,我們以下面的圓類(Circle)開始:

        public class Circle {

        public static void main(String[] args) {

        System.out.println("Hello, Circle!");//輸出字符串

        }

        }

        首先通過記事本將上面的代碼敲下來,然后利用已經(jīng)配置好的運(yùn)行環(huán)境編譯運(yùn)行。在講解的過程中我們先通過演示結(jié)果,然后再引入Java的類概念,以及Java的運(yùn)行過程。比如,這個(gè)Circle類只包含一個(gè)主方法,這個(gè)主方法的方法體調(diào)用系統(tǒng)的輸出方法,將字符串“Hello, Circle!”輸出到顯示器的屏幕。而Circle類的定義是具有一定的格式要求,我們需要用關(guān)鍵字“class”對類名Circle進(jìn)行修飾。在關(guān)鍵字“class”前面的修飾符為權(quán)限訪問控制修飾符“public”。這樣就可以讓學(xué)生對Java代碼有一個(gè)基本的整體認(rèn)識。

        介紹完Java代碼的結(jié)構(gòu)后,進(jìn)一步地,向?qū)W生提問:從源代碼到屏幕字符串地顯示經(jīng)過了哪些階段呢?從而自然地引入了字節(jié)碼文件的概念,以及相關(guān)的命令:編譯命令“javac”和執(zhí)行命令“java”。

        2.2 封裝

        封裝是面向?qū)ο笳Z言的三大特性之一(其他兩個(gè)是繼承和多態(tài))。因此“封裝”概念的重要性是不言而喻的。為此,我們接著上面的Circle類進(jìn)行案例設(shè)計(jì)。首先啟發(fā)學(xué)生:如果要計(jì)算一個(gè)給定半徑的圓的面積,我們?nèi)绾瓮ㄟ^Java語言去實(shí)現(xiàn)呢?從所表述的要求,我們知道,類中應(yīng)該包含著圓的半徑(屬性),圓的面積計(jì)算(服務(wù))。從這里也可以插個(gè)題外話,引導(dǎo)學(xué)生認(rèn)識到,軟件的實(shí)現(xiàn)是根據(jù)客戶或用戶的需求而設(shè)計(jì)的,使學(xué)生對軟件工程有一個(gè)基本的認(rèn)識。緊接著,強(qiáng)調(diào)封裝即是將屬性和服務(wù)結(jié)合在一起,形成一個(gè)不可分割的單位,從而自然地得到類定義中封裝的概念。封裝案例中的Java代碼如下:

        public class Circle {

        public double radius;

        public Circle(double radius){

        this.radius = radius;

        }

        Public double getArea(){ //計(jì)算圓面積

        double dArea = PI*radius*radius;

        return dArea;

        }

        }

        為提高代碼的可重用性和可維護(hù)性,建議學(xué)生另外定義一個(gè)測試類,專門用于測試驗(yàn)證所有新定義的類。這時(shí)可以向?qū)W生介紹:原代碼中的Circle類的主方法換成一個(gè)一般的成員方法,除此之外還擁有一個(gè)數(shù)據(jù)成員radius和構(gòu)造方法。由此進(jìn)一步展開相關(guān)概念的介紹,比如:局部數(shù)據(jù)成員,類成員等。

        2.3? 繼承

        在介紹繼承概念的時(shí)候,我們基于封裝的典型案例進(jìn)行擴(kuò)展,得到的代碼如下:

        public abstract class Shape {

        abstract public double getArea();

        }

        public class Circle extends Shape{}

        public class Rectangle extends Shape{}

        在介紹這個(gè)案例之前,我們可以采用啟發(fā)式教學(xué)。例如,如果還要計(jì)算其他圖形,比如矩形的面積呢?我們能否基于原有的類,復(fù)用這個(gè)類的成員,然后再添加新的成員以滿足新的要求呢?這就涉及代碼的可擴(kuò)展性和可重用性。由此,自然地引入繼承的概念。繼承體現(xiàn)類之間的”is a”的關(guān)系,將公共屬性放在一個(gè)類中,其他類可以使用繼承的方式重用創(chuàng)建的新類,并各自增加新的成員滿足不同的特定的需求?;诖耍梢钥吹?,圓類和矩形類都有一個(gè)公共的服務(wù),即是計(jì)算面積,這樣便可以將這一服務(wù)封裝在圖形(Shape)類中,然后根據(jù)不同的形狀特點(diǎn)增加新的成員或方法。因此當(dāng)還需計(jì)算矩形面積的時(shí)候,可以對上一個(gè)案例,即圓類的定義進(jìn)行修改。這樣我們就得到了兩個(gè)由Shape類派生而來的子類:圓類和矩形類。由于只有針對特殊形狀的圖形,其面積的計(jì)算才有意義,因此可將Shape類的計(jì)算面積的方法設(shè)計(jì)為抽象方法,從而得到的Shape類為抽象類。同時(shí),為結(jié)合實(shí)際中的軟件開發(fā),我們引入統(tǒng)一建模語言(UML)中的類圖刻畫類之間的關(guān)系。

        由于Java程序語言中的類只支持單繼承,因此在引入支持多繼承的接口概念的時(shí)候,可將案例中的Java代碼稍微修改下,即是修改成:

        public interface Shape {

        public double getArea();

        }

        public class Circle implements Shape{}

        public class Rectangle implements Shape{}

        此時(shí),Circle類和Rectangle類成為接口Shape的實(shí)現(xiàn)類,從而自然地過渡到接口的定義與實(shí)現(xiàn)的學(xué)習(xí)。進(jìn)一步地,通過抽象類與接口案例的代碼比較,讓學(xué)生深刻認(rèn)識到兩者的異同。

        2.4 多態(tài)

        對于多態(tài),同樣地,我們?nèi)曰谠械腏ava代碼進(jìn)行擴(kuò)展,構(gòu)造相應(yīng)的案例。首先提出問題:當(dāng)需要同時(shí)計(jì)算多個(gè)圓和矩形的面積的時(shí)候,如何才能使得代碼更易于擴(kuò)展?前面所創(chuàng)建的類對象,都是由引用變量指向相同類型的類對象,那有沒有可能指向該類的任何一個(gè)子類的對象呢?于是讓學(xué)生帶著問題,通過代碼的運(yùn)行以及演示,說明這是可以的,由此引入多態(tài)的概念。這里我們僅需在測試類的主方法中增加少量代碼即可驗(yàn)證,代碼如下所示:

        Shape[] vec = {new Circle(2), new Retangle(1,2)};//創(chuàng)建類類型數(shù)組

        for(Shape s:vec) {

        System.out.println(s.getArea()); //將結(jié)果輸出

        }

        獲得正確的輸出結(jié)果后,再進(jìn)一步介紹代碼的結(jié)構(gòu)。由于我們已經(jīng)實(shí)現(xiàn)了繼承,并且通過子類對父類的計(jì)算面積方法進(jìn)行了重寫,因此在測試類中增加的父類引用指向子類所創(chuàng)建的對象,則可發(fā)生動(dòng)態(tài)綁定,進(jìn)而實(shí)現(xiàn)了多態(tài)。當(dāng)然,我們?nèi)钥山柚@個(gè)案例的代碼,結(jié)合當(dāng)前的知識點(diǎn)進(jìn)行代碼擴(kuò)展。比如:

        public abstract class Shape {

        abstract public double getArea();

        public void dispInfo(){ } //顯示信息

        }

        public class Circle extends Shape{…}

        public class Rectangle extends Shape{…}

        上面的Java代碼中,我們在抽象類Shape中增加了顯示信息的方法dispInfo(),但是在兩個(gè)子類中都沒有進(jìn)行重寫,因此利用這個(gè)例子可說明,如果子類沒有把父類的方法覆蓋,當(dāng)把子類對象賦給父類引用的時(shí)候,通過父類引用調(diào)用的方法仍是父類的方法。

        3 總結(jié)

        本文通過經(jīng)典案例,嘗試解決在Java程序設(shè)計(jì)教學(xué)中概念的煩冗復(fù)雜和傳統(tǒng)教學(xué)中代碼的零散問題。利用一個(gè)最初等的原型代碼,結(jié)合教學(xué)的進(jìn)度,逐漸將其豐富化,從而能夠?qū)⒚嫦驅(qū)ο蠓治鲋泻诵睦碚摵喕瘏s又不失一般性,進(jìn)而減輕學(xué)生的學(xué)習(xí)負(fù)擔(dān),提高學(xué)生的學(xué)習(xí)興趣,同時(shí)有助于學(xué)生對所學(xué)知識的理解能力和動(dòng)手實(shí)踐能力。本文對字節(jié)碼文件以及面向?qū)ο蟮娜筇匦赃M(jìn)行案例的設(shè)計(jì),對于Java程序設(shè)計(jì)教學(xué)中的其他內(nèi)容可類似得到。

        *通訊作者:農(nóng)麗娟

        基金項(xiàng)目:桂林理工大學(xué)科研啟動(dòng)基金資助項(xiàng)目“兩類時(shí)間非局部方程的高精度算法研究”(編號:GLUTQD2016044)

        參考文獻(xiàn)

        [1] 張琳,李朝輝,譚孟康.Java程序設(shè)計(jì)課程實(shí)踐教學(xué)探討[J].教育教學(xué)論壇,2020(27):214-215.

        [2] 胡曉鵬.面向能力培養(yǎng)的“面向?qū)ο蟪绦蛟O(shè)計(jì)”課程教學(xué)改革[J].科技風(fēng),2020(35):62-63.

        [3] 宋晏,楊國興.Java程序設(shè)計(jì)及應(yīng)用開發(fā)[M].北京:機(jī)械工業(yè)出版社,2019.

        猜你喜歡
        Java程序設(shè)計(jì)課程教學(xué)
        “互聯(lián)網(wǎng)+”背景下基于翻轉(zhuǎn)課堂教學(xué)模式的程序設(shè)計(jì)課程改革
        《Java程序設(shè)計(jì)》項(xiàng)目化教學(xué)改革與實(shí)踐
        《Java程序設(shè)計(jì)》課程網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
        Java程序設(shè)計(jì)基礎(chǔ)課實(shí)踐教學(xué)中的分層教學(xué)模式研究
        基于實(shí)訓(xùn)項(xiàng)目的Java程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)模式改革與實(shí)踐
        基于工程思維的Java程序設(shè)計(jì)課程教學(xué)研究
        小學(xué)數(shù)學(xué)教學(xué)應(yīng)注重培養(yǎng)學(xué)生的應(yīng)用意識
        人間(2016年26期)2016-11-03 17:23:08
        淺談微課在PHOTOSHOP課程教學(xué)中的實(shí)踐
        會(huì)計(jì)專業(yè)課程教學(xué)國際化的探索性研究
        高職物流專業(yè)“物流費(fèi)用結(jié)算實(shí)務(wù)”課程開發(fā)研究
        中國市場(2016年36期)2016-10-19 04:54:40
        夜夜躁狠狠躁日日躁视频| 黑丝美女被内射在线观看| 亚洲av成人波多野一区二区| 老鲁夜夜老鲁| 一区二区三区在线 | 欧| 欧美精品v国产精品v日韩精品| 亚洲AV日韩AV永久无码电影| 久久国产成人免费网站| 日本一区二区日韩在线| 日韩精品人妻久久久一二三| 色欲aⅴ亚洲情无码av| 国产精品视频一区二区三区四| 亚洲第一区二区快射影院| 日本高清一区二区三区色| 漂亮人妻被强了完整版| 女人被狂躁到高潮视频免费网站| 亚洲日韩一区二区一无码| 国产精品制服一区二区| 免费人成黄页在线观看国产| 蜜桃一区二区三区视频| 婷婷丁香五月激情综合| 国产内射性高湖| 色二av手机版在线| 青青草成人免费在线视频| 高清毛茸茸的中国少妇| 欧洲熟妇色xxxx欧美老妇多毛网站| 欧美破处在线观看| 亚洲无av码一区二区三区| 国产主播一区二区三区蜜桃| 国产免费观看黄av片| 天堂无码人妻精品av一区| 亚洲欧美日韩综合中文字幕| av男人的天堂手机免费网站| 久久精品国产亚洲夜色av网站| 免费人成网ww555kkk在线| 日本污视频| 亚洲视频在线免费观看一区二区| 国产精品无码素人福利| 少妇熟女视频一区二区三区| 国产真实乱对白在线观看| 日本不卡视频一区二区三区|