下面是范文網(wǎng)小編分享的java教學設計4篇 基java集合面試專用,供大家參閱。
java教學設計1
JAVA(1-5章)知識總結(jié) 第一章初識JAVA
一、什么是程序 1.概念
為了讓計算機執(zhí)行某些操作或者解決某個問題而編寫的一系列有序的指令的集合編寫程序的工具,計算機語言,java就是其中一種。
發(fā)展史
1995年5月23日,Java語言誕生; 1996年1月,第一個誕生;
1996年4月,10個最主要的操作系統(tǒng)供應商申明將在其產(chǎn)品中嵌入JAVA技術; 1996年9月,約萬個網(wǎng)頁應用了JAVA技術來制作; 1997年2月18日,發(fā)布;
1997年4月2日,JavaOne會議召開,參與者逾一萬人,創(chuàng)當時全球同類會議規(guī)模之紀錄;
1997年9月,JavaDeveloperConnection社區(qū)成員超過十萬; 1998年2月,被下載超過2,000,000次; 1998年12月8日,JAVA2企業(yè)平臺J2EE發(fā)布;
1999年6月,SUN公司發(fā)布Java的三個版本:標準版、企業(yè)版和微型版; 2000年5月8日,發(fā)布; 2000年5月29日,發(fā)布;
2001年6月5日,NOKIA宣布,到2003年將出售1億部支持Java的手機; 2001年9月24日,發(fā)布;
2002年2月26日,發(fā)布,自此Java的計算能力有了大幅提升;
2004年9月30日18:00PM,發(fā)布,成為Java語言發(fā)展史上的又一里程碑。為了表示該版本的重要性,更名為Java SE ;
2005年6月,JavaOne大會召開,SUN公司公開Java SE 6。此時,Java的各種版本已經(jīng)更名,以取消其中的數(shù)字“2”:J2EE更名為Java EE,J2SE更名為Java SE,J2ME更名為Java ME;
2006年12月,SUN公司發(fā)布;
2009年4月7日Google App Engine開始支持Java;[8] 2009年04月20日,甲骨文74億美元收購Sun。取得java的版權; 2010年11月,由于甲骨文對于Java社區(qū)的不友善,因此Apache揚言將退出JCP; 2011年7月28日,甲骨文發(fā)布的正式版;
2014年3月19日,甲骨文公司發(fā)布的正式版。太陽微系統(tǒng)(2010年被甲骨文公司收購
3、java的體系結(jié)構(gòu):
Java ME-->微型版 適用于手機,無線設備的開發(fā) Java SE-->標準版 使用開發(fā)客戶端程序 java EE-->企業(yè)版 適用服務器端程序
4、java語言的特點
1.面向?qū)ο?/p>
Java是純面向?qū)ο蟮恼Z言 2.跨平臺
針對每個操作系統(tǒng),java都有特定的虛擬機 jvm java虛擬機 什么是jvm? 運行的過程
字節(jié)碼-----》類裝載器---》字節(jié)碼驗證器---》解析器----》執(zhí)行 java虛擬機
3、java安全性比較高
4、java是簡單化的
5、計算機語言機制
解釋型:同聲翻譯,寫一句解釋一句 c++ Basic語言
編譯型:利用專門的編譯器針對特定的系統(tǒng)將源文件一次性編譯 C語言
Java語言兩種同時兼?zhèn)?/p>
Java語言先將 java 的源文件編譯成.cla 文件,此時可以說是 編譯型。在jvm 運行的時候,先將字節(jié)碼加載到內(nèi)存中,讀出一條指令,解釋一條指令,執(zhí)行一條指令。解釋型
6、JDK和JRE JDK Java Development Kit java開發(fā)工具包 JRE Java Runtimes Environment java運行時環(huán)境
7、java的環(huán)境安裝:
下載JDK
安裝完成:會生成JDK JRE JDK目錄:
bin目錄:常用的jdk工具 lib目錄:類庫
include:一些與C鏈接時用到的文件 :源代碼的壓縮文件
配置環(huán)境變量:
指明java 的安裝路徑
JAVA_HOME: C:Program _21 可以不設置(有可能你把java 的安裝目錄改了)指明java虛擬機要用到的類庫
CLASS_PATH: %JAVA_HOME%;
C:Program _ 指明系統(tǒng)在任一路徑執(zhí)行java 的命令 PATH %JAVA_HOME%bin
批處理文件:.exe
測試是否配置成功
出現(xiàn)的問題: 找不到無法加載主類
解決辦法
在cla_path 中加上.;.表示當前目錄..表示上一級目錄
8、java的運行機制:
1、編寫源文件 .java
2、編譯源文件 .cla
3、運行 java平臺上運行
9:、常見的錯誤:
1、類名與文件不同
2、引號、分號 ......10、注釋
Java注釋:
單行注釋://dhsajdal 多行注釋:/*dsajdksajdksad */ 文檔注釋:/** dsadada*/ 第二章、JAVA基本語法
1、變量?
電腦使用內(nèi)存來記憶數(shù)據(jù) 內(nèi)存是如何存儲的? 會根據(jù)不同的數(shù)據(jù)類型申請不同的內(nèi)存空間
變量:一個數(shù)據(jù)存儲空間的表示
不同的數(shù)據(jù)存入 具有不同的內(nèi)存地址,相互獨立的2、堆棧結(jié)構(gòu)
Java中內(nèi)存分為兩種: 一種叫棧內(nèi)存 堆內(nèi)存 定義的基本數(shù)據(jù)類型都是在棧內(nèi)存中,引用類型的變量 ps: Scanner in = new Scanner();堆內(nèi)存中存放的是new創(chuàng)建的對象或者是數(shù)組
2、數(shù)據(jù)類型
基本數(shù)據(jù)類型 8種:
整型 byte short int long 1個字節(jié) 2個字節(jié) 4個字節(jié) 8個字節(jié)
1byte = 8b
2~8 2^16 2^32 2^64
-2^7---2^7-1-2^15----2^15-1-2^31---2^31-1-2^63---2^63-1 字符型 char u000 空格
浮點型 float double 4個字節(jié)
8個字節(jié) 2^32 2^64-2^31---2^31-1-2^63---2^63-1 布爾型 boolean true false
8種數(shù)據(jù)類型的默認值
整型全部是0,boolean為false
引用數(shù)據(jù)類型-----------》所有的引用類型的默認值為:null
3、變量的命名規(guī)范
1、必須以:$ _ 字母開頭
2、不能是用關鍵字
3、不能有特殊字符
4、首字母最好小寫
5、區(qū)分大小寫
6、駝峰命名 ps: helloWorld
4、數(shù)據(jù)類型的轉(zhuǎn)換
1、隱式轉(zhuǎn)換(自動類型轉(zhuǎn)換)小轉(zhuǎn)大:去尾巴
2、顯式轉(zhuǎn)換(強制類型轉(zhuǎn)換)大轉(zhuǎn)?。洪L尾巴 int b;float a = 5;b =(int)a;
1)boolean 不能轉(zhuǎn)換成其他類型
2)byte、short、char之間不會互相轉(zhuǎn)換,在計算之前都會轉(zhuǎn)成int byte b= 10;char c = 10;
Java運算符
1、算術運算符:+ -* / %
2、賦值運算符:= +=-= *= /= ++--int a;a = 10;(a);
a += b;a = a+b;
++ 在前 先+ 再運算 ++ 在后 先運算在+
--在前 先-再運算 ++ 在后 先運算在-ps:
int x = 10;int y = 8;
if((++x>y--)&(--y(y--)){
}
3、關系運算符:> =
4、邏輯運算符:& |!&& || &和&&的區(qū)別:
&----》不管boolean值是真還是假,都會把整個表達式執(zhí)行完 &&---》也叫短路與,一假即為假,表達式不再運行
|和||的區(qū)別:
!取反
5、位運算符:& | ^ ~ >> >> ps: 9&13
&-----按位與 只要有0那一位就為0 |-----按位或 只要有1那一位就為1 |-----異或 相同為0,不同為1 ~-----取反 +1 取反
9>>3
三目運算符:(表達式)?(表達式1):(表達式2)
(表達式)為boolean類型表達式
如果(表達式)結(jié)果為true 執(zhí)行表達式1 否則 執(zhí)行表達式2
引用數(shù)據(jù)類型-----------》所有的引用類型的默認值為:null
第三章、流程控制
控制語句:
1)順序語句 2)分支語句 3)循環(huán)語句
分支語句:
if 和 switch
其中if使用布爾表達式或布爾值作為判斷條件來進行分支控制 而switch則用于對整型值或字符串進行匹配,從而實現(xiàn)分支控制
switch(count){
default:
("罰寫代碼");
break;
Case 1:
("去參加夏令營");
Case 2:
("獎勵一個電腦");
Case 3:
("獎勵筆記本");}
循環(huán)
循環(huán)語句一般包含4部分:初始化語句、循環(huán)條件、循環(huán)體、迭代語句 while 初始化語句
int count = 0;循環(huán)條件
while(count
("nihao"+count);
迭代語句
Count++;} for 結(jié)構(gòu)
a b c for(int i = 0;i
a-----> b-------> d------> c----> b----d do{ 循環(huán)體
}while(表達式);
while 和 do while的區(qū)別 首先,他們都是循環(huán)結(jié)構(gòu)。do while 至少會被執(zhí)行一次
while是先判斷在執(zhí)行 do while是先執(zhí)行后判斷
break continue 以及 return的區(qū)別 用在循環(huán)中:
break的作用是跳出當前循環(huán)
Continue的作用跳出本次循環(huán),執(zhí)行下一次循環(huán),不再執(zhí)行continue后面的循環(huán)體代碼
可以用的返回值 結(jié)束當前方法
第四章、數(shù)組
1.概念 1)數(shù)組是用來存儲一組相同數(shù)據(jù)類型的數(shù)據(jù)
2)在數(shù)組中,他的類型是唯一。也就是說在一個數(shù)組中,只能存儲同一種類型的數(shù)據(jù)
3)聲明一個變量的時候是在內(nèi)存中開辟一塊空間,申明數(shù)組就是在內(nèi)存中申請一串連續(xù)的空間
4)數(shù)組中保存任意數(shù)據(jù)類型(基本數(shù)據(jù)類型、引用數(shù)據(jù)類型)數(shù)組也是一種數(shù)據(jù)類型-------->引用數(shù)據(jù)類型
1、數(shù)組中的數(shù)據(jù)稱為元素
2、不管有多少個元素。數(shù)組只有一個名字,也就是數(shù)組名
3、數(shù)組中的元素按照順序排列編號,即下標
4、數(shù)組中的元素可以用下標來訪問
5、數(shù)組有大小,在創(chuàng)建數(shù)組的時候就創(chuàng)建了大小,如果超出了數(shù)組的范圍(xxx) 數(shù)組下標越界異常
2.數(shù)組的定義:
ps int a[];int[] a;這兩種方式僅僅是申明了一個數(shù)組變量,所以并沒有內(nèi)存空間來存儲數(shù)據(jù),此時不能訪問這個數(shù)組
boolean[] booleanArray;char[] charArray;String[] stringArray;對象數(shù)組
student[] student
數(shù)組的創(chuàng)建:
數(shù)組名 = new 數(shù)組類型[數(shù)組的長度];ps a = new int[100];
這個數(shù)組的下標 : 0~99 數(shù)組的下標:0~數(shù)組的長度-1 獲取數(shù)組的長度: 數(shù)組名.length a[0] 表示數(shù)組的第一個元素 a[99] 表示第一百個元素
數(shù)組的初始化:
分為兩種: 靜態(tài)初始化:
ps: int[] a ={1,2,3,4,5};動態(tài)初始化:
ps: int a = new int[5];a[0] = 1;
a[1] = 2;
....a[5] = 6;error: 或者通過循環(huán)賦值
數(shù)組的應用
1、輸入五個人的成績:求出平均分
2、創(chuàng)建一個數(shù)組,求最值
3、排序
(num);系統(tǒng)提供的工具類Arrays 靜態(tài)方法sort 默認的是升序排列 冒泡排序
4、數(shù)組的拷貝
1)將一個數(shù)組變量拷貝給另一個數(shù)組的變量,這兩個數(shù)組的變量指向的同一個數(shù)組
2)將一個數(shù)組指定的元素,拷貝到另一個數(shù)組的指定位置,原數(shù)組不會發(fā)生改變 (src, srcPos, dest, destPos, length)參數(shù)一:原數(shù)組 參數(shù)二:開始下標 參數(shù)三:目標數(shù)組
參數(shù)四:目標數(shù)組開始下標 參數(shù)五:拷貝的長度
數(shù)組的默認值:
基本數(shù)據(jù)和引用數(shù)據(jù)類型的默認值是一樣的多維數(shù)組: 二維定義:
int[][] a;int[][][] a;
int[][] a = new int[4][];當使用new來創(chuàng)建二維數(shù)組的時候,不必指定每一維數(shù)組的長度,只需要指定最左邊的那個就行
多維數(shù)組的初始化: 靜態(tài)初始化:
int[][] a = {{1,2},{1,2,3},{1,2,3,4}};動態(tài)初始化:
int[][] a = new int[3][];a[0] = new int[2];a[1] = new int[3];a[2] = new int[4];
a[0][0] = 1;String字符串 如何使用字符串? 1)定義初始化字符串 2)對字符串進行操作
注意:
string是一個字符串常量,被創(chuàng)建出來之后不能被修改
ps:String name="aa";name = name+"aa";
怎么樣實例化一個String對象呢?
1、通過字符串常量
ps: String str = "Hello world!";
2、通過String類提供的構(gòu)造方法
ps:String str1 = new String("Hello world!");String str5 = new String();定義了一個空字符串
string str5 = new String(bytes, offset, length)將一個byte數(shù)組變成一個String字符串
string字符創(chuàng)的應用:
1、字符串的長度
();
2、String
字符創(chuàng)的比較
1)字符串(字符串2);(str2)這個方法的返回值是:boolean 將逐個比較每一個字符(會比較大小寫)2)字符串(字符串2);int count = (str2);方法的返回值是int 將逐個比較相同位置上的字符的Unicode碼
如果完全相等方法返回0,如果發(fā)現(xiàn)不同的地方停止比較,如果比較的字符Unicode碼大于被比較的,放回一個整數(shù)值,反之為負數(shù) 3)字符串(字符串2);忽略大小寫的比較
3、字符串的連接
1)使用"+"將多個字符串鏈接到一起
其他數(shù)據(jù)類型和字符串以"+" 連接之后會變成一個字符串 2)字符串(字符串2);
4、字符串的其他常用方法:
indexOf-----> 從前往后取得查找字符串的下標,如果沒有這個字符串,返回-1 ("a", 3);參數(shù)二:從第幾個下標開始查找
("a");從后往前取得查找字符串的下標,如果沒有這個字符串,返回-1 ("a", 3);(2);參數(shù)是從第n個下標開始截取,返回值為字符串
(()-3, ()-1);參數(shù)為開始位置和結(jié)束位置
("@");按照某個字符進行分割,返回一個String[] ();把字符串字母變成小寫,返回一個新的字符串 ();大
();去掉字符串前后的空格,返回一個新的字符串
("a", "1");替換 參數(shù)就是把舊的字符串替換成新的字符串 (".java");是否以指定的字符串結(jié)尾,返回值是boolean ("ac"); 開頭,();把字符串轉(zhuǎn)換成char[] (3);將指定位置上的字符取出
---------------StringBuffer類
和String是相反的。StringBuffer的內(nèi)容是可以改變 StringBuffer的實例化
stringBuffer sb = new StringBuffer("aa");常用方法:
append("bb");往緩沖區(qū)追加字符串 ();獲得長度
(2, "mm");往指定位置追加數(shù)據(jù)
();將所有字符前后互換。生成一個新的字符串 (2);將指定位置上的字符取出
stringBuffer是線程安全的在之后出了一個叫StringBuilder類線程不安全 如果不考慮線程問題盡量選擇StringBuilder 速度更快 當數(shù)據(jù)量大的時候選擇StringBuilder
();獲取系統(tǒng)當前時間
string、StringBuffer、StringBuilder的區(qū)別?
string是一個字符串常量,被創(chuàng)建出來之后不能被修改,不存在線程安全問題。如果不考慮線程問題盡量選擇StringBuilder 速度更快
當數(shù)據(jù)量大的時候選擇StringBuilder 若數(shù)據(jù)量不大,而考慮安全性的情況下,選用StringBuffer 第五章、面向?qū)ο?/p>
面向?qū)ο?Object Oriented)把一個問題的處理過程按照構(gòu)成問題的事物分解成對象,建立對象的目的不是為了完成整個過程中的一個步驟,而是為了描述某個事物 在整個解決問題的過程中的行為。它不是一種編程語言,而是一種編程方法,一種思維方式。它的三大特性:封裝、繼承、多態(tài)。
類
對某一類事物的描述,是抽象的,概念上的定義。對象是實際存在的該類事物的每一個個體,因而也成為實例。
對象
實際的個體。
一、package(包)與import(導入)(一)package的概念
包即是將一些類聚集在一起的一個空間域。(二)包的命名
包的命名中一般包含組織類型、組織名、項目名、類的分類名。一般與域名相反如:;(三)包的作用
就像Windows中使用文件夾給文件分類一樣,Java可以使用包將各個類進行分類。
在一個類里面只能有一個package。
注:package必須放在第一句有效代碼。(四)import的作用
在一個類中使用另一個類,而兩個類又不在同一個包中時,則需要使用import關鍵字通知計算機導入所需的類。
import語句應該出現(xiàn)在package語句(如果有)之后、類定義之前。導入類名時,需要寫出包括包名在內(nèi)的完整類名。
注:在一個類里面import可以有多個,import在package之后,類名之前。(五)import的兩種導入類型機制(1)單類型導入
如:import ;單類型導入僅僅導入import關鍵字后面的類名所指定的類。(2)按需類型導入
如:import *;它會導入包中所有的類,當然,也包括當前需使用的類。
二、類的封裝
(一)概念
封裝是面向?qū)ο笕筇卣髦?,將對象的屬性信息隱藏起來,不準外部程序直接訪問。若外部需要訪問,則須定義一個公共的方法來訪問私有屬性(二)訪問修飾符(1)訪問修飾符
public private protected 還有一個默認的什么都不寫(有好的:default)(2)作用
訪問修飾符可以修飾成員變量和方法,也可以修飾類。它限制了被修飾者的使用范圍。
(3)訪問控制級別
public:任何包中的任何類都可以訪問,對外公開,訪問級別最高。被public修飾的類、方法、屬性可以被所有成員訪問。private:同一個類中可以訪問,不對外公開,類的private成員只能被該類的成員訪問,訪問級別最低。protected:同一個類,同一個包,子類中可以訪問。受保護的,對于子女(子類,可以在其他包中),朋友(同包)來說,就是public的,可以自由使用,沒有任何限制,而對于其他的外部cla,protected就變成private。default:同一個類,同一個包中可以訪問。(無修飾符符)友好的,類的成員沒有訪問控制修飾符,只有該類的成員和當前包下其他類的成員可以訪問。(三)對屬性進行封裝
就是將屬性私有化,隱藏實現(xiàn)細節(jié)。提供公有方法訪問私有屬性 通過這些公有方法訪問私有屬性。
三、類的繼承
(一)概念
繼承也是面向?qū)ο蟮娜筇卣髦唬腔诂F(xiàn)有的類(基類或父類)派生出新的類(派生類或子類)。子類可以有自己特有的方法和屬性,也可以在父類方法的基礎上去拓展(可以增加新的數(shù)據(jù)和功能),子類不能選擇性地繼承父類,子類可以繼承父類所有的非私有的屬性和方法。
注:子類只可以直接繼承一個父類,且父類不能繼承子類。(二)語法
訪問修飾符(可不加)cla關鍵字 字類的類名 extends關鍵字基類的類名,加上后面的一對大括號。如: cla Dog extends Animal{ }(三)作用
繼承有效的減少了重復代碼。(四)方法的重載與方法的重寫(1)方法的重載
⑴前提:在同一個類中。⑵概念:同名不同參。
同名:函數(shù)(方法)名相同,參數(shù)列表不同。⑶參數(shù)列表不同: ①參數(shù)類型不同 ②參數(shù)個數(shù)不同 ③兩者都不同(2)方法的重寫
⑴前提:必須是在有繼承關系的基礎上進行,子類重寫父類的方法。
⑵概念:如果在子類中定義一個方法,其名稱、返回類型及參數(shù)列表與父類中方法的名稱、返回類型及參數(shù)完全一樣,那么新方法被稱做重寫(Overriding)舊方法。方法重寫又稱方法覆蓋。
(五)this和super關鍵字 ⑴this this表示當前活動對象本身,任何一個活動的對象都有一個默認的this指針指向自己。使用格式:
this.成員變量名; this.成員方法名
this([參數(shù)列表]);//構(gòu)造方法
注:this必須在構(gòu)造方法的第一句有效代碼,且不能在靜態(tài)中使用 ⑵super super表示當前活動對象的直接父類 使用格式:
super.成員變量名; super.成員方法名
super([參數(shù)列表]);//父類的構(gòu)造方法
注:super必須在構(gòu)造方法的第一句有效代碼,且不能在靜態(tài)中使用
四、多態(tài)
(一)概念
多態(tài),也是面向?qū)ο笕筇卣黝櫭剂x,多種狀態(tài)。它是指面向?qū)ο蟪绦蜻\行時,相同的信息可能會送給多個不同的類型之對象,而系統(tǒng)可依據(jù)對象所屬類型,引發(fā)對應類型的方法,而有不同的行為。Java中的多態(tài)
Java引用變量有兩個類型:編譯時類型和運行時類型。編譯時類型由聲明該變量時使用的類型決定,運行時類型由實際賦給該變量的對象決定。當它們出現(xiàn)不一致時,就可能出現(xiàn)所謂的多態(tài)了。
多態(tài)體現(xiàn)在繼承過程中也就是說子類和父類的相互類型轉(zhuǎn)換。子類轉(zhuǎn)換為父類稱為向上轉(zhuǎn)型,在創(chuàng)建對象時,對象既可以作為其本身的類進行引用也可以作為其父類型進行引用。也就是說將一個子類對象直接賦值給一個父類的引用變量,這種我們稱為向上轉(zhuǎn)型。
父類轉(zhuǎn)換成子類,與向上類型相對應的這個父類對象作為其子類類型的引用時,這時候我們就說父類轉(zhuǎn)換成子類了。父類轉(zhuǎn)換成子類需要強制類型轉(zhuǎn)換。也叫向下轉(zhuǎn)型。
自動進行類型轉(zhuǎn)換父類型 引用變量名=new 子類型(); 調(diào)用的方法是子類重寫或繼承父類的方法 無法調(diào)用子類特有的方法 強制類型轉(zhuǎn)換
子類型 引用變量=new 父類類型();強轉(zhuǎn)后才能訪問子類特有的方法 繼承關系的類型關系才能向下轉(zhuǎn)型 A-B-C 其中A是父類,B是它的兩個子類。B-A-B是可以運行的 B-A-C? 經(jīng)實踐發(fā)現(xiàn):語法上沒有問題,運行時會出錯。B-A:是把子類B的對象賦值給父類A向上轉(zhuǎn)型 B(A)-C:把父類B轉(zhuǎn)化成子類C 向下轉(zhuǎn)型
子類B是偽裝的父類,在編譯時沒有問題,但是B和C沒有繼承關系,所以在運行時會出錯。
接口(Interface)
implements 一.抽象類 1.概念
用abstract關鍵字來修飾一個類時,該類叫做抽象類。若使用抽象類,則必須被繼承。
抽象類不能被直接實例化,它只能被繼承,作為其它類的超類,這一點與最終類(final類)正好相反 2.格式
abstract cla 類名{ abstract void 方法名(){ } } 3.抽象方法
用abstract關鍵字來修飾一個方法時,該方法叫做抽象方法。抽象方法不能有實現(xiàn)的方法體,它必須被重寫,定義了抽象方法的類必須是抽象類
⑴抽象方法必須被重寫。⑵抽象方法只有聲明,不能有實現(xiàn)。⑶定義了抽象方法的類必須是抽象類
4.作用
很多時候,父類只能明確子類有哪些行為(方法),但是不能準確的知道子類是如何做的。
二、接口 1.概念
只具有抽象方法的抽象類
三、接口的特點
接口不能被類繼承(extends),只能被類實現(xiàn)(implements); 一個類可以實現(xiàn)多個接口;
實現(xiàn)接口的為抽象類。類必須實現(xiàn)接口中的所有方法。
在類中實現(xiàn)接口中定義的方法時,不能比接口中定義的方法有更低的訪問權限。因此,被實現(xiàn)的接口方法必須用public修飾。格式
訪問修飾符 Interface 接口名{ } 接口也可像定義類一樣實現(xiàn)繼承,但接口只能繼承接口,不能繼承任何類。接口是多繼承的。
訪問修飾符 Interface 接口名 extends 父借口名1,父借口名2...{ } 7.接口的成員變量必須被初始化,成員方法只能有聲明不能有實現(xiàn)。
四、接口的實現(xiàn)
[修飾符] cla 類名 extends 父類名 implements 接口1, 接口2?{ //實現(xiàn)接口的方法 } 1.接口是可以被“多實現(xiàn)”的,一個類可以實現(xiàn)多個接口;
2.接口的實現(xiàn)不影響類的繼承,接口的實現(xiàn)使用implements關鍵字; 3.接口之間的繼承使用extends,而不是implements。
五、抽象類和接口的區(qū)別
1.抽象類可以有實現(xiàn)的方法,也可以有抽象方法,接口只有抽象方法 2.職能的區(qū)別:抽象類是作為父類有關聯(lián)性的,而接口是無關聯(lián)性 3.抽象類可以繼承可以實現(xiàn),接口只能繼承接口
4.有抽象方法的類一定是抽象類,抽象類不是必須有抽象方法
5.非抽象子類必須重新抽象父類中的所有的抽象方法,而抽象子類則不必
六、按值傳遞和按引用傳遞的區(qū)別
值傳遞:傳遞的是副本,本身沒發(fā)生改變
引用傳遞:傳遞的是本身,內(nèi)外改變是一致的(本質(zhì)就是傳遞的內(nèi)存地址)final修飾的類不能被繼承,被其修飾的方法不能被重寫,被其修飾的變量的值不能被修改,即為常量。
七、內(nèi)部類
1.概念 定義在其他類內(nèi)部的類叫做內(nèi)部類,也叫嵌入類
內(nèi)部類是指定在另一個類內(nèi)部的類,它是java中一種非常有用的特性
2.類型
內(nèi)部類共包括四種類型:非靜態(tài)內(nèi)部類、靜態(tài)內(nèi)部類、局部內(nèi)部類、匿名內(nèi)部類。最初,它看起來就像是一種代碼隱藏機制,但是內(nèi)部類的作用遠不止如此,通過內(nèi)部類,可以訪問外部類的所有私有成員,可以使得代碼更加優(yōu)雅清晰,還使得重繼承解決方案更加完整等。3.格式
Cla關鍵字類名{ cla關鍵字類名{
} } 4.成員內(nèi)部類根據(jù)訪問權限的不同又可以劃分為靜態(tài)內(nèi)部類和非靜態(tài)內(nèi)部類。
⑴還有一種特殊的內(nèi)部類叫做匿名內(nèi)部類,這種內(nèi)部類比較特殊它僅僅適合被使用一次的類。也就是說在程序運行中僅僅被使用一次即刻消亡。必須繼承一個父類或一個借口
⑵非靜態(tài)內(nèi)部類:無static修飾的內(nèi)部類。
⑶靜態(tài)內(nèi)部類(類內(nèi)部類):被static修飾的內(nèi)部類 ⑷局部內(nèi)部類:定義在成員方法中的內(nèi)部類,不能使用static或訪問控制符修飾。局部內(nèi)部類不能用訪問控制符來修飾如public、private也不能用static來修飾。同理局部內(nèi)部類不能在外部類以外的地方使用。對于局部成員而言,無論是局部變量或者是局部內(nèi)部類他們的上一級程序都是方法或代碼塊,而不是類。所以局部成員的作用域僅僅是所在的方法或代碼塊。其他的程序單元也就不能訪問到它們。
5.靜態(tài)內(nèi)部類的使用
外部類.內(nèi)部類 類名=new 外部類.內(nèi)部類();
java教學設計2
《java程序設計》多媒體雙語教學總結(jié)
計算機與信息工程系
2008~2009雙語課程
2001年9月教育部《關于加強高等學校本科教育工作,提高教學質(zhì)量的若干意見》指出:為適應經(jīng)濟全球化和科技革命的挑戰(zhàn),本科教育要創(chuàng)造條件使用外語進行公共課和專業(yè)課教學。對高科技領域的生物技術、信息技術等專業(yè)力爭3年內(nèi),外語教學課程達到所開課程的5%-10%。
我校雙語教學起步較晚,對于計算機專業(yè),目前主流的編程語言的語義均來自于英文,國際上最先進、前沿的計算機技術大都用英文論述,最新的編程框架90%以上是用英文論述或注釋。計算機專業(yè)的雙語教學,不僅是對現(xiàn)行教學方法的一次探索,也是培養(yǎng)高素質(zhì)雙語計算機人才的重要途徑之一。為將我院本科各專業(yè)學生培養(yǎng)成富有創(chuàng)新思想、開拓能力,具有國際視野和知識的高素質(zhì)人才,我2008年9月開始擔任本課程的雙語教學工作,結(jié)合過去一個學期的教學經(jīng)驗,現(xiàn)對本課程的意義、多媒體雙語教學應具備的條件、應注意的問題、存在問題和應采用的措施等方面作一總結(jié)
1、本課程采用多媒體雙語教學的意義
(1)作為基礎外語教學的延伸,提高學生的專業(yè)外語水平,并為學生畢業(yè)后從事科研、生產(chǎn)和經(jīng)濟建設活動服務,從而提高學生面向市場的競爭能力。(2)吸收國外教材中的先進成分,學習國外科學家開展科學研究、參加工程實踐和面向市場經(jīng)濟的務實態(tài)度和獻身精神,培養(yǎng)具有強烈創(chuàng)新意識和實際創(chuàng)新能力的人才。所選擇的圖像處理技術國外教材特別注重理論和實踐的結(jié)合,在內(nèi)容安排、習題的選擇和工程項目的舉例等方面均很有特色。
(3)為部分后續(xù)課程的學習提供新的平臺。本課程承前啟后,本科生,以及將來學生深入學習,進入研究生課程都與它有密切關聯(lián)。(4)利于學生的畢業(yè)論文利用新的外文資料。
(5)展多媒體雙語教學有利于提高師資素質(zhì),培養(yǎng)青年教師后備隊伍,使他們樹立起“面向世界”、“趕超世界先進水平”的觀念。
(6)課程的研究還有利于加強國際交流和合作,為今后培養(yǎng)留學生、國外訪問學者打下基礎。
2 本課程多媒體雙語教學已具備的條件
Java程序設計是理論性和實用性都很強的學科。java編程語言和編程平臺都起源于西方國家,為了縮小我國在本學科的研究水平與國際上的差距,國內(nèi)的部分著名大學開始選用國外的原版或影印教材。
為了適應現(xiàn)代化教學、與國內(nèi)名牌院校和國外大學教學水平接軌的要求,本課程逐步實行多媒體雙語教學,已具備的條件如下:
(1)任課教師對該課程教學熟悉,有良好的外語口語和書寫表達能力。(2)由于課程屬于專業(yè)課程,學生的專業(yè)知識和外語水平較好,條件比較成熟。(3)選擇了近年來國外優(yōu)秀的圖像處理原版或影印教材。(4)選擇難度適中的中英文參考書。(5)以多媒體課件加大課堂教學的信息量。
(6)先實行外語教材、外文課件、中文授課,逐步過渡到全英文教學。3 本課程在教學工作中的具體實施
(1)教材和參考書的選擇。教材選用原版英文教材或影印教材。參考書以中文書為主,適當選擇一些英文參考資料,中英文參考書相互補充,便于學生加深對課程的理解和中英文表達方式的對照。例如,選擇《Introduction to java programming》(6 edition),本教材有相應的中文譯本,而且被機械工業(yè)出版社入選為《國外優(yōu)秀計算機科學與技術系列教學用書》.相輔助的參考書有《 Thinking in java》《java how to program》等,都有對應中文參考書并全部被列為經(jīng)典原版教材,多數(shù)院校經(jīng)久使用。
(2)中英文教材在內(nèi)容、體系上的異同。對現(xiàn)有中文教材和原版外文教材的教學大綱進行比較分析,以實現(xiàn)不同語種教材間的互補。列出重點掌握的專業(yè)詞匯對照
(3)英文的習題和試題的命題
本課程使用英文作業(yè)和試卷考核形式,這是把握教學質(zhì)量的重要環(huán)節(jié),是分析教學實際效果的重要依據(jù)。這方面沒有現(xiàn)成的經(jīng)驗可遵循,必須探索。示例作業(yè)和英文試卷見后面附錄A、B。4 雙語教學效果
鑒于目前我院師資情況,雙語課程只是在部分班級開設,即使同一年級同專業(yè)的各班之間也不是全部開設。同時我們本著實事求是的原則,謹慎推進雙語教學。通過對雙語教學課程學生反饋信息的總結(jié),可以確定雙語教學的開展產(chǎn)生了如下效果。
(1)學生不僅掌握了相關課程的基本概念和基本理論知識,而且通過雙語學習掌握了準確系統(tǒng)的英語專業(yè)表達方式。提高專業(yè)英文的閱讀能力和自學能力。
(2)通過課堂提問,書面作業(yè)等形式的教學方法,初步培養(yǎng)了學生用外語進行專業(yè)交流的能力,增強了學生開口說,動手寫的熱情,提供了學生與老師間進行專業(yè)交流的平臺,提升了學生的綜合素質(zhì)。
(3)在本課程學習的基礎上,學生在畢業(yè)論文設計初期可以充分,自由的利用新的外文資料。
(4)為學生畢業(yè)后從事科研、生產(chǎn)和經(jīng)濟建設活動服務,從而提高學生面向市場的競爭能力。
5、本課程在教學過程中存在的問題
從學生外語能力來看,由于大多數(shù)學生口語表達能力和聽力較差,特定題材的英文寫作能力較弱,限制了老師和學生的知識溝通,使雙語教學停留在老師語言表達較為簡單、專業(yè)詞匯較為基礎的層面上,導致更進一步的知識傳授與探討無法順利進行。影響了雙語教學的效果。
從教師的授課內(nèi)容來看,由于雙語教學開展時間較短,授課教師教學經(jīng)驗不足,出現(xiàn)了教師的講授更多停留在英文教材的書面表述上;
從課件準備上看,為了更好地闡述和傳授英文教材中的專業(yè)知識,授課教師在課件中大多使用全英文專業(yè)詞匯,部分使用了英文單詞的縮寫形式,考慮到中國學生的知識背景和英文認知能力,部分學生對授課教師課件中的這些內(nèi)容難以理解和接受。
6 本課程在實施中為解決問題所采用的應對措施(1)教學與科研相結(jié)合 將科研成果結(jié)合到教學當中去,以增強學生的學習興趣和求知欲望。也可以在本科畢業(yè)設計中指導學生進行java程序設計方面課題的較為深入的研究,使他們在實踐中加深對所學知識的理解。同時對教學和科研都有相應的促進作用。目前我所代09屆畢業(yè)生10名,有一半的學生使用java結(jié)合IDE和服務器軟件做畢業(yè)設計,這說明教學的知識可以充分的應用到實踐中去。(2)傳統(tǒng)教學方法與多媒體課件相結(jié)合現(xiàn)代的多媒體技術雖然所包含的信息量大,形式多樣,但是并不能完全代替?zhèn)鹘y(tǒng)的教學方法,靠課件往往在速度上和表達的準確性上難以奏效,教師的口頭表達以及在黑板上書寫顯得更為方便。(3)中文教授和英文講授相結(jié)合在專業(yè)語言表達上,中英文存在一定的差異,針對學生英語水平的現(xiàn)狀,全英文講授將導致教學效果不好。針對學生的現(xiàn)狀,收集學生對教學效果的反饋意見,采用英文教案和多媒體課件,課堂上主要以中文講授為主,適當穿插英文專業(yè)術語效果較好。只有在條件成熟時才能適當采用全英文教學。(4)教師指導與優(yōu)秀本科生和研究生參加教改相結(jié)合下一步打算,吸收部分優(yōu)秀本科生參與課件制作,通過與學生交互,收集反饋意見,提升教學質(zhì)量,并可以提高學生學習興趣。7 結(jié)論
總之,雙語教學對高校而言,是一種新的實踐,它必然要經(jīng)過一個從不成熟到成熟的過程。本課程在實際教學過程中取得了一定的教學效果,同時也存在一定的問題,應當在今后的實踐中積極探索,及時總結(jié)經(jīng)驗,采取積極有效的措施,促進雙語教學工作的順利進行。附錄A Test paper B 附錄B homework
java教學設計3
實驗項目七
1、實驗項目名稱: 監(jiān)聽和過濾
2、實驗項目性質(zhì):驗證性
3、實驗要求:必修
4、計劃學時數(shù):2學時
5、實驗內(nèi)容:
(1).實現(xiàn)網(wǎng)上書店項目后臺管理用戶的過濾功能。具體要求如下:
? 禁止用戶非法訪問,只有登錄成功才能訪問后臺頁面。
? 沒有登錄,直接訪問后臺其他頁面,將跳轉(zhuǎn)到登錄頁面。
(2).在網(wǎng)上書店項目中增加監(jiān)聽功能,當用戶登錄成功時自動更新數(shù)據(jù)庫中該用戶的登錄次數(shù)。
(3).實現(xiàn)網(wǎng)上書店項目后臺圖書管理中的修改圖書信息功能模塊。具體要求如下: ? 在圖書管理頁面中,單擊“修改圖書信息”按鈕,對選定的圖書進行修改。
? 一次只能修改一本圖書信息。
? 修改頁面中顯示圖書的原有數(shù)據(jù)。
? 圖書ISBN不可修改。
(4).實現(xiàn)網(wǎng)上書店項目后臺用戶管理中的修改用戶信息功能模塊。具體要求如下: ? 在用戶管理頁面頁面中,單擊“修改用戶信息”按鈕,對選定的用戶信息進行修改。
? 一次只能修改一個用戶信息。
? 修改頁面中顯示該用戶原有信息。
? 用戶名不可修改。
根據(jù)第七章所學內(nèi)容以及上機實踐情況,在實驗報告中完成以下問題。
(1).編寫一個過濾器,名稱為ForceNoCacheFilter,通過使用此過濾器使瀏覽器不緩存任何頁面。在實驗報告中給出其中的關鍵代碼。
(2).畫圖說明Servlet上下文監(jiān)聽器的工作流程。
6、項目需用儀器設備名稱: 計算機
7、所需主要元器件及耗材:無
8、實驗項目目的和任務:
(1).了解監(jiān)聽器原理及生命周期中的方法。
(2).掌握Servlet上下文監(jiān)聽。掌握HTTP會話監(jiān)聽。了解請求監(jiān)聽。
(3).理解過濾器原理及生命周期。掌握實現(xiàn)一個過濾器的步驟。了解過濾器鏈。
java教學設計4
《JAVA程序設計》課程教學模式改革的思考
[摘要]為適應職業(yè)教育改革發(fā)展需要,針對Java課程的教學做一些思考。在教學方法上做到灌輸式教學向?qū)蚴浇虒W的改變,并且在授課過程中體現(xiàn)項目驅(qū)動的方式,加強實踐教學環(huán)節(jié)的實施和監(jiān)控,切實做到對java應用能力的培養(yǎng)。
[關鍵詞]java 教學方法 實踐教學 應用能力
中圖分類號:TP3文獻標識碼:A 文章編號:1671-7597(2008)-01
Java是1995年由Sun公司組織開發(fā)的一種編程語言,其所具備的簡單性、跨平臺、面向?qū)ο蟆⒍嗑€程等特點,已經(jīng)成為當今世界面向?qū)ο蟪绦蛟O計的主流。目前,各大高校都開設了《JAVA程序設計》相關課程,考慮到Java 語言的實踐性強和開發(fā)環(huán)境的特殊,結(jié)合職業(yè)教育改革的發(fā)展需要,本人針對該門課程的教學模式改革做了一些思考。
一、傳統(tǒng)灌輸式教學向?qū)蚴浇虒W的轉(zhuǎn)變
在傳統(tǒng)的教學過程中,大都是以理論知識灌輸和教師為主體,學生學習非常被動。這種方式的教學在很大程度上限制了學生主觀能動性的發(fā)揮,從而使得課堂氣氛沉悶,學生上課走神,最終導致教學效果不理想。隨著《國務院關于大力推進職業(yè)教育改革與發(fā)展的決定》,“以學生為主體,以教師為主導”的新型教育模式被提了出來,這種教育模式要求學校和教師把學生放到應有的學習主體的地位上,充分地發(fā)揮教師教導與引導的主動性和學生自主學習的主觀能動性,真正達到教學相長,師生互動,寓教于樂,學生自悟與自覺的高水平教育境界,培養(yǎng)德、智、體、美全面發(fā)展的具有行動能力和創(chuàng)造能力的高層次社會人才?!盎邮浇虒W”、“參與式教學”、“研究型學習”等新的教學方法應運而生。為了培養(yǎng)學生學習興趣和積極性,切實培養(yǎng)學生使用java語言進行程序開發(fā)的能力,所以在教學過程必須打破傳統(tǒng)教育教學方式,做好導向式教學。為了更好地體現(xiàn)導向式教學,我將整個教學環(huán)節(jié)進行了調(diào)整,授課過程中更多地增加了提問、小組討論、實踐練習等。例如在講述java基礎語法知識時,我采用與C語言進行對比的方式,列出問題,給出測試題目。引導學生帶著問題,自己看書,并通過小測驗,加強對理論知識的理解和掌握。
二、項目驅(qū)動式方法貫穿整個教學過程
項目驅(qū)動教學法作為教育領域中一種比較新的教育教學方法,近年來我國教育界開始吸收并實踐這一教學方法。結(jié)合職業(yè)教育特點和java語言在軟件開發(fā)中的廣泛應用,在此課程的講授過程中,項目驅(qū)動始終貫穿其中。
(一)準備階段
首先參照企業(yè)開發(fā)模式將學生劃分成小組,確定組長后,由各組組長進行管理。然后根據(jù)學生語言基礎能力和興趣,確定企業(yè)實際項目。
(二)實施階段
根據(jù)java程序設計大綱所規(guī)定的能力單元,將項目切分,滲透到各個相關知識點的講授中。例如在講授面向?qū)ο蠡A知識時,有了繼承、封裝、多態(tài)的概念繼承,講到類的定義,就可以要求學生將實際項目中所涉及的各個cla文件創(chuàng)建出來,為后期開發(fā)做準備。后面講授多線程、I/O流、圖形界面、網(wǎng)絡編程、數(shù)據(jù)庫操作等,在實踐練習環(huán)節(jié)都引入實際項目的分模塊開發(fā),從而提高教學的深度和廣度,在一定程度上也激發(fā)學生的積極性和知識擴展性,充分調(diào)動學生興趣,提高教學質(zhì)量。
(三)檢查階段
在整個教學過程結(jié)束后,一個較完整的項目就開發(fā)出來了。對此,小組組長要對各組員的項目結(jié)果進行檢查,教師要對各小組的項目質(zhì)量進行檢查。工作結(jié)果要按照預定的目標來進行自我和相互的檢查并判斷達到的效果如何。此過程鍛煉學生的責任心、質(zhì)量意識及評估方法。同時,教師除對工作計劃以內(nèi)的內(nèi)容進行檢查外,還應對質(zhì)量保證情況進行檢查。
(四)評估階段
最后,學生完成工作評定,教師完成最終評估。首先學生自己對所做的工作進行工作評定,包括項目的準備、項目實施過程中解決的各種疑難問題、自己所負模塊的效果等各方面進行總結(jié);然后指導教師進行最后的工作總結(jié)、成績評定,并找出差距和改正辦法。
三、加強實踐教學環(huán)節(jié)的實施與監(jiān)控
根據(jù)《java程序設計》課程的特點,在授課過程中,著重突出學生動手能力的培養(yǎng),因此該門課程的理論和實踐課時比為1:1,授課地點都在機房。但通過聽取其他同事對java課程的講授和對學過java課程的學生的調(diào)查,發(fā)現(xiàn)很多教師在授課過程中,雖然加重了實踐課時的比例,由于對實踐環(huán)節(jié)的落實和監(jiān)控力度不夠,最終導致學生的動手能力沒有得到很大很好的提高和改善。因此在教學過程中一定要切實落實實踐教學環(huán)節(jié)的展開,并在實踐教學環(huán)節(jié)中加強學生實踐練習的過程和結(jié)果的監(jiān)控反饋力度。采取分組管理的方式,由教師對組長,組長對小組成員進行監(jiān)督、控制的方式,切實保證教學實踐環(huán)節(jié)人人參與的目標。最后組長要根據(jù)各組實踐練習情況寫出書面總結(jié)報告,教師根據(jù)各組情況針對集中存在的問題進行反饋。
四、總結(jié)
總之,Java教學一定要圍繞提高學生實踐應用能力展開,注重面向?qū)ο缶幊趟枷氲呐囵B(yǎng),真正做到培養(yǎng)符合職業(yè)教育要求,符合社會需求的實用性人才。教學過程中注重導向式教學,以項目驅(qū)動貫穿整個教學過程,并加強實踐教學環(huán)節(jié)的實施與監(jiān)控力度,這是本人對Java程序教學的幾點思考,希望能夠拋磚引玉,最終取得良好的教學效果。
參考文獻:
[1]鄭莉,計算機入門語言講什么?[J].計算機教育,2006(07),25-26.[2]朱平,Java程序設計教學[J].湖北教育學院學報,2006,23(02),46-48.[3]孫偉,《Java程序設計》課程的教學改革與實踐[J].計算機時代,2005(11),84-86.[4]張孝祥,Java就業(yè)培訓教程[M].北京:清華大學出版社,2003.[5]張哲,陳桂生,在Java語言教學中實施“項目驅(qū)動”教學法的實踐探索[J].教育與職業(yè),2007年18期.作者簡介:
李桂珍,女,漢族,山東德州人,北京工業(yè)大學在職研究生,新疆農(nóng)業(yè)職業(yè)技術學院軟件技術學院助教,研究方向:軟件技術;李欣,北京工業(yè)大學工程碩士,在讀,助教,軟件技術方向。
java教學設計4篇 基java集合面試專用相關文章: