999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2021-05-29 15:14:59陳安農(nóng)麗娟
科教導刊 2021年9期
關鍵詞:課程教學

陳安 農(nóng)麗娟

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

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

中圖分類號:G424? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼: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引言

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

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

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

1Java程序設計教學存在的問題

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

1.1偏重于概念理論的講解

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

1.2教材的代碼過于復雜

在使用的Java教程都會提供代碼進行學習,如《Java程序設計及應用開發(fā)》一書中從面向對象分析出發(fā),結合UML類圖描述類結構以及類之間的關系,并且提供了豐富的代碼。[3]但是有時候對于剛入門的學生,繁雜多樣的代碼使得學生更容易迷失。他們常常將課本的例子在計算機上抄一遍。如果代碼過于冗長,那么錄入代碼就占據(jù)上機課的大部分時間,并且他們從中也容易形成挫敗感。因此有必要精簡代碼,但簡化后的代碼又能表達出核心思想。

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

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

2.1 字節(jié)碼文件

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

public class Circle {

public static void main(String[] args) {

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

}

}

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

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

2.2 封裝

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

public class Circle {

public double radius;

public Circle(double radius){

this.radius = radius;

}

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

double dArea = PI*radius*radius;

return dArea;

}

}

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

2.3? 繼承

在介紹繼承概念的時候,我們基于封裝的典型案例進行擴展,得到的代碼如下:

public abstract class Shape {

abstract public double getArea();

}

public class Circle extends Shape{}

public class Rectangle extends Shape{}

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

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

public interface Shape {

public double getArea();

}

public class Circle implements Shape{}

public class Rectangle implements Shape{}

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

2.4 多態(tài)

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

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

for(Shape s:vec) {

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

}

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

public abstract class Shape {

abstract public double getArea();

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

}

public class Circle extends Shape{…}

public class Rectangle extends Shape{…}

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

3 總結

本文通過經(jīng)典案例,嘗試解決在Java程序設計教學中概念的煩冗復雜和傳統(tǒng)教學中代碼的零散問題。利用一個最初等的原型代碼,結合教學的進度,逐漸將其豐富化,從而能夠將面向對象分析中核心理論簡化卻又不失一般性,進而減輕學生的學習負擔,提高學生的學習興趣,同時有助于學生對所學知識的理解能力和動手實踐能力。本文對字節(jié)碼文件以及面向對象的三大特性進行案例的設計,對于Java程序設計教學中的其他內(nèi)容可類似得到。

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

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

參考文獻

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

[2] 胡曉鵬.面向能力培養(yǎng)的“面向對象程序設計”課程教學改革[J].科技風,2020(35):62-63.

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

猜你喜歡
課程教學
美學概論課程教學中的“三創(chuàng)”教育
人間(2016年27期)2016-11-11 17:22:29
小學低段語文教學方式初探
人間(2016年28期)2016-11-10 00:11:38
淺析舞蹈表演專業(yè)課程教學的探索和創(chuàng)新
節(jié)奏訓練在初中音樂課程教學中的應用研究
課堂中如何培養(yǎng)學困生溝通能力
人間(2016年26期)2016-11-03 18:58:17
小學數(shù)學教學應注重培養(yǎng)學生的應用意識
人間(2016年26期)2016-11-03 17:23:08
淺談微課在PHOTOSHOP課程教學中的實踐
會計專業(yè)課程教學國際化的探索性研究
高職物流專業(yè)“物流費用結算實務”課程開發(fā)研究
中國市場(2016年36期)2016-10-19 04:54:40
高職院校醫(yī)學檢驗技術專業(yè)提高課程教學質量的探討
科技視界(2016年21期)2016-10-17 18:59:36
主站蜘蛛池模板: 国产精品久线在线观看| 欧美日韩精品在线播放| 美女视频黄又黄又免费高清| 99视频有精品视频免费观看| 日韩a在线观看免费观看| 国产综合日韩另类一区二区| 免费99精品国产自在现线| 99一级毛片| 国产女人爽到高潮的免费视频| 激情乱人伦| 91亚洲影院| 亚洲永久色| 国产浮力第一页永久地址 | 男人的天堂久久精品激情| 色天天综合久久久久综合片| 亚洲视频四区| 91九色国产porny| 亚洲中文字幕国产av| 精品视频一区二区观看| 欧美中文字幕在线二区| 成人自拍视频在线观看| 国产特级毛片aaaaaaa高清| 99re在线视频观看| 真实国产精品vr专区| 国产美女91视频| 红杏AV在线无码| 99精品在线视频观看| 乱人伦视频中文字幕在线| 午夜老司机永久免费看片| 亚洲无限乱码| 国产对白刺激真实精品91| 婷五月综合| 亚洲 日韩 激情 无码 中出| 99精品国产电影| 毛片网站免费在线观看| 嫩草国产在线| 99热这里只有精品久久免费| 免费人成视网站在线不卡| 亚洲精品无码成人片在线观看| 2018日日摸夜夜添狠狠躁| 91精品免费久久久| 国产地址二永久伊甸园| 亚洲动漫h| 国产乱子伦精品视频| 日韩第九页| 亚洲一区第一页| 欧美亚洲一二三区| 亚洲大学生视频在线播放| 丁香综合在线| 亚洲精品国产乱码不卡| 自慰网址在线观看| 青草视频久久| 国产精品福利一区二区久久| 精品国产成人三级在线观看| 中文字幕 91| 精品国产成人三级在线观看| 韩日免费小视频| 国产尤物在线播放| 久草视频精品| 午夜精品区| 色精品视频| 欧美日本在线| 国产无码高清视频不卡| 国产网友愉拍精品| 欧美成人a∨视频免费观看| 在线日韩日本国产亚洲| 久久亚洲国产一区二区| 亚洲成人高清无码| 人妻一区二区三区无码精品一区| 台湾AV国片精品女同性| 欧美精品1区2区| 99久久人妻精品免费二区| 在线国产毛片手机小视频| 波多野结衣无码AV在线| 亚洲天堂在线免费| 亚洲三级影院| 亚洲精品第1页| 亚洲精品成人7777在线观看| 国产a网站| 欧美精品伊人久久| 国产精品熟女亚洲AV麻豆| 欧美日韩免费|