教學(xué)評估java代碼,java課程評價

java代碼轉(zhuǎn)成偽代碼

1. 請把下面的java代碼用偽代碼寫出來

興城網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站從2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

偽代碼(Pseudocode)是一種算法描述語言。

使用偽代碼的目的是為了使被描述的算法可以容易地以任何一種編程語言(Pascal,C,Java,etc)實現(xiàn)。因此,偽代碼必須結(jié)構(gòu)清晰、代碼簡單、可讀性好,并且類似自然語言。

介于自然語言與編程語言之間。以編程語言的書寫形式指明算法職能。

使用偽代碼, 不用拘泥于具體實現(xiàn)。相比程序語言(例如Java, C++,C, Dephi 等等)它更類似自然語言。

它是半角式化、不標(biāo)準(zhǔn)的語言??梢詫⒄麄€算法運(yùn)行過程的結(jié)構(gòu)用接近自然語言的形式(可以使用任何一種你熟悉的文字,關(guān)鍵是把程序的意思表達(dá)出來)描述出來。

String path = "***"File f = new File(path);public void test (F f)File []fs = f遍歷文件夾;for(。){ if(fs[i]是文件){ 輸入 }else{ 遞歸test(fs[i]); }}。

2. JAVA 偽代碼

提示輸入一個大于2且11的數(shù)字

輸入一整型數(shù)值給Vertices,

if(Vertices 3 || Vertices 11){

提示重新輸入且應(yīng)輸入

退出程序

}else{

生成一個Vertices * Vertices 大小的數(shù)組Graph,

填充數(shù)組 :行號與列號相同填充0,其余填充10以內(nèi)隨機(jī)數(shù)

交換元素:以[i][j]位置的數(shù)值與[j][i]位置的數(shù)值互換

最后打印數(shù)組各元素

}

3. 請把下列用java代碼 用偽代碼寫出來

偽代碼(Pseudocode)是一種算法描述語言。使用偽代碼的目的是為了使被描述的算法可以容易地以任何一種編程語言(Pascal,C,Java,etc)實現(xiàn)。因此,偽代碼必須結(jié)構(gòu)清晰、代碼簡單、可讀性好,并且類似自然語言。 介于自然語言與編程語言之間。以編程語言的書寫形式指明算法職能。使用偽代碼, 不用拘泥于具體實現(xiàn)。相比程序語言(例如Java, C++,C, Dephi 等等)它更類似自然語言。它是半角式化、不標(biāo)準(zhǔn)的語言??梢詫⒄麄€算法運(yùn)行過程的結(jié)構(gòu)用接近自然語言的形式(可以使用任何一種你熟悉的文字,關(guān)鍵是把程序的意思表達(dá)出來)描述出來。

String path = "***"

File f = new File(path);

public void test (F f)

File []fs = f遍歷文件夾;

for(。){

if(fs[i]是文件){

輸入

}else{

遞歸test(fs[i]);

}

}

4. 偽代碼怎么寫

偽代碼(Pseudocode)是一種算法描述語言。

使用偽代碼的目的是為了使被描述的算法可以容易地以任何一種編程語言(Pascal,C,Java,etc)實現(xiàn)。因此,偽代碼必須結(jié)構(gòu)清晰、代碼簡單、可讀性好,并且類似自然語言。

介于自然語言與編程語言之間。 它以編程語言的書寫形式指明算法的職能。

相比于程序語言(例如Java, C++,C, Dephi 等等)它更類似自然語言。它是半角式化、不標(biāo)準(zhǔn)的語言。

我們可以將整個算法運(yùn)行過程的結(jié)構(gòu)用接近自然語言的形式(這里,你可以使用任何一種你熟悉的文字,中文,英文 等等,關(guān)鍵是你把你程序的意思表達(dá)出來)描述出來. 使用偽代碼, 可以幫助我們更好的表述算法, 不用拘泥于具體的實現(xiàn). 人們在用不同的編程語言實現(xiàn)同一個算法時意識到,他們的實現(xiàn)(注意:這里是實現(xiàn),不是功能)很不同。尤其是對于那些熟練于不同編程語言的程序員要理解一個(用其他編程語言編寫的程序的)功能時可能很難,因為程序語言的形式限制了程序員對程序關(guān)鍵部分的理解。

這樣偽代碼就應(yīng)運(yùn)而生了。 當(dāng)考慮算法功能(而不是其語言實現(xiàn))時,偽代碼常常得到應(yīng)用。

計算機(jī)科學(xué)在教學(xué)中通常使用虛擬碼,以使得所有的程序員都能理解。 綜上,簡單的說,讓人便于理解的代碼。

不依賴于語言的,用來表示程序執(zhí)行過程,而不一定能編譯運(yùn)行的代碼。在數(shù)據(jù)結(jié)構(gòu)講算法的時候用的很多。

5. 偽代碼的寫法

類Pascal語言的偽代碼的語法規(guī)則是: 在偽代碼中,每一條指令占一行(else if,例外)。指令后不跟任何符號(Pascal和C中語句要以分號結(jié)尾)。

偽代碼實例如下:

IF 九點以前 THEN

do 私人事務(wù);

ELSE 9點到18點 THEN

工作;

ELSE

下班;

END IF

這樣不但可以達(dá)到文檔的效果,同時可以節(jié)約時間。更重要的是,使結(jié)構(gòu)比較清晰,表達(dá)方式更加直觀。

偽代碼(Pseudocode)是一種算法描述語言。使用偽代碼的目的是為了使被描述的算法可以容易地以任何一種編程語言(Pascal,C,Java,etc)實現(xiàn)。因此,偽代碼必須結(jié)構(gòu)清晰、代碼簡單、可讀性好,并且類似自然語言。 介于自然語言與編程語言之間。

它以編程語言的書寫形式指明算法的職能。相比于程序語言(例如Java, C++,C, Dephi 等等)它更類似自然語言。它是半角式化、不標(biāo)準(zhǔn)的語言。

我們可以將整個算法運(yùn)行過程的結(jié)構(gòu)用接近自然語言的形式(這里,你可以使用任何一種你熟悉的文字,中文,英文 等等,關(guān)鍵是你把你程序的意思表達(dá)出來)描述出來。使用偽代碼, 可以幫助我們更好的表述算法,不用拘泥于具體的實現(xiàn)。

6. 偽代碼的寫法

最低0.27元開通文庫會員,查看完整內(nèi)容 原發(fā)布者:wangwenjxnu 偽代碼偽代碼是用介于自然語言和計算機(jī)語言之間的文字和符號來描述算法。

每一行(或幾行)表示一個基本操作。它不用圖形符號,因此書寫方便、格式緊湊,也比較好懂,便于向程序過渡。

偽代碼的7個主要部分:(1)算法名稱(2)指令序列(3)輸入/輸出(4)分支選擇(5)賦值(6)循環(huán)(7)算法結(jié)束1.算法名稱兩種表示算法的偽代碼:過程(Procedure)函數(shù)(Function)過程和函數(shù)的區(qū)別是:過程是執(zhí)行一系列的操作,不需要返回操作的結(jié)果,無返回數(shù)據(jù);函數(shù)是執(zhí)行一系列的操作后,要將操作的結(jié)果返回,有返回數(shù)據(jù)。算法偽代碼的書寫規(guī)則:Procedure([])Function([])如:ProcedureHanoi_Tower()FunctionFac(x)表示名為Fac的一個函數(shù)。

FunctionProg(n)表示名為Prog的一個函數(shù)。2.指令序列指令序列是算法的主體。

指令序列的書寫規(guī)則:用Begin作為開始、用End作為結(jié)束;用“{”作為開始、用“/}”作為結(jié)束。例如:Begin指令序列;End或者:{指令序列;/}3.輸出/輸出輸入:Input輸出:Output或Return4.分支選擇兩種分支:IfThen{指令序列/}IfThen{。

學(xué)java最重要的是學(xué)java的什么內(nèi)容

學(xué)java最重要的是下面四個內(nèi)容:1、掌握J(rèn)ava語言的使用:語言語法、程序邏輯,OOP(面向?qū)ο螅┧枷?,封裝、繼承、多態(tài),集合框架、泛型、File I\O技術(shù),多線程技術(shù)、socket網(wǎng)絡(luò)編程,XML技術(shù)。編程有關(guān)的操作系統(tǒng)基本使用,HTML5規(guī)范、HTML5文檔結(jié)構(gòu)、HTML5元素、Web語義化;CSS3規(guī)范、CSS3選擇器、層疊與繼承、盒模型與視覺格式化模型、現(xiàn)代CSS布局、CSS3基本屬性千鋒教育就有線上免費(fèi)Java線上公開課。2、掌握J(rèn)ava Web開發(fā)技術(shù):Java開發(fā)中使用到的Web前端技術(shù),HTML5+CSS3,JavaScript操作BOM和DOM,JQuery的選擇器、事件處理、動畫效果,MySQL數(shù)據(jù)庫技術(shù),JDBC技術(shù)、JSP、Servlet、EL和JSTL、過濾器和監(jiān)聽器、AJax異步請求等,Linux技術(shù)、SVN、Linux環(huán)境下項目發(fā)布部署等。 3、掌握使用流行框架SSM\SSH技術(shù)實現(xiàn)企業(yè)級項目開發(fā):重點學(xué)習(xí)MyBatis、Spring、Spring MVC框架的應(yīng)用,Git、Java設(shè)計模式等,重點學(xué)習(xí)Struts2 、Spring、Hibernate框架的應(yīng)用,Maven、Oracle數(shù)據(jù)庫應(yīng)用技術(shù),了解大數(shù)據(jù)生態(tài)體系,Hadoop基礎(chǔ)入門。4、JavaWeb框架:Spring體系結(jié)構(gòu)、Spring IOC、AOP、FactoryBean與BeanFactory、聲明性事務(wù)處理、Spring 5新特性。Maven與Gradle的使用。Spring Boot自動配置、Spring Boot CLI與Initializr、Spring Boot Starter、Actuator。SpringMVC工作原理和工作流程;攔截器、數(shù)據(jù)綁定轉(zhuǎn)換和格式化、全局異常處理、轉(zhuǎn)發(fā)與重定向、AJAX請求處理。如果想了解更多相關(guān)知識,建議到千鋒教育了解一下。千鋒教育總部位于北京,已在18個城市成立分公司,現(xiàn)有教研講師團(tuán)隊300余人,每年培養(yǎng)泛IT人才近2萬人,十年間累計培養(yǎng)超10余萬泛IT人才 。

Java數(shù)據(jù)庫課程設(shè)計:教學(xué)管理系統(tǒng),可視化界面用java實現(xiàn)

我只想說一句:你牛!這都趕上課設(shè)了。雖然看起來簡單,做起來不一定快

求JAVA新手教程

Java新手入門的30個基本概念

在我們學(xué)習(xí)Java的過程中,掌握其中的基本概念對我們的學(xué)習(xí)無論是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基礎(chǔ),所以有必要對其中的基本概念做以歸納,以便大家在以后的學(xué)習(xí)過程中更好的理解java的精髓,在此我總結(jié)了30條基本的概念。

Java概述:

目前Java主要應(yīng)用于中間件的開發(fā)(middleware)---處理客戶機(jī)于服務(wù)器之間的通信技術(shù),早期的實踐證明,Java不適合pc應(yīng)用程序的開發(fā),其發(fā)展逐漸變成在開發(fā)手持設(shè)備,互聯(lián)網(wǎng)信息站,及車載計算機(jī)的開發(fā).Java于其他語言所不同的是程序運(yùn)行時提供了平臺的獨(dú)立性,稱許可以在windows,solaris,linux其他操作系統(tǒng)上使用完全相同的代碼.Java的語法與C++語法類似,C++/C程序員很容易掌握,而且Java是完全的徹底的面向?qū)ο蟮?其中提出了很好的GC(Garbage Collector)垃圾處理機(jī)制,防止內(nèi)存溢出。

Java的白皮書為我們提出了Java語言的11個關(guān)鍵特性。

(1)Easy:Java的語法比C++的相對簡單,另一個方面就是Java能使軟件在很小的機(jī)器上運(yùn)行,基礎(chǔ)解釋其和類庫的支持的大小約為40kb,增加基本的標(biāo)準(zhǔn)庫和線程支持的內(nèi)存需要增加125kb。

(2)分布式:Java帶有很強(qiáng)大的TCP/IP協(xié)議族的例程庫,Java應(yīng)用程序能夠通過URL來穿過網(wǎng)絡(luò)來訪問遠(yuǎn)程對象,由于servlet機(jī)制的出現(xiàn),使Java編程非常的高效,現(xiàn)在許多的大的web server都支持servlet。

(3)OO:面向?qū)ο笤O(shè)計是把重點放在對象及對象的接口上的一個編程技術(shù).其面向?qū)ο蠛虲++有很多不同,在與多重繼承的處理及Java的原類模型。

(4)健壯特性:Java采取了一個安全指針模型,能減小重寫內(nèi)存和數(shù)據(jù)崩潰的可能型。

(5)安全:Java用來設(shè)計網(wǎng)路和分布系統(tǒng),這帶來了新的安全問題,Java可以用來構(gòu)建防病毒和防攻擊的System.事實證明Java在防毒這一方面做的比較好。

(6)中立體系結(jié)構(gòu):Java編譯其生成體系結(jié)構(gòu)中立的目標(biāo)文件格式可以在很多處理器上執(zhí)行,編譯器產(chǎn)生的指令字節(jié)碼(Javabytecode)實現(xiàn)此特性,此字節(jié)碼可以在任何機(jī)器上解釋執(zhí)行。

(7)可移植性:Java中對基本數(shù)據(jù)結(jié)構(gòu)類型的大小和算法都有嚴(yán)格的規(guī)定所以可移植性很好。

(8)多線程:Java處理多線程的過程很簡單,Java把多線程實現(xiàn)交給底下操作系統(tǒng)或線程程序完成.所以多線程是Java作為服務(wù)器端開發(fā)語言的流行原因之一。

(9)Applet和servlet:能夠在網(wǎng)頁上執(zhí)行的程序叫Applet,需要支持Java的瀏覽器很多,而applet支持動態(tài)的網(wǎng)頁,這是很多其他語言所不能做到的。

基本概念:

1.OOP中唯一關(guān)系的是對象的接口是什么,就像計算機(jī)的銷售商她不管電源內(nèi)部結(jié)構(gòu)是怎樣的,他只關(guān)系能否給你提供電就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的屬性和行為對象組成的,不同的對象的訪問通過函數(shù)調(diào)用來完成,對象間所有的交流都是通過方法調(diào)用,通過對封裝對象數(shù)據(jù),很大限度上提高復(fù)用率。

2.OOP中最重要的思想是類,類是模板是藍(lán)圖,從類中構(gòu)造一個對象,即創(chuàng)建了這個類的一個實例(instance)。

3.封裝:就是把數(shù)據(jù)和行為結(jié)合起在一個包中)并對對象使用者隱藏數(shù)據(jù)的實現(xiàn)過程,一個對象中的數(shù)據(jù)叫他的實例字段(instance field)。

4.通過擴(kuò)展一個類來獲得一個新類叫繼承(inheritance),而所有的類都是由Object根超類擴(kuò)展而得,根超類下文會做介紹。

5.對象的3個主要特性

behavior---說明這個對象能做什么.

state---當(dāng)對象施加方法時對象的反映.

identity---與其他相似行為對象的區(qū)分標(biāo)志.

每個對象有唯一的indentity 而這3者之間相互影響.

6.類之間的關(guān)系:

use-a :依賴關(guān)系

has-a :聚合關(guān)系

is-a :繼承關(guān)系--例:A類繼承了B類,此時A類不僅有了B類的方法,還有其自己的方法.(個性存在于共性中)

7.構(gòu)造對象使用構(gòu)造器:構(gòu)造器的提出,構(gòu)造器是一種特殊的方法,構(gòu)造對象并對其初始化。

例:Data類的構(gòu)造器叫Data

new Data()---構(gòu)造一個新對象,且初始化當(dāng)前時間.

Data happyday=new Data()---把一個對象賦值給一個變量happyday,從而使該對象能夠多次使用,此處要聲明的使變量與對象變量二者是不同的.new返回的值是一個引用。

構(gòu)造器特點:構(gòu)造器可以有0個,一個或多個參數(shù)

構(gòu)造器和類有相同的名字

一個類可以有多個構(gòu)造器

構(gòu)造器沒有返回值

構(gòu)造器總是和new運(yùn)算符一起使用.

8.重載:當(dāng)多個方法具有相同的名字而含有不同的參數(shù)時,便發(fā)生重載.編譯器必須挑選出調(diào)用哪個方法。

9.包(package)Java允許把一個或多個類收集在一起成為一組,稱作包,以便于組織任務(wù),標(biāo)準(zhǔn)Java庫分為許多包.java.lang java.util java,net等,包是分層次的所有的java包都在java和javax包層次內(nèi)。

10.繼承思想:允許在已經(jīng)存在的類的基礎(chǔ)上構(gòu)建新的類,當(dāng)你繼承一個已經(jīng)存在的類時,那么你就復(fù)用了這個類的方法和字段,同時你可以在新類中添加新的方法和字段。

11.擴(kuò)展類:擴(kuò)展類充分體現(xiàn)了is-a的繼承關(guān)系. 形式為:class (子類) extends (基類)。

12.多態(tài):在java中,對象變量是多態(tài)的.而java中不支持多重繼承。

13.動態(tài)綁定:調(diào)用對象方法的機(jī)制。

(1)編譯器檢查對象聲明的類型和方法名。

(2)編譯器檢查方法調(diào)用的參數(shù)類型。

(3)靜態(tài)綁定:若方法類型為priavte static final 編譯器會準(zhǔn)確知道該調(diào)用哪個方法。

(4)當(dāng)程序運(yùn)行并且使用動態(tài)綁定來調(diào)用一個方法時,那么虛擬機(jī)必須調(diào)用x所指向的對象的實際類型相匹配的方法版本。

(5)動態(tài)綁定:是很重要的特性,它能使程序變得可擴(kuò)展而不需要重編譯已存代碼。

14.final類:為防止他人從你的類上派生新類,此類是不可擴(kuò)展的。

15.動態(tài)調(diào)用比靜態(tài)調(diào)用花費(fèi)的時間要長。

16.抽象類:規(guī)定一個或多個抽象方法的類本身必須定義為abstract。

例: public abstract string getDescripition

17.Java中的每一個類都是從Object類擴(kuò)展而來的。

18.object類中的equal和toString方法。

equal用于測試一個對象是否同另一個對象相等。

toString返回一個代表該對象的字符串,幾乎每一個類都會重載該方法,以便返回當(dāng)前狀態(tài)的正確表示.

(toString 方法是一個很重要的方法)

19.通用編程:任何類類型的所有值都可以同object類性的變量來代替。

20.數(shù)組列表:ArrayList動態(tài)數(shù)組列表,是一個類庫,定義在java.uitl包中,可自動調(diào)節(jié)數(shù)組的大小。

21.class類 object類中的getclass方法返回ckass類型的一個實例,程序啟動時包含在main方法的類會被加載,虛擬機(jī)要加載他需要的所有類,每一個加載的類都要加載它需要的類。

22.class類為編寫可動態(tài)操縱java代碼的程序提供了強(qiáng)大的功能反射,這項功能為JavaBeans特別有用,使用反射Java能支持VB程序員習(xí)慣使用的工具。

能夠分析類能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射機(jī)制十分強(qiáng)大.

1.在運(yùn)行時分析類的能力。

2.在運(yùn)行時探察類的對象。

3.實現(xiàn)通用數(shù)組操縱代碼。

4.提供方法對象。

而此機(jī)制主要針對是工具者而不是應(yīng)用及程序。

反射機(jī)制中的最重要的部分是允許你檢查類的結(jié)構(gòu).用到的API有:

java.lang.reflect.Field 返回字段.

java.reflect.Method 返回方法.

java.lang.reflect.Constructor 返回參數(shù).

方法指針:java沒有方法指針,把一個方法的地址傳給另一個方法,可以在后面調(diào)用它,而接口是更好的解決方案。

23.接口(Interface)說明類該做什么而不指定如何去做,一個類可以實現(xiàn)一個或多個interface。

24.接口不是一個類,而是對符合接口要求的類的一套規(guī)范。

若實現(xiàn)一個接口需要2個步驟:

1.聲明類需要實現(xiàn)的指定接口。

2.提供接口中的所有方法的定義。

聲明一個類實現(xiàn)一個接口需要使用implements 關(guān)鍵字

class actionB implements Comparable 其actionb需要提供CompareTo方法,接口不是類,不能用new實例化一個接口.

25.一個類只有一個超類,但一個類能實現(xiàn)多個接口。Java中的一個重要接口:Cloneable

26.接口和回調(diào).編程一個常用的模式是回調(diào)模式,在這種模式中你可以指定當(dāng)一個特定時間發(fā) 生時回調(diào)對象上的方法。

例:ActionListener 接口監(jiān)聽.

類似的API有:java.swing.JOptionPane

java.swing.Timer

java.awt.Tookit

27.對象clone:clone方法是object一個保護(hù)方法,這意味著你的代碼不能簡單的調(diào)用它。

28.內(nèi)部類:一個內(nèi)部類的定義是定義在另一個內(nèi)部的類。

原因是:

1.一個內(nèi)部類的對象能夠訪問創(chuàng)建它的對象的實現(xiàn),包括私有數(shù)據(jù)。

2.對于同一個包中的其他類來說,內(nèi)部類能夠隱藏起來。

3.匿名內(nèi)部類可以很方便的定義回調(diào)。

4.使用內(nèi)部類可以非常方便的編寫事件驅(qū)動程序。

29.代理類(proxy):

1.指定接口要求所有代碼

2.object類定義的所有的方法(toString equals)

30.數(shù)據(jù)類型:Java是強(qiáng)調(diào)類型的語言,每個變量都必須先申明它都類型,java中總共有8個基本類型.4種是整型,2種是浮點型,一種是字符型,被用于Unicode編碼中的字符,布爾型。

一、入門

《Java 2從入門到精通》- 推薦

《Thinking in Java》- 強(qiáng)烈推薦*

O’reilly的Java編程基礎(chǔ)系列 - 參考*

二、進(jìn)階

《Java Cook Book》- 非常推薦* (包含了Java編程的Tips,適合當(dāng)做手冊來查閱)

《O’reilly-Java IO》- 推薦* (包含Java IO編程的各個方面)

《O’reilly-Database Programming with JDBC》- 推薦* (JDBC編程)

《O’reilly-Java Programming with Oracle JDBC》- 參考*

三、Java Web編程

《O’reilly-Java Server Pages》- 強(qiáng)烈推薦*

《O’reilly-Java Servlet Programming》- 非常推薦*

《O’reilly-Jakarta Struts》- 推薦* (Java Web編程的一個MVC實現(xiàn)框架Struts的書)

四、EJB編程

《J2EE應(yīng)用與BEA Weblogic Server》- 強(qiáng)烈推薦

《Mastering EJB 2.0》- 非常推薦*

《Enterprise Java Bean》- 推薦*

五、Java XML編程

《O’reilly-Java and XML》- 推薦*

《O’reilly-Java and SOAP》- 參考* (Java的SOAP編程)

六、設(shè)計模式

《Core J2EE Patterns》- 強(qiáng)烈推薦* (J2EE設(shè)計模式,設(shè)計企業(yè)應(yīng)用軟件必備參考書)

《EJB Design Patterns》- 推薦*

頁面功能 【加入收藏】 【推薦給朋友】 【字體:大 中 小】 【關(guān)閉】

java編程規(guī)范-

作者:佚名 來自:未知

命名規(guī)范

定義這個規(guī)范的目的是讓項目中所有的文檔都看起來像一個人寫的,增加可讀性,減少項目組中因為換人而帶來的損失。(這些規(guī)范并不是一定要絕對遵守,但是一定要讓程序有良好的可讀性)

Package 的命名

Package 的名字應(yīng)該都是由一個小寫單詞組成。

Class 的命名

Class 的名字必須由大寫字母開頭而其他字母都小寫的單詞組成

Class 變量的命名

變量的名字必須用一個小寫字母開頭。后面的單詞用大寫字母開頭。

Static Final 變量的命名

Static Final 變量的名字應(yīng)該都大寫,并且指出完整含義。

參數(shù)的命名

參數(shù)的名字必須和變量的命名規(guī)范一致。

數(shù)組的命名

數(shù)組應(yīng)該總是用下面的方式來命名:

byte[] buffer;

而不是:

byte buffer[];

方法的參數(shù)

使用有意義的參數(shù)命名,如果可能的話,使用和要賦值的字段一樣的名字:

SetCounter(int size){

this.size = size;

}

Java 文件樣式

所有的 Java(*.java) 文件都必須遵守如下的樣式規(guī)則

版權(quán)信息

版權(quán)信息必須在 java 文件的開頭,比如:

/**

* Copyright ? 2000 Shanghai XXX Co. Ltd.

* All right reserved.

*/

其他不需要出現(xiàn)在 javadoc 的信息也可以包含在這里。

Package/Imports

package 行要在 import 行之前,import 中標(biāo)準(zhǔn)的包名要在本地的包名之前,而且按照字母順序排列。如果 import 行中包含了同一個包中的不同子目錄,則應(yīng)該用 * 來處理。

package hotlava.net.stats;

import java.io.*;

import java.util.Observable;

import hotlava.util.Application;

這里 java.io.* 使用來代替InputStream and OutputStream 的。

Class

接下來的是類的注釋,一般是用來解釋類的。

/**

* A class representing a set of packet and byte counters

* It is observable to allow it to be watched, but only

* reports changes when the current set is complete

*/

接下來是類定義,包含了在不同的行的 extends 和 implements

public class CounterSet

extends Observable

implements Cloneable

Class Fields

接下來是類的成員變量:

/**

* Packet counters

*/

protected int[] packets;

public 的成員變量必須生成文檔(JavaDoc)。Proceted、private和 package 定義的成員變量如果名字含義明確的話,可以沒有注釋。

存取方法

接下來是類變量的存取的方法。它只是簡單的用來將類的變量賦值獲取值的話,可以簡單的寫在一行上。

/**

* Get the counters

* @return an array containing the statistical data. This array has been

* freshly allocated and can be modified by the caller.

*/

public int[] getPackets() { return copyArray(packets, offset); }

public int[] getBytes() { return copyArray(bytes, offset); }

public int[] getPackets() { return packets; }

public void setPackets(int[] packets) { this.packets = packets; }

其它的方法不要寫在一行上

構(gòu)造函數(shù)

接下來是構(gòu)造函數(shù),它應(yīng)該用遞增的方式寫(比如:參數(shù)多的寫在后面)。

訪問類型 ('public', 'private' 等.) 和 任何 'static', 'final' 或 'synchronized' 應(yīng)該在一行中,并且方法和參數(shù)另寫一行,這樣可以使方法和參數(shù)更易讀。

public

CounterSet(int size){

this.size = size;

}

克隆方法

如果這個類是可以被克隆的,那么下一步就是 clone 方法:

public

Object clone() {

try {

CounterSet obj = (CounterSet)super.clone();

obj.packets = (int[])packets.clone();

obj.size = size;

return obj;

}catch(CloneNotSupportedException e) {

throw new InternalError('Unexpected CloneNotSUpportedException: ' + e.getMessage());

}

}

類方法

下面開始寫類的方法:

/**

* Set the packet counters

* (such as when restoring from a database)

*/

protected final

void setArray(int[] r1, int[] r2, int[] r3, int[] r4)

throws IllegalArgumentException

{

//

// Ensure the arrays are of equal size

//

if (r1.length != r2.length || r1.length != r3.length || r1.length != r4.length)

throw new IllegalArgumentException('Arrays must be of the same size');

System.arraycopy(r1, 0, r3, 0, r1.length);

System.arraycopy(r2, 0, r4, 0, r1.length);

}

toString 方法

無論如何,每一個類都應(yīng)該定義 toString 方法:

public

String toString() {

String retval = 'CounterSet: ';

for (int I = 0; I data.length(); i++) {

retval += data.bytes.toString();

retval += data.packets.toString();

}

return retval;

}

}

main 方法

如果main(String[]) 方法已經(jīng)定義了, 那么它應(yīng)該寫在類的底部.

代碼編寫格式

代碼樣式

代碼應(yīng)該用 unix 的格式,而不是 windows 的(比如:回車變成回車+換行)

文檔化

必須用 javadoc 來為類生成文檔。不僅因為它是標(biāo)準(zhǔn),這也是被各種 java 編譯器都認(rèn)可的方法。使用 @author 標(biāo)記是不被推薦的,因為代碼不應(yīng)該是被個人擁有的。

縮進(jìn)

縮進(jìn)應(yīng)該是每行2個空格. 不要在源文件中保存Tab字符. 在使用不同的源代碼管理工具時Tab字符將因為用戶設(shè)置的不同而擴(kuò)展為不同的寬度.

如果你使用 UltrEdit 作為你的 Java 源代碼編輯器的話,你可以通過如下操作來禁止保存Tab字符, 方法是通過 UltrEdit中先設(shè)定 Tab 使用的長度室2個空格,然后用 Format|Tabs to Spaces 菜單將 Tab 轉(zhuǎn)換為空格。

頁寬

頁寬應(yīng)該設(shè)置為80字符. 源代碼一般不會超過這個寬度, 并導(dǎo)致無法完整顯示, 但這一設(shè)置也可以靈活調(diào)整. 在任何情況下, 超長的語句應(yīng)該在一個逗號或者一個操作符后折行. 一條語句折行后, 應(yīng)該比原來的語句再縮進(jìn)2個字符.

{} 對

{} 中的語句應(yīng)該單獨(dú)作為一行. 例如, 下面的第1行是錯誤的, 第2行是正確的:

if (i0) { I ++ }; // 錯誤, { 和 } 在同一行

if (i0) {

I ++

}; // 正確, { 單獨(dú)作為一行

} 語句永遠(yuǎn)單獨(dú)作為一行.

如果 } 語句應(yīng)該縮進(jìn)到與其相對應(yīng)的 { 那一行相對齊的位置。

括號

左括號和后一個字符之間不應(yīng)該出現(xiàn)空格, 同樣, 右括號和前一個字符之間也不應(yīng)該出現(xiàn)空格. 下面的例子說明括號和空格的錯誤及正確使用:

CallProc( Aparameter ); // 錯誤

CallProc(Aparameter); // 正確

不要在語句中使用無意義的括號. 括號只應(yīng)該為達(dá)到某種目的而出現(xiàn)在源代碼中。下面的例子說明錯誤和正確的用法:

if ((I) = 42) { // 錯誤 - 括號毫無意義

if (I == 42) or (J == 42) then // 正確 - 的確需要括號

程序編寫規(guī)范

exit()

exit 除了在 main 中可以被調(diào)用外,其他的地方不應(yīng)該調(diào)用。因為這樣做不給任何代碼代碼機(jī)會來截獲退出。一個類似后臺服務(wù)地程序不應(yīng)該因為某一個庫模塊決定了要退出就退出。

異常

申明的錯誤應(yīng)該拋出一個RuntimeException或者派生的異常。

頂層的main()函數(shù)應(yīng)該截獲所有的異常,并且打?。ɑ蛘哂涗浽谌罩局校┰谄聊簧?。

垃圾收集

JAVA使用成熟的后臺垃圾收集技術(shù)來代替引用計數(shù)。但是這樣會導(dǎo)致一個問題:你必須在使用完對象的實例以后進(jìn)行清場工作。比如一個prel的程序員可能這么寫:

{

FileOutputStream fos = new FileOutputStream(projectFile);

project.save(fos, 'IDE Project File');

}

除非輸出流一出作用域就關(guān)閉,非引用計數(shù)的程序語言,比如JAVA,是不能自動完成變量的清場工作的。必須象下面一樣寫:

FileOutputStream fos = new FileOutputStream(projectFile);

project.save(fos, 'IDE Project File');

fos.close();

Clone

下面是一種有用的方法:

implements Cloneable

public

Object clone()

{

try {

ThisClass obj = (ThisClass)super.clone();

obj.field1 = (int[])field1.clone();

obj.field2 = field2;

return obj;

} catch(CloneNotSupportedException e) {

throw new InternalError('Unexpected CloneNotSUpportedException: ' + e.getMessage());

}

}

final 類

絕對不要因為性能的原因?qū)㈩惗x為 final 的(除非程序的框架要求)

如果一個類還沒有準(zhǔn)備好被繼承,最好在類文檔中注明,而不要將她定義為 final 的。這是因為沒有人可以保證會不會由于什么原因需要繼承她。

訪問類的成員變量

大部分的類成員變量應(yīng)該定義為 protected 的來防止繼承類使用他們。

注意,要用'int[] packets',而不是'int packets[]',后一種永遠(yuǎn)也不要用。

public void setPackets(int[] packets) { this.packets = packets; }

CounterSet(int size)

{

this.size = size;

}

編程技巧

byte 數(shù)組轉(zhuǎn)換到 characters

為了將 byte 數(shù)組轉(zhuǎn)換到 characters,你可以這么做:

'Hello world!'.getBytes();

Utility 類

Utility 類(僅僅提供方法的類)應(yīng)該被申明為抽象的來防止被繼承或被初始化。

初始化

下面的代碼是一種很好的初始化數(shù)組的方法:

objectArguments = new Object[] { arguments };

枚舉類型

JAVA 對枚舉的支持不好,但是下面的代碼是一種很有用的模板:

class Colour {

public static final Colour BLACK = new Colour(0, 0, 0);

public static final Colour RED = new Colour(0xFF, 0, 0);

public static final Colour GREEN = new Colour(0, 0xFF, 0);

public static final Colour BLUE = new Colour(0, 0, 0xFF);

public static final Colour WHITE = new Colour(0xFF, 0xFF, 0xFF);

}

這種技術(shù)實現(xiàn)了RED, GREEN, BLUE 等可以象其他語言的枚舉類型一樣使用的常量。 他們可以用 == 操作符來比較。

但是這樣使用有一個缺陷:如果一個用戶用這樣的方法來創(chuàng)建顏色 BLACK

new Colour(0,0,0)

那么這就是另外一個對象,==操作符就會產(chǎn)生錯誤。她的 equal() 方法仍然有效。由于這個原因,這個技術(shù)的缺陷最好注明在文檔中,或者只在自己的包中使用。

Swing

避免使用 AWT 組件

混合使用 AWT 和 Swing 組件

如果要將 AWT 組件和 Swing 組件混合起來使用的話,請小心使用。實際上,盡量不要將他們混合起來使用。

滾動的 AWT 組件

AWT 組件絕對不要用 JscrollPane 類來實現(xiàn)滾動。滾動 AWT 組件的時候一定要用 AWT ScrollPane 組件來實現(xiàn)。

避免在 InternalFrame 組件中使用 AWT 組件

盡量不要這么做,要不然會出現(xiàn)不可預(yù)料的后果。

Z-Order 問題

AWT 組件總是顯示在 Swing 組件之上。當(dāng)使用包含 AWT 組件的 POP-UP 菜單的時候要小心,盡量不要這樣使用。

調(diào)試

調(diào)試在軟件開發(fā)中是一個很重要的部分,存在軟件生命周期的各個部分中。調(diào)試能夠用配置開、關(guān)是最基本的。

很常用的一種調(diào)試方法就是用一個 PrintStream 類成員,在沒有定義調(diào)試流的時候就為 null,類要定義一個 debug 方法來設(shè)置調(diào)試用的流。

性能

在寫代碼的時候,從頭至尾都應(yīng)該考慮性能問題。這不是說時間都應(yīng)該浪費(fèi)在優(yōu)化代碼上,而是我們時刻應(yīng)該提醒自己要注意代碼的效率。比如:如果沒有時間來實現(xiàn)一個高效的算法,那么我們應(yīng)該在文檔中記錄下來,以便在以后有空的時候再來實現(xiàn)她。

不是所有的人都同意在寫代碼的時候應(yīng)該優(yōu)化性能這個觀點的,他們認(rèn)為性能優(yōu)化的問題應(yīng)該在項目的后期再去考慮,也就是在程序的輪廓已經(jīng)實現(xiàn)了以后。

不必要的對象構(gòu)造

不要在循環(huán)中構(gòu)造和釋放對象

網(wǎng)頁標(biāo)題:教學(xué)評估java代碼,java課程評價
網(wǎng)站網(wǎng)址:http://www.muchs.cn/article38/hcpgsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站網(wǎng)站改版、商城網(wǎng)站網(wǎng)頁設(shè)計公司、移動網(wǎng)站建設(shè)網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名