第一篇:Java面向對象編程習題總結大全
第一章
面向對象開發方法概述
1.面向對象的軟件開發有哪些優點?
1)
把軟件系統看成是各種對象的集合,這更接近人類的自然思維方式。
2)
軟件需求的變動性往往是功能的變動,而功能的執行者——對象,一般不會有多大的變化,比結構化更穩定。
3)
對象包括屬性和行為,對象把數據及方法的具體實現方式一起封裝起來,使得方法與之相關的數據不再分析,提高了每個子系統的相對對立性,從而提高軟件的可維護性。
4)
支持封裝,抽象,繼承和多態。提高了軟件的可重用性,可維護性和可擴展性。
2.在軟件系統中,為什么說一個孤立的不對外提供任何服務的對象是沒有意義的?
1)
每個對象都具有特定的功能,相對于其他對象而言,它的功能就是為其他對象提供的服務。
2)
從使用者角度出發,整個軟件系統就是一個服務的提供者。
3)
在系統內部,每個子系統也都是服務的提供者,它們其他子系統提供服務。
4)
因此說一個孤立的部隊為提供任何服務的系統是美歐任何意義的。
3.列舉一些現實生活中的例子,來說明什么是依賴關系、什么是聚集關系,以及什么是關聯關系。
1)
關聯關系:關聯是指類之間的特定對應關系,可以分為單向關聯和雙向關聯,也可以分為一對一關聯、一對多關聯以及多對多關聯。A關聯B,是指Class A與Class B之間存在特定的對應關系。舉例如學生和老師,訂單和客戶。
2)
依賴關系:類之間的調用關系。A依賴B,Class A訪問Class B提供的服務。如Panel與Shape的關系。
3)
聚集關系:是整體與部分之間的關系
4.列舉一些顯示生活中的例子,來說明什么是封裝,什么是接口。
1)
接口:對象中所有向使用者公開的方法的聲明構成了對象的接口。
2)
封裝:隱藏對象的屬性和實現細節,僅僅對外公開接口。
3)
接口的優點:a.提高系統之間松散耦合b.提高了系統的可擴展性。
4)
封裝的有點:
a.便于使用者正確、方便地理解和使用系統,防止使用者錯誤修改系統的屬性。
b.有助于建立各個系統之間的松耦合關系,提高系統的獨立性。
c.提高軟件的可重用性,沒個系統都是一個相對獨立的整體,可以在多種環境中得到重用。
d.降低構建大型系統的風險,即使整個系統不成功,個別的獨立子系統有可能依然有價值。
5.抽象的最主要特征是什么?
抽象是指從特定角度出發,從已經存在的一些事物中抽取我們所關注的特性,形成一個新的事物的思維過程。
6.在建立對象模型時,要經歷哪些抽象思維過程?
1)
從問題領域的事物到軟件模型中對象的抽象。
2)
從對象到類的抽象。
3)
從子類到父類的抽象
7.類就是程序員自定義的類型。這種說法是否正確?
不正確,類是一組具有相同屬性和行為的對象的抽象。類及類的關系構成了對象模型的主要內容。開發人員需要根據先識別對象,然后再進行分類(創建任意的數據模型)的思路來建立對象模型。
8.小王本來體重70kg,經過減肥,體重降到45kg,試從這個問題領域中識別對象、類、屬性、狀態和狀態的變化。
1)
類:人。
2)
對象:小王。
3)
屬性:體重。
4)
狀態:70kg。
5)
狀態的變化:小王的減肥行為導致體重下降。
9.在UML圖中哪些框圖描述了系統的動態結構,哪些框圖描述了系統的靜態結構?
1)
用例圖、類框圖、組件圖、部署圖構成了系統的靜態模型。
2)
狀態轉換圖、時序圖、協作圖則構成了系統的動態模型。
第二章
第一個Java應用
1.把一個類放在包里有什么用?
答:把類分包的作用:
(1)
能夠區分名字相同的類
(2)
有助于實施訪問權限控制
(3)
有助于劃分和組織Java應用中的各個類
2.JavaDoc文檔是不是為軟件的終端用戶提供的使用指南?
答:不是的,JavaDoc文檔是供Java開發人員閱讀的,他們通過JavaDoc文檔來了解其他開發人員開發的類的用法。Java開發人員應該養成經常閱讀JavaDoc文檔的良好習慣。
3.對于com.abc.dollapp.AppMain類,使用以下命令進行編譯,編譯出來的.class文件位于什么目錄下?
java –d C:classes –sourcepath C:src C:srccomabcdollappAppMain.java
答:將會存放在C:classescomabcdollapp下。
4.對于以上編譯出來的AppMain類,以下哪個java命令能正確運行它?
(a)
java C:classescomabcdollappAppMain.class
(b)
java –classpath C:classes AppMain
(c)
java –classpath C:classescomabcdollapp AppMain
(d)
java –classpath C:classes com.abc.dollapp.AppMain
答:(b)
5.以下哪些main()方法的聲明能夠作為程序的入口方法?
(a)
public static void main()
(b)
public static void main(String[] string)
(c)
public static void main(String args)
(d)
static public int main(String[] args)
(e)
static void main(String[] args)
答:(b),主函數必須以public static void形式存在,參數必須為String數組形式。
6.假定以下程序代碼都分別放在MyClass.java文件中,哪些程序代碼能夠編譯通過?
(a)
import java.awt.*;package Mypackage;
class MyClass{};
(b)
package MyPackage;
import java.awt.*;
class MyClass{};
(c)
/*This is comment*/
package MyPackage;
import java.awt.*;
public class MyClass{};
答:(c),程序順序必須按照import, package, class走,源文件必須以public類型的類命名。
7.對于以下Myprog類,運行命令”java Myprog good morning”,將會得到打印結果?
public class Myprog {
public static void main(String argv[])
{
System.out.println(argv[2]);
} }
答:打印結果為空。argv[0] = “good”, argv[1] = “morning”。
8.下面哪些是Java的關鍵字?
(a)
default
(b)
NULL
(c)
String
(d)
throws
(e)
long
(f)
true
答:(a),(d),(e),(f),java中所有的關鍵字都是小寫。
9.當AppMain類的main()方法創建了5個Doll對象時,運行時數據區的數據如何分布的?參考2.4節的圖2-13,畫出此時運行時數據區的狀態圖。
運行時數據區(內存)
Java棧區
執行main()方法的主線程的方法調用棧
局部變量beibei
局部變量jingjing
局部變量huanhuan
局部變量yingying
局部變量nini
堆區
Doll實例
name:貝貝
Doll實例
name:晶晶
Doll實例
name:歡歡
Doll實例
name:迎迎
Doll實例
name:妮妮
方法區
Doll類型信息
AppMain類型信息
(包含main()方法信息)
10.下面哪些是合法的Java標識符?
(a)
#_pound
(b)
_underscore
(c)
5Interstate
(d)
Interstate5
(e)
_5_
(f)
class
答:(b),(d),(e)標識符命名規則如下:
(1)
標識符首字母必須為字母、下劃線“_”、美元“$”、人民幣“¥”(2)
標識符由數字、大寫字母、小寫字母、下劃線以及美元等組成
(3)
不能把關鍵字和保留字作為標識符
(4)
標識符沒有長度的限制
(5)
標識符是大小寫敏感的第三章
數據類型和變量
1.對于以下程序,運行“java Abs”,將得到什么打印結果?
public class Abs
{
static int a = 0x11;
//十六進制
static int b = 0011;
//八進制
static int c = 'u0011';
//十六進制數據的Unicode字符編碼
static int d = 011;
//八進制
/**
* @param args
*/
public static void main(String[] args)
{
System.out.println(“a=”+a);
System.out.println(“b=”+b);
System.out.println(“c=”+c);
System.out.println(“d=”+d);
} }
答:輸出如下
a=17 b=9 c=17 d=9
2.以下哪段代碼能正確編譯通過?
(a)
char a = ?a?;
char b = 1;
char c = 08;
(b)
int a = ?a?;
(c)
long a =?u00FF?;
(d)
char a = ?u0FF?;
(e)
char d = “d”;
答:(b)、(c)能通過編譯。(a)中“char c=08”將int賦值給char需要部分強制轉換,“char c=8”就正確;(d)中unicode編碼錯誤,java采用的是UCS-2編碼,共16位;(e)字符賦值是使用單引號,字符串String賦值時才使用雙引號。
3.下面哪些代碼能編譯通過?
(a)
short myshort=99S;
(b)
String name = ?Excellent tutorial Mr Green?;(c)
char c = 17c;
(d)
int z = 015;
答:(d)可以編譯通過。(a)中char賦值給short需要強制轉換;(b)中String類型賦值用雙引號;(c)中int賦值給char需要部分強制轉換。
4.字符“A”的Unicode字符編碼為65.下面哪些代碼正確定義了一個代表字符“A”的變量?
(a)
Char ch=65;
(b)
Char ch=?65?;
(c)
Char ch =?u0041?;
(d)
Char ch=?A?;
(e)
Char ch =”A”
答:(c)、(d)可以得到”A”。(b)的輸出為5,其他無法編譯通過。
5.以下代碼共創建了幾個對象?
String s1=new String(“hello”);
String s2=new String(“hello”);
String s3=s1;
String s4=s2;
答:共創建了2個對象。棧區4個局部變量分別引用了堆區的2個實例,而2個實例又引用了工作區的同一個類。
6.以下代碼能否編譯通過?假如能編譯通過,運行時將得到什么打印結果?
class Test {
static int myArg = 1;
public static void main(String[] args)
{
Int myArg;
System.out.println(myArg);
} }
答:無法編譯通過,因為局部變量myArg聲明之后Java虛擬機就不會自動給它初始化為默認值,若在使用前未被初始化,編譯會報錯。
7.對于以下程序,運行“java Mystery Mighty Mouse”,將得到什么打印結果?
public class Mystery
{
public static void main(String[] args)
{
Changer c = new Changer();
c.method(args);
System.out.println(args[0]+“ ”+args[1]);
}
static class Changer
{
void method(String[] s)
{
String temp = s[0];
s[0] = s[1];
s[1] = temp;
}
} }
答:打印結果為“Mighty Mystery”
8.對于以下程序,運行“java Pass”,將得到什么打印結果?
public class Pass
{
static int j = 20;
public static void main(String[] args)
{
int i=10;
Pass p = new Pass();
p.amethod(i);
System.out.println(“i=”+i);
System.out.println(“j=”+j);
}
public void amethod(int x)
{
x*=2;
j*=2;
} }
答:打印結果是
i=10 j=40
其中“int x”是傳參,作用域僅在amethod之中。
第四章 操作符
1.以下哪些程序代碼能夠編譯通過?
(a)
int i=0;if(i){
System.out.println(“hello”);}
(b)
boolean b1=true;
boolean b2=true;
if(b1==b2){
System.out.println(“So true”);}
(c)
int i=1;
int j=2;
if(i==1||j==i){
System.out.println(“ok”);}
(d)
int i=1;
int j=2;
if(i==1&|j==i){
System.out.println(“ok”);}
答:(b)、(c)能編譯通過。(a)中int不能作為boolean出現,(d)中不能出現&|該操作符。
2.運行以下程序,將得到什么打印結果?
System.out.println(-1>>>1);
System.out.println(-1>>1);
System.out.println(2>>1);
System.out.println(1<<<1);
答:>>>是邏輯右移位操作符,也稱不帶符號右移位操作符,在移位的過程中二進制數開頭填0;>>是右移位操作符,也稱帶符號右移位操作符,舍棄末尾,在開頭填符號位;<<<操作符不存在;
11111111 11111111 11111111 11111111
-1>>>1
01111111 11111111 11111111 11111111
11111111 11111111 11111111 11111111
-1>>1
11111111 11111111 11111111 11111111
00000000 00000000 00000000 00000010
2>>1
00000000 00000000 00000000 00000001
2147483647-1 1
3.以下temp變量最終取值是什么?
long temp =(int)3.9;
temp %= 2;
答:取值為1。
4.以下代碼能否編譯通過?假如能編譯通過,運行時將得到什么打印結果?
if(5 & 7 > 0 && 5 | 2)System.out.println(“true”);
答:int型不能作為boolean型出現。
5.以下代碼能否編譯通過?假如編譯通過,運行時將得到什么打印結果?
int output=10;
boolean b1 = false;
if((b1==true)&&((output+=10)==20)){
System.out.println(“We are equal”+output);} else {
System.out.println(“Not equal!”+output);}
答:Not equal!10
6.以下代碼能否編譯通過?假如能編譯通過,運行時將得到什么打印結果?
int output=10;
boolean b1 = false;
if((b1==true)&((output+=10)==20)){
System.out.println(“We are equal”+output);} else {
System.out.println(“Not equal!”+output);}
答:Not equal!20
7.對于以下聲明:
String s1=new String(“Hello”);
String s2=new String(“there”);
String s3=new String();
下面哪些是合法的操作?
(a)
s3=s1+s2;
(b)
s3=s1-s2;
(c)
s3=s1&s2;
(d)
s3=s1&&s2;
答:(a)是合法操作。除了“+”能用于字符串的連接以外,其他操作符(如“-”、“&”、“&&”等)都不支持String類型的操作元。
第五章
流程控制
1.運行以下代碼,將得到什么打印結果?
int i = 3;
int j = 0;
double k = 3.2;
if(i < k)
if(i == j)
System.out.println(i);
else
System.out.println(j);
else
System.out.println(k);
答:0
2.以下代碼能否編譯通過?假如能編譯通過,運行時將得到什么打印結果?
int i = 4;
switch(i){
default:
System.out.println(“default”);
case 0:
System.out.println(“zero”);
break;
case 1:
System.out.println(“one”);
case 2:
System.out.println(“two”);}
答:可以編譯通過,打印結果是:
default
zero
分析:default可以放在任何位置上,一旦符合一個case即從頭執行到尾,不再判斷case。
3.以下哪些是合法的
(a)
int i;for(i=5, int j=10;i<10;j--){}
(b)
int i,j;for(i=0, j=10;i<10, j>0;i++, j--){}
(c)
int i,k;for(i=0, k=9;(i<10 && k>0);i++, k--){}
(d)
int i,j;for(i=0;j=10;i<10;i++,j--){} 答:(a)for語句中int定義要放在開頭。編譯不通過。
(b)循環判斷語句不可以用逗號連接。編譯不通過。
(c)合法。
(d)分號只能有2個。
4.運行以下代碼,將得到什么打印結果?
int i = 1;
switch(i){
default:
System.out.println(“default”);
case 0:
System.out.println(“zero”);
break;
case 1:
System.out.println(“one”);
case 2:
System.out.println(“two”);}
答:分析同1,運行結果如下:
one
two
5.以下哪些代碼合法?
(a)
float x=1;
switch(x){
case 1;
System.out.println(“Got a 1”);
}
(b)
long x=1;
switch(x){
case 1;
System.out.println(“Got a 1”);
}
(c)
byte x=1;
switch(x){
case 1/1;
System.out.println(“Got a 1”);
}
(d)
int x=1;
int c=1;
switch(c){
case x;
System.out.println(“Got a 1”);}
(e)
short x=1;
switch(x){
case 3.2/2;
System.out.println(“Got a 1”);
}
(f)
short x=1;
switch(x){
case 1,2,3;
System.out.println(“Got a 1”);
}
答:只有(c)是合法的。
6.以下代碼能否編譯通過?假如能編譯通過,運行時將得到什么打印結果?
for(int a=0, b=0;a<2;b=++a, System.out.println(“b=”+b)){
System.out.println(“a=”+a);}
答:可以通過編譯,打印結果:
a=0 b=1 a=1 b=2
7.以下代碼能否編譯通過?假如能編譯通過,運行時將得到什么打印結果?
int x=0;one:
while(x<10)
{
two:
System.out.println(++x);
if(x>3)
break two;
}
答:不能通過編譯。
第二篇:使用java實現面向對象編程總結
第一章:抽象和封裝
1,為什么使用面向對象
1.1:萬事萬物皆對象,面向對象就是采用“現實模擬”的方法設計和開發程序。
2,使用面向對象進行設計
2.1:面向對象設計三部曲
1,發現類。
2,發現類的屬性。
3,發現類的方法。
經驗:在需求中找出名詞的方式確定類和屬性,找出動詞的方式確定方法。
3,創建類的對象
1,通過構造方法來創建對象
2,通過對象名.屬性名的方式調用屬性。
3,通過對象名.方法名的方式調用方法。
4,Static可以用來修飾屬性,方法和代碼塊。Static修飾的變
量屬于這個類所有。即由這個類創建的所有對象共有同一個static變量。類屬性,類方法可以通過類名和對象名訪問,勢力屬性,實例方法只能通過對象名訪問。
5,在方法里不可以定義static變量,類變量不能是局部變量。6,構造函數的重載
1,構造方法的名字和類名相同,沒有返回值類型。構造
方法的作用主要就是在創建對象是執行一些初始化操作,賦值。
2,在沒有給類提供任何構造方法時,系統會提供一個無
參的方法體為空的默認構造方法。一旦提供了自定義構造方法,系統將不會提供這個默認構造方法,如果要使用她,必須手動添加。
3,如果同一個類中包含了兩個或兩個以上方法,它們的方法名相同,方法參數個數或參數類型不同,則稱該方法被重載。成員方法和構造方法都可以重載。
4,構造方法沒有返回值類型。如果有,就不是構造方法,而是構造方法同名的成員方法。
5,封裝
1,封裝是類的三大特性之一,就是將類的狀態信息隱
藏在內部。
2,封裝的具體步驟:為每個屬性創建一對一賦值,在賦值方法中,加入對屬性的存取控制語句。
3,隱藏類的實現細節,讓使用者只能通過程序員規定的方法來訪問數據,可以方便地加入存取控制語句,限制不合理操作。
第三篇:面向對象編程的總結
面向對象編程的總結(理解與看法)面向對象程序設計(Object Oriented Programming,OOP,面向對象程序設計)是一種計算機編程架構。OOP 的一條基本原則是計算機程序是由單個能夠起到子程序作用的單元或對象組合而成。
OOP 達到了軟件工程的三個主要目標:重用性、靈活性和擴展性。為了實現整體運算,每個對象都能夠接收信息、處理數據和向其它對象發送信息。
面向對象有三大特性,分別是:封裝、繼承、多態。封裝是隱藏對象的屬性和實現細節,僅對外公開接口,控制在程序中屬性的讀和修改的訪問級別;將抽象得到的數據和行為(或功能)相結合,形成一個有機的整體,也就是將數據與操作數據的源代碼進行有機的結合,形成“類”,其中數據和函數都是類的成員。目的是增強安全性和簡化編程,使用者不必了解具體的實現細節,而只是要通過外部接口,以特定的訪問權限來使用類的成員。任何類都可以從另外一個類繼承,即這個類擁有它所繼承類的所有成員。被繼承的類稱為父類或基類。C# 只支持單繼承,不支持多重繼承,即在C# 中一次只允許繼承一個類,不能同時繼承多個類。在C# 中,接口允許多繼承,可以通過繼承多個接口來實現類似于C++中的多重繼承。
多態是同一個類在不同場合下表現出不同的行為特征。
使用抽象方法與虛方法都可以實現多態性。抽象方法是一個未實現的方法,使用abstract關鍵字修飾,含有抽象方法的類必然是抽象類。抽象方法要在其子方法中通過override關鍵字重寫。
簡單工廠模式用于在調用者不知道對象屬于哪個自雷的情況下,創建不同的對象。
第四篇:java面向對象程序設計教案
武漢大學珞珈學院 系/教研室 Java 面 向 對 象 程 序 設 計 課 教 案
主講教師:熊春秀 編寫時間:2011-4-30
第一章:概述
第 1、2 節:面向對象的基本概念、面向對象程序設計概述 授課時間:2011-2-
22、23
計劃學時數:1 教學任務與目的:讓學生理解面向對象的基本概念 教學重點:掌握面向對象的基本概念 教學難點:理解面向對象程序設計的方法 教學方法:多媒體+板書 參考書目:《面向對象程序設計導論》,[美]C.Thomas wu著,電子工業出版社 專業詞匯:Java虛擬機、Applet程序 備注
第二章:Java特點及運行環境
第 1、2、3 節:Java語言特點、Java應用程序及運行環境、Java Applet程序及運行環境 授課時間:2011-2-
22、23
計劃學時數:3 教學任務與目的:讓學生學會JDK的下載、安裝與環境配置。教學重點:掌握編譯和執行Java程序的基本步驟
教學難點:理解Java程序的入口并能夠通過命令行傳遞參數 教學方法:多媒體+板書 參考書目:《面向對象程序設計導論》,[美]C.Thomas wu著,電子工業出版社 專業詞匯:JDK、lib、bin 備注 第三章:Java語言基礎
第 1、2 節:Java程序的構成、數據類型、表達式以及流程控制語句 授課時間:2011-3-
1、2
計劃學時數:3 教學任務與目的:讓學生學會Java基本的數據類型和表示方法、數值類型的運算、邏輯運算和比較、條件執行語句(包括三種條件語句和switch語句)、循環控制語句(包括for、while、do while循環及相應的輔助語句)、字符串類String和BufferString以及數組的聲明及使用。
教學重點:掌握Java基本的數據類型和表示方法
教學難點:理解Java程序的循環控制語句(包括for、while、do while循環及相應的輔助語句)
教學方法:多媒體+板書 參考書目:《Java語言與面向對象程序設計》,印旻編著,清華大學出版社 專業詞匯:變量、數據類型、循環控制語句 備注 第三章:Java語言基礎 第 3 節:Java與C比較
授課時間:2011-3-
8、9
計劃學時數:3 教學任務與目的:讓學生在C語言的基本上進一步學習Java語言。教學重點:掌握Java語言與C語言的區別與聯系。教學難點:理解Java語言在C語言上的改進。教學方法:多媒體+板書 參考書目:《Java2參考大全(第四版)》,[美]Herbert Schildt著,張玉清、吳浦峰、尚勇等譯,清華大學出版社。專業詞匯:Java、C 備注 第四章:抽象、封裝與類
第 1 節:抽象、封裝與Java類的概念
授課時間:2011-3-
15、16
計劃學時數:3 教學任務與目的:讓學生學會面向對象的基本特征、掌握如何定義一個類以及如何生成對象、深入掌握方法的定義及技巧、深入掌握類的訪問權限與封裝機制、深入掌握包的定義與包的使用方法。
教學重點:掌握類的定義與對象的生成。教學難點:理解類的抽象與封裝機制。教學方法:多媒體+板書 參考書目:《Java2 實用教程》,耿祥義、張躍平編著,清華大學出版社。專業詞匯:抽象、封裝、類 備注 第四章:抽象、封裝與類 第 2 節:系統定義的類
授課時間:2011-3-
22、23
計劃學時數:3 教學任務與目的:讓學生學會使用系統定義的類,并掌握與用戶自定義類的區別。教學重點:掌握如何定義所需要的類。
教學難點:熟悉Java平臺定義了哪些經常要用到、而且滿足我們需要的類。教學方法:多媒體+板書 參考書目:《Java2 實用教程》,耿祥義、張躍平編著,清華大學出版社。專業詞匯:系統定義的類、用戶自定義類 備注 第四章:抽象、封裝與類
第 3 節:類、域和方法的修飾符
授課時間:2011-3-
29、30
計劃學時數:3 教學任務與目的:讓學生學會類的聲明。
教學重點:掌握如何定義類的修飾和方法的修飾符。教學難點:熟悉類的變量的定義與使用方法。教學方法:多媒體+板書 參考書目:《Java2 實用教程》,耿祥義、張躍平編著,清華大學出版社。專業詞匯:成員變量、類變量、成員方法、類方法 備注 第五章:繼承與多態
第 1、2 節:Java的繼承與派生、域的繼承與隱藏 授課時間:2011-4-
5、6
計劃學時數:3 教學任務與目的:讓學生全面掌握面向對象的基本特征、掌握如何使用繼承性來到達軟件的重用、深入掌握繼承過程中域的隱藏和方法的覆蓋技巧。教學重點:掌握如何使用繼承性來到達軟件的重用。教學難點:熟悉繼承過程中域的隱藏和方法的覆蓋技巧。教學方法:多媒體+板書 參考書目:《Java2 實用教程》,耿祥義、張躍平編著,清華大學出版社。專業詞匯:繼承派生、域、隱藏 備注 第五章:繼承與多態
第 3、4 節:方法的繼承、重載與覆蓋、this與super、構造函數的繼承與重載 授課時間:2011-4-
12、13
計劃學時數:3 教學任務與目的:讓學生通過繼承可以更有效地組織程序結構,明確類之間的關系,并充分利用已有的類來創建新類,通過繼承可以實現代碼的重用,以完成更復雜的設計、開發。教學重點:掌握類的重載與覆蓋的區別與聯系。教學難點:熟悉類的重載與覆蓋使用方法。教學方法:多媒體+板書 參考書目:《Java語言與面向對象程序設計》,印旻編著,清華大學出版社。專業詞匯:繼承、重載、覆蓋、this、super 備注 第五章:繼承與多態
第 5、6 節:多態性的實現、接口聲明與實現 授課時間:2011-4-
19、20
計劃學時數:3 教學任務與目的:讓學生深入掌握抽象類和抽象方法的定義,掌握多態通過統一多個相關類的對外接口,在運行時根據不同的情況執行不同的操作,提高類的抽象度和靈活性,深入掌握接口的定義和使用技巧。
教學重點:熟悉多態性實現的兩種方式以及接口的實現。教學難點:熟悉多態性與接口的實現方法。教學方法:多媒體+板書 參考書目:《Java語言與面向對象程序設計》,印旻編著,清華大學出版社。專業詞匯:多態性、接口 備注 第六章:工具類與算法
第 1、2 節:語言基礎類庫、Applet類與小程序的基本原理 授課時間:2011-4-
26、27
計劃學時數:3 教學任務與目的:深入了解Applet生命周期的主要方法和特點、熟練掌握Applet程序的編寫方法、深入了解Applet的安全機制及其合理運用。教學重點:熟練掌握Applet程序的編寫方法。
教學難點:深入了解Applet的安全機制及其合理運用。教學方法:多媒體+板書 參考書目:《Java語言與面向對象程序設計》,印旻編著,清華大學出版社。專業詞匯:Applet、生命周期 備注 第六章:工具類與算法
第 3、4 節:數組、字符串、常用算法
授課時間:2011-5-
3、4
計劃學時數:3 教學任務與目的:讓學生學會字符串類String和BufferString、數組的聲明及使用。教學重點:熟練掌握字符串與數組的使用方法。教學難點:深入了解數組的使用方法。教學方法:多媒體+板書 參考書目:《Java語言與面向對象程序設計》,印旻編著,清華大學出版社。專業詞匯:數組、字符串 備注 第七章:用戶圖形界面的設計
第 1、2 節:用戶自定義成分、事件驅動設計 授課時間:2011-5-
10、11
計劃學時數:3 教學任務與目的:讓學生學會使用面向對象的程序設計方法構建圖形用戶界面、深入了解抽象窗口工具包(AWT)、掌握事件處理基本原理和方法。教學重點:熟練掌握圖形用戶界面的開發方法。教學難點:深入了解圖形界面的各種事件。教學方法:多媒體+板書 參考書目:《Java語言與面向對象程序設計》,印旻編著,清華大學出版社。專業詞匯:AWT、GUI 備注 第七章:用戶圖形界面的設計
第 3、4 節:GUI對象,包括:按鈕、文本框、鼠標、鍵盤等事件的處理、布局設計 授課時間:2011-5-
17、18
計劃學時數:3 教學任務與目的:讓學生深入了解GUI構件及掌握布局控制方法、熟練掌握菜單和對話框、掌握簡單繪圖方法。
教學重點:熟練使用Java語言提供的布局管理器來管理組件在容器中的布局。教學難點:深入了解組件在程序中安排中位置和大小使用方法。教學方法:多媒體+板書 參考書目:《Java語言與面向對象程序設計》,印旻編著,清華大學出版社。專業詞匯:布局管理器、容器 備注 第八章:Java高級編程
第 1、2、3節:異常處理、多線程機制、Java程序對網上資源的訪問 授課時間:2011-5-
24、25
計劃學時數:3 教學任務與目的:讓學生深入理解多線程的基本概念、熟練掌握創建線程的兩種基本方法、熟練處理線程的同步問題和死鎖問題、深入理解異常的基本概念、熟悉和掌握Java平臺定義異常類、熟練掌握創建自定義異常類的方法。教學重點:熟練掌握創建線程的兩種基本方法。教學難點:深入了解線程的同步問題和死鎖問題。教學方法:多媒體+板書 參考書目:《Java語言與面向對象程序設計》,印旻編著,清華大學出版社。專業詞匯:同步、死鎖、多線程、異常
第五篇:JAVA面向對象程序設計教學大綱
《JAVA面向對象程序設計》課程教學大綱
Oriented object Programming in JAVA 編號: 08065121
適用專業:計算機科學與技術、網絡工程 學時數:32 學分數:2 執筆者:田小玲 編寫日期:2009年11月
一、課程的性質和目的
本課程是為計算機科學與技術以及網絡工程專業本科生開設的專業選修課,是一門面向對象的編程語言,通過本課程的學習,培養和提高學生面向對象程序設計的能力和Java語言在web開發中的應用能力。
二、課程教學內容
第一章 面向對象軟件開發概述(2學時)1.內容
面向對象問題求解的提出、面向對象問題求解的概述、對象、類與實體、對象的屬性與相互關系、面向對象的軟件開發過程、面向對象程序設計方法的優點、開發環境設置及開發工具簡介。
2.要求
(1)了解:面向對象軟件開發概述,面向對象的軟件開發過程及面向對象程序設計 方法的優點。
(2)掌握:對象的屬性與相互關系,對象、類與實體的基本概念。(3)熟練掌握:開發環境設置及開發工具簡介(補充)。3.重點
對象、類與實體的基本概念。
4.難點
面向對象程序設計方法的理解。第二章 Java概述(2學時)1.內容
Java語言的特點、Java虛擬機及垃圾回收機制、JDK目錄結構、Java 的API結構及Java程序結構、第一個Java Application程序、第一個Java Applet程序、圖形界面的輸入輸出、字符界面的輸入輸出。
2.要求
(1)了解:Java語言的發展歷史及特點,Java Application程序及Java Applet程 序,圖形界面的輸入輸出,字符界面的輸入輸出。
(2)掌握:Java語言實現機制(補充),Java體系結構(補充)。(3)熟練掌握:Java Application程序的結構。3.重點
Java Application程序的結構。
4.難點
Java語言實現機制。
第三章 Java語言基礎(2學時)1.內容
數據類型、變量與常量、表達式、流程控制語句。2.要求
(1)了解:java語言的發展。
(2)掌握:數據類型、變量與常量的定義及使用。(3)熟練掌握:表達式的使用,流程控制語句。3.重點
表達式的使用,流程控制語句。
4.難點
流程控制語句的運用。
第四章 抽象、封裝與類(6學時)
1.內容
抽象與封裝、Java的類、類的修飾符、域、方法、訪問控制符。2.要求
(1)了解:抽象、封裝概念,系統定義的類。
(2)掌握:類的修飾符(abstract和final),域(包括靜態域、靜態初始化器、最終域和易失域),方法(包括抽象方法、靜態方法、最終方法)。
(3)熟練掌握:用戶程序自定義類及創建對象與定義構造函數,訪問控制符(包括public、缺省訪問控制符、private、protected)的運用。
3.重點
自定義類、創建對象與定義構造函數。
4.難點
四種訪問控制符的運用。第五章 繼承與多態(4學時)1.內容
Java的繼承、多態、Java的重載、構造函數的繼承與重載、包及接口的概念。2.要求
(1)了解:繼承及多態的概念,Java接口的概念。(2)掌握:Java的方法重載,包的創建及引用。(3)熟練掌握:構造函數的繼承與重載。
3.重點
方法的重載、類的繼承。4.難點
屬性的隱藏、方法的覆蓋。第六章 工具類與算法(2學時)
1.內容
語言基礎類庫(包括Object類、數據類型類、Math類及System類)、Applet類與Applet小程序、數組。
2.要求
(1)了解:Applet類與Applet小程序。(2)掌握:Java語言基礎類庫。(3)熟練掌握:數組的聲明及初始化。3.重點
數組的聲明及初始化、數組的應用。4.難點
編寫Applet小程序。
第七章 圖形用戶界面的設計與實現(8學時)
1.內容
圖形用戶界面概述、GUI標準組件概述及布局設計、Java的事件處理機制。2.要求
(1)了解:圖形界面組件之間的層次關系、容器的概念和作用。(2)掌握:圖形用戶界面程序的基本結構。(3)熟練掌握:事件監聽機制。3.重點
圖形用戶界面程序的基本結構。4.難點
Java的事件處理機制。
第八章 Java高級編程(6學時)
1.內容
異常處理、Java多線程機制、Swing GUI 組件、流式輸入輸出與文件處理、用Java實現底層網絡通信、Java程序對網上資源的訪問。
2.要求
(1)了解:例外的概念、Java中線程的基本概念、Java的線程類與Runnable接口及如何在程序中實現多線程、Java輸入輸出類庫及文件的處理與隨機訪問、使用Java實現底層網絡通信、Java程序對網上資源的訪問。
3(2)掌握:例外處理機制。
(3)熟練掌握:Swing GUI組件的運用。3.重點
例外處理機制、Swing GUI組件的創建。
4.難點
自定義異常類。
三、課程教學的基本要求
課程教學的基本要求包含三項:上機環節、作業要求、考試方式。1.上機環節
根據課堂講授的理論,并結合上機操作讓學生及時掌握每章節所學的知識,通過實操可加深學生對面向對象程序設計的思想及Java程序設計的領會。
2.作業要求
(1)作業要求:獨立思考完成、書寫工整、按時交(2)作業量:每次課均布置作業,作業量約2~3題(3)總作業量:約30~40道題 3.考試方式
(1)考試方式:閉卷筆試(2)評定成績要求:
總成績=平時成績×30%+考試成績×70%
四、本課程與其它課程的聯系與分工
1.前期課程:
程序設計基礎、計算機網絡、C語言程序設計、C++程序設計 2.后續課程:
軟件工程、Web應用程序開發
五、建議教材與教學參考書
[1] 印旻.《Java語言與面向對象程序設計》,清華大學出版社 [2] 於東軍,楊靜宇.《Java程序設計與應用開發》,清華大學出版社 [3] 辛運幃.《Java程序設計》,清華大學出版社 [4] 姜剛.《Java語言程序設計》,人民郵電出版社 [5] 閻菲.《Java程序設計教程》,中國水利水電出版社