導航:首頁 > 編程語言 > effectjava

effectjava

發布時間:2023-01-22 00:51:25

① 我的世界怎麼給最近的僵屍速度指令

/effect @e[type=Zombie] speed。

《我的世界》是由Mojang Studios開發,在中國由網易代理的沙盒式建造游戲,游戲於2017年8月8日在中國大陸獨家運營。

游戲著重於讓玩家去探索、交互、並且改變一個由一立方米大小的方塊動態生成的地圖。除了方塊以外,環境單體還包括植物、生物與物品。游戲里的各種活動包括採集礦石、與敵對生物戰斗、合成新的方塊與收集各種在游戲中找到的資源的工具。

游戲中的無限制模式讓玩家在各種多人游戲伺服器或他們的單人模式中進行創造建築物、作品與藝術創作。其他功能包括邏輯運算與遠程動作的紅石電路、礦車及軌道,以及稱之為「下界」的神秘世界。最終可以選擇前往一個叫作「末路之地」的維度,並擊敗末影龍。

游戲內容:

玩家們可以自由選擇游戲模式 [生存、創造、冒險、極限 (僅java版) 和旁觀模式(僅Java版) ]。在各種模式中體驗不一樣的有趣玩法,在生存模式中享受打怪、冒險等多種樂趣,在創造模式下享受當創世神的樂趣。

該游戲以玩家在三維空間中自由地創造和破壞不同種類的方塊為主題。玩家在游戲中可以在單人或多人模式中通過摧毀或創造精妙絕倫的建築物和藝術,或者收集物品探索地圖以完成游戲的成就(進度)。玩家也可以嘗試紅石電路和指令等玩法。

② 我的世界java隨機刻指令怎麼改

以下是Minecraft通用指令:
clear:清除玩家的物品
clone:復制或移動某區域內的方塊
deop:撤銷玩家的管理員身份
difficulty:調整游戲難度
effect:給予實體狀態效果
enchant:對實體手持物品進行附魔
execute:在改變執行者、執行位置和角度,添加限制條件,並儲存其輸出值的情況下執行另一條命令
experience/xp:更改玩家的經驗和等級
fill:在指定區域填充指定方塊
function:執行函數
gamemode:修改游戲模式
gamerule:查看和修改游戲規則
give:給予玩家指定物品
help/?:列出可用指令、查看特定指令用法
kick:將玩家踢出伺服器
kill:移除或殺死實體
list:列出在伺服器中的玩家
locate:定位特定結構
me:以「* 執行者名稱+動作」的格式發送一條旁白信息
op:給予玩家管理員身份
particle:顯示粒子
playsound:播放音效
reload:重新載入數據包
say:通過聊天框向玩家發送消息
schele:在經過指定的時間後執行函數
scoreboard:管理和查看記分板的目標、玩家和隊伍
setblock:放置指定方塊
setworldspawn:設置世界出生點
spawnpoint:設置特定玩家的重生點
spreadplayers:散步玩家
stopsound:停止音效
summon:生成實體
tag:管理實體的記分板標簽
tell/msg/w:通過聊天框向玩家發送私聊信息
tellraw:向玩家發送JSON文本消息
time:設置時間
title:設置和顯示標題
teleport/tp:傳送實體
weather:設置天氣
whitelist:管理伺服器中的白名單
以下是java版特有指令:
advancement:使特定玩家達成進度
attribute:管理實體屬性
ban:將玩家列入黑名單
ban-ip:將一個ip地址列入黑名單
banlist:顯示黑名單
bossbar:管理boss欄
data:查看或修改方塊或實體的nbt數據
datapack:管理數據包
debug:開始或結束調試會話
defaultgamemode:設置默認游戲模式
forceload:強制載入區塊
item:修改方塊或實體物品欄內的物品
jfr:使用Java FlightRecorder分析數據和某些自定義事件
locatebiome:定位生物群系
loot:將指定的戰利品放入物品欄或世界
pardon:將玩家移出黑名單
pardon-ip:將一個ip地址移出黑名單
perf:記錄並保存性能分析數據
placefeature[新增:JE 1.18.2]:放置一個地物,目前不可用
publish:向區域網開放單人游戲世界
recipe:給予或剝奪玩家配方
save-all:將伺服器保存至硬碟
save-off:禁用伺服器的自動保存
save-on:啟用伺服器的自動保存
seed:輸出世界種子
setidletimeout:設置踢出空閑不動玩家的時間
spectate:使處於旁觀者模式的玩家進入另一個實體的視角
stop:停止服務端
team:管理隊伍
teammsg:給使用命令的實體所在的隊伍全體成員發送消息
trigger:修改一個准則為「觸發器」的記分板目標
worldborder:控制世界邊界

③ Java:這個三目運算符為什麼報錯呢

三目運行是有返回值的,應該這樣寫:
int effect = 1;
int add = 0;
int update = 0;
int test = effect == 1 ? add++ : update++;

④ 我的世界:為啥我用不了這個指令(網易手機版)

不需要添加give。只有Java版使用/effect命令時才需要加個give,基岩版不需要。我的世界手游指令大全

⑤ java環境下,如何實現3D圖形的自動旋轉

程序實現思路: 在javafx中Node對象有一個effect屬性,可以用於實現各種特效。PerspectiveTransform特效可以使Node對象實現透視變換。因此我們可以通過計算透視變換中每個點的位置來實現3D翻轉特效。

實現步驟: 1、定義FlipView對象。包含以下屬性:
復制代碼 代碼如下:

//正面視圖
public Node frontNode;
//反面視圖
public Node backNode;
//是否翻轉
boolean flipped = false;
//翻轉角度
DoubleProperty time = new SimpleDoubleProperty(Math.PI / 2);
//正面翻轉特效
PerspectiveTransform frontEffect = new PerspectiveTransform();
//反面翻轉特效
PerspectiveTransform backEffect = new PerspectiveTransform();

create方法返回需要顯示的內容:
復制代碼 代碼如下:

private void create() {
time.addListener(new ChangeListener() {
@Override
public void changed(ObservableValue<? extends Number> arg0,
Number arg1, Number arg2) {
setPT(frontEffect, time.get());
setPT(backEffect, time.get());
}
});
anim.getKeyFrames().addAll(frame1, frame2);
backNode.visibleProperty().bind(
Bindings.when(time.lessThan(0)).then(true).otherwise(false));

frontNode.visibleProperty().bind(
Bindings.when(time.lessThan(0)).then(false).otherwise(true));
setPT(frontEffect, time.get());
setPT(backEffect, time.get());
frontNode.setEffect(frontEffect);
backNode.setEffect(backEffect);
getChildren().addAll(backNode, frontNode);
}

以上代碼需要注意的是: 隨著time值的變化frontEffect和backEffect的值也會隨著變換。 2、PerspectiveTransform特效的實現使用了Math.sin()和Math.cos()方法模擬3D角度變換。 具體實現如下:
復制代碼 代碼如下:

private void setPT(PerspectiveTransform pt, double t) {
double width = 200;
double height = 200;
double radius = width / 2;
double back = height / 10;
pt.setUlx(radius - Math.sin(t) * radius);
pt.setUly(0 - Math.cos(t) * back);
pt.setUrx(radius + Math.sin(t) * radius);
pt.setUry(0 + Math.cos(t) * back);
pt.setLrx(radius + Math.sin(t) * radius);
pt.setLry(height - Math.cos(t) * back);
pt.setLlx(radius - Math.sin(t) * radius);
pt.setLly(height + Math.cos(t) * back);
}

3、角度變換在1秒的時間內從3.14/2變換到-3.14/2。
復制代碼 代碼如下:

KeyFrame frame1 = new KeyFrame(Duration.ZERO, new KeyValue(time,
Math.PI / 2, Interpolator.LINEAR));
KeyFrame frame2 = new KeyFrame(Duration.seconds(1),
new EventHandler() {
@Override
public void handle(ActionEvent event) {
flipped = !flipped;
}
}, new KeyValue(time, -Math.PI / 2, Interpolator.LINEAR));

4、FlipView對象的創建:通過構造函數可以很方便的創建FlipView對象.
復制代碼 代碼如下:

ImageView image1 = new ImageView(new Image(getClass()
.getResourceAsStream("lion1.png")));
ImageView image2 = new ImageView(new Image(getClass()
.getResourceAsStream("lion2.png")));
FlipView flip = new FlipView(image1, image2);

⑥ 我的世界java版屏幕咋hu滑

,首先這有兩種情況: 一 : java版【電腦版】,如圖 1:先點開如下畫面,點擊控制 2:然後再點… Hello,。

mc靈敏度怎麼算的?
我的世界觸摸靈敏度按自己的適應性進行調整,自己用著合適就可以了,個人推薦25~30。 觸屏玩家不妨把觸屏靈敏度調低一點,會對劃屏卡頓有所改善,雖然調成最低的。

mc如何更改玩家移動速度?
三種方法1:利用命令方塊,輸入effect後面填數字加PS(最高只能255) 2:利用模組,之前去我的世界裡面搜索,加快速度的模組就可以搜出來。 3:用煉葯鍋煉出來的加。

我的世界手游移動控制怎麼調?
關於我的世界手游移動控制怎麼調? 你可以在游戲設置裡面進行觸摸這一個選項中進行更改,當你點進去這個選項中,你會看到一個移動方式,你可以把移動方式改為搖。

我的世界怎麼調滑動屏幕的靈敏度?
1、進入游戲界面後點擊一下頂部的選項。 2、然後就可以看到打開的界面上設置的選項,點擊即可。 3、點擊打開之後,就可以根據自己的需要進行設置了。 4、調節靈。

我的世界國際版如何調靈敏度?
打開設置找到靈敏度調節,調整自己喜歡的靈敏度即可 打開設置找到靈敏度調節,調整自己喜歡的靈敏度即可

我的世界buff指令大全?
我的世界buff指令 1、速度 (Speed) 2、減速 (Slowness) 3、挖掘效率(Haste) 4、挖掘減效 (Mining Fatigue) 5、力量(Strength) 6、瞬間加血 (Instant… 我的。

我的世界dream靈敏度?
我的世界靈敏度在個人中心操作頁面進行調節 我的世界靈敏度在個人中心操作頁面進行調節

我的世界手游怎麼調靈敏度?
按一下退出,打開設置,裡面有 按一下退出,打開設置,裡面有

⑦ java編程規范!!!

名稱 Java語言編碼規范(Java Code Conventions)
簡介 本文檔講述了Java語言的編碼規范,較之陳世忠先生《c++編碼規范》的浩繁詳盡,此文當屬短小精悍了。而其中所列之各項條款,從編碼風格,到注意事項,不單只Java,對於其他語言,也都很有借鑒意義。因為簡短,所以易記,大家不妨將此作為handbook,常備案頭,逐一對驗。
1 介紹
1.1 為什麼要有編碼規范
1.2 版權聲明
2 文件名
2.1 文件後綴
2.2 常用文件名
3 文件組織
3.1 Java源文件
3.1.1 開頭注釋
3.1.2 包和引入語句
3.1.3 類和介面聲明
4 縮進排版
4.1 行長度
4.2 換行
5 注釋
5.1 實現注釋的格式
5.1.1 塊注釋
5.1.2 單行注釋
5.1.3 尾端注釋
5.1.4 行末注釋
5.2 文擋注釋
6 聲明
6.1 每行聲明變數的數量
6.2 初始化
6.3 布局
6.4 類和介面的聲明
7 語句
7.1 簡單語句
7.2 復合語句
7.3 返回語句
7.4 if,if-else,if else-if else語句
7.5 for語句
7.6 while語句
7.7 do-while語句
7.8 switch語句
7.9 try-catch語句
8 空白
8.1 空行
8.2 空格
9 命名規范
10 編程慣例
10.1 提供對實例以及類變數的訪問控制
10.2 引用類變數和類方法
10.3 常量
10.4 變數賦值
10.5 其它慣例
10.5.1 圓括弧
10.5.2 返回值
10.5.3 條件運算符"?"前的表達式"?"前的表達式
10.5.4 特殊注釋
11 代碼範例
11.1 Java源文件範例

1 介紹(Introction)

1.1 為什麼要有編碼規范(Why Have Code Conventions)

編碼規范對於程序員而言尤為重要,有以下幾個原因:

- 一個軟體的生命周期中,80%的花費在於維護
- 幾乎沒有任何一個軟體,在其整個生命周期中,均由最初的開發人員來維護
- 編碼規范可以改善軟體的可讀性,可以讓程序員盡快而徹底地理解新的代碼
- 如果你將源碼作為產品發布,就需要確任它是否被很好的打包並且清晰無誤,一如你已構建的其它任何產品

為了執行規范,每個軟體開發人員必須一致遵守編碼規范。每個人。

1.2 版權聲明(Acknowledgments)

本文檔反映的是Sun MicroSystems公司,Java語言規范中的編碼標准部分。主要貢獻者包括:Peter King,Patrick Naughton,Mike DeMoney,Jonni Kanerva,Kathy Walrath以及Scott Hommel。

本文檔現由Scott Hommel維護,有關評論意見請發至[email protected]

2 文件名(File Names)

這部分列出了常用的文件名及其後綴。

2.1 文件後綴(File Suffixes)

Java程序使用下列文件後綴:

文件類別 文件後綴
Java源文件 .java
Java位元組碼文件 .class

2.2 常用文件名(Common File Names)

常用的文件名包括:

文件名 用途
GNUmakefile makefiles的首選文件名。我們採用gnumake來創建(build)軟體。
README 概述特定目錄下所含內容的文件的首選文件名

3 文件組織(File Organization)

一個文件由被空行分割而成的段落以及標識每個段落的可選注釋共同組成。超過2000行的程序難以閱讀,應該盡量避免。"Java源文件範例"提供了一個布局合理的Java程序範例。

3.1 Java源文件(Java Source Files)

每個Java源文件都包含一個單一的公共類或介面。若私有類和介面與一個公共類相關聯,可以將它們和公共類放入同一個源文件。公共類必須是這個文件中的第一個類或介面。

Java源文件還遵循以下規則:

- 開頭注釋(參見"開頭注釋")
- 包和引入語句(參見"包和引入語句")
- 類和介面聲明(參見"類和介面聲明")

3.1.1 開頭注釋(Beginning Comments)

所有的源文件都應該在開頭有一個C語言風格的注釋,其中列出類名、版本信息、日期和版權聲明:

/*
* Classname
*
* Version information
*
* Date
*
* Copyright notice
*/

3.1.2 包和引入語句(Package and Import Statements)

在多數Java源文件中,第一個非注釋行是包語句。在它之後可以跟引入語句。例如:

package java.awt;

import java.awt.peer.CanvasPeer;

3.1.3 類和介面聲明(Class and Interface Declarations)

下表描述了類和介面聲明的各個部分以及它們出現的先後次序。參見"Java源文件範例"中一個包含注釋的例子。

類/介面聲明的各部分 註解
1 類/介面文檔注釋(/**……*/) 該注釋中所需包含的信息,參見"文檔注釋"
2 類或介面的聲明
3 類/介面實現的注釋(/*……*/)如果有必要的話 該注釋應包含任何有關整個類或介面的信息,而這些信息又不適合作為類/介面文檔注釋。
4 類的(靜態)變數 首先是類的公共變數,隨後是保護變數,再後是包一級別的變數(沒有訪問修飾符,access modifier),最後是私有變數。
5 實例變數 首先是公共級別的,隨後是保護級別的,再後是包一級別的(沒有訪問修飾符),最後是私有級別的。
6 構造器
7 方法 這些方法應該按功能,而非作用域或訪問許可權,分組。例如,一個私有的類方法可以置於兩個公有的實例方法之間。其目的是為了更便於閱讀和理解代碼。

4 縮進排版(Indentation)

4個空格常被作為縮進排版的一個單位。縮進的確切解釋並未詳細指定(空格 vs. 製表符)。一個製表符等於8個空格(而非4個)。

4.1 行長度(Line Length)

盡量避免一行的長度超過80個字元,因為很多終端和工具不能很好處理之。

注意:用於文檔中的例子應該使用更短的行長,長度一般不超過70個字元。

4.2 換行(Wrapping Lines)

當一個表達式無法容納在一行內時,可以依據如下一般規則斷開之:

- 在一個逗號後面斷開
- 在一個操作符前面斷開
- 寧可選擇較高級別(higher-level)的斷開,而非較低級別(lower-level)的斷開
- 新的一行應該與上一行同一級別表達式的開頭處對齊
- 如果以上規則導致你的代碼混亂或者使你的代碼都堆擠在右邊,那就代之以縮進8個空格。

以下是斷開方法調用的一些例子:

someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);

var = someMethod1(longExpression1,
someMethod2(longExpression2,
longExpression3));

以下是兩個斷開算術表達式的例子。前者更好,因為斷開處位於括弧表達式的外邊,這是個較高級別的斷開。

longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; //PREFFER

longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; //AVOID

以下是兩個縮進方法聲明的例子。前者是常規情形。後者若使用常規的縮進方式將會使第二行和第三行移得很靠右,所以代之以縮進8個空格

//CONVENTIONAL INDENTATION
someMethod(int anArg, Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}

//INDENT 8 SPACES TO AVOID VERY DEEP INDENTS
private static synchronized horkingLongMethodName(int anArg,
Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}

if語句的換行通常使用8個空格的規則,因為常規縮進(4個空格)會使語句體看起來比較費勁。比如:

//DON』T USE THIS INDENTATION
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) { //BAD WRAPS
doSomethingAboutIt(); //MAKE THIS LINE EASY TO MISS
}

//USE THIS INDENTATION INSTEAD
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}

//OR USE THIS
if ((condition1 && condition2) || (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}

這里有三種可行的方法用於處理三元運算表達式:

alpha = (aLongBooleanExpression) ? beta : gamma;

alpha = (aLongBooleanExpression) ? beta
: gamma;

alpha = (aLongBooleanExpression)
? beta
: gamma;

5 注釋(Comments)

Java程序有兩類注釋:實現注釋(implementation comments)和文檔注釋(document comments)。實現注釋是那些在C++中見過的,使用/*...*/和//界定的注釋。文檔注釋(被稱為"doc comments")是Java獨有的,並由/**...*/界定。文檔注釋可以通過javadoc工具轉換成HTML文件。

實現注釋用以注釋代碼或者實現細節。文檔注釋從實現自由(implementation-free)的角度描述代碼的規范。它可以被那些手頭沒有源碼的開發人員讀懂。

注釋應被用來給出代碼的總括,並提供代碼自身沒有提供的附加信息。注釋應該僅包含與閱讀和理解程序有關的信息。例如,相應的包如何被建立或位於哪個目錄下之類的信息不應包括在注釋中。

在注釋里,對設計決策中重要的或者不是顯而易見的地方進行說明是可以的,但應避免提供代碼中己清晰表達出來的重復信息。多餘的的注釋很容易過時。通常應避免那些代碼更新就可能過時的注釋。

注意:頻繁的注釋有時反映出代碼的低質量。當你覺得被迫要加註釋的時候,考慮一下重寫代碼使其更清晰。

注釋不應寫在用星號或其他字元畫出來的大框里。注釋不應包括諸如製表符和回退符之類的特殊字元。

5.1 實現注釋的格式(Implementation Comment Formats)

程序可以有4種實現注釋的風格:塊(block)、單行(single-line)、尾端(trailing)和行末(end-of-line)。

5.1.1 塊注釋(Block Comments)

塊注釋通常用於提供對文件,方法,數據結構和演算法的描述。塊注釋被置於每個文件的開始處以及每個方法之前。它們也可以被用於其他地方,比如方法內部。在功能和方法內部的塊注釋應該和它們所描述的代碼具有一樣的縮進格式。

塊注釋之首應該有一個空行,用於把塊注釋和代碼分割開來,比如:

/*
* Here is a block comment.
*/

塊注釋可以以/*-開頭,這樣indent(1)就可以將之識別為一個代碼塊的開始,而不會重排它。

/*-
* Here is a block comment with some very special
* formatting that I want indent(1) to ignore.
*
* one
* two
* three
*/

注意:如果你不使用indent(1),就不必在代碼中使用/*-,或為他人可能對你的代碼運行indent(1)作讓步。

參見"文檔注釋"

5.1.2 單行注釋(Single-Line Comments)

短注釋可以顯示在一行內,並與其後的代碼具有一樣的縮進層級。如果一個注釋不能在一行內寫完,就該採用塊注釋(參見"塊注釋")。單行注釋之前應該有一個空行。以下是一個Java代碼中單行注釋的例子:

if (condition) {

/* Handle the condition. */
...
}

5.1.3 尾端注釋(Trailing Comments)

極短的注釋可以與它們所要描述的代碼位於同一行,但是應該有足夠的空白來分開代碼和注釋。若有多個短注釋出現於大段代碼中,它們應該具有相同的縮進。

以下是一個Java代碼中尾端注釋的例子:

if (a == 2) {
return TRUE; /* special case */
} else {
return isPrime(a); /* works only for odd a */
}

5.1.4 行末注釋(End-Of-Line Comments)

注釋界定符"//",可以注釋掉整行或者一行中的一部分。它一般不用於連續多行的注釋文本;然而,它可以用來注釋掉連續多行的代碼段。以下是所有三種風格的例子:

if (foo > 1) {

// Do a double-flip.
...
}
else {
return false; // Explain why here.
}

//if (bar > 1) {
//
// // Do a triple-flip.
// ...
//}
//else {
// return false;
//}

5.2 文檔注釋(Documentation Comments)

注意:此處描述的注釋格式之範例,參見"Java源文件範例"

若想了解更多,參見"How to Write Doc Comments for Javadoc",其中包含了有關文檔注釋標記的信息(@return, @param, @see):

http://java.sun.com/javadoc/writingdoccomments/index.html

若想了解更多有關文檔注釋和javadoc的詳細資料,參見javadoc的主頁:

http://java.sun.com/javadoc/index.html

文檔注釋描述Java的類、介面、構造器,方法,以及欄位(field)。每個文檔注釋都會被置於注釋定界符/**...*/之中,一個注釋對應一個類、介面或成員。該注釋應位於聲明之前:

/**
* The Example class provides ...
*/
public class Example { ...

注意頂層(top-level)的類和介面是不縮進的,而其成員是縮進的。描述類和介面的文檔注釋的第一行(/**)不需縮進;隨後的文檔注釋每行都縮進1格(使星號縱向對齊)。成員,包括構造函數在內,其文檔注釋的第一行縮進4格,隨後每行都縮進5格。

若你想給出有關類、介面、變數或方法的信息,而這些信息又不適合寫在文檔中,則可使用實現塊注釋(見5.1.1)或緊跟在聲明後面的單行注釋(見5.1.2)。例如,有關一個類實現的細節,應放入緊跟在類聲明後面的實現塊注釋中,而不是放在文檔注釋中。

文檔注釋不能放在一個方法或構造器的定義塊中,因為Java會將位於文檔注釋之後的第一個聲明與其相關聯。

6 聲明(Declarations)

6.1 每行聲明變數的數量(Number Per Line)

推薦一行一個聲明,因為這樣以利於寫注釋。亦即,

int level; // indentation level
int size; // size of table

要優於,

int level, size;

不要將不同類型變數的聲明放在同一行,例如:

int foo, fooarray[]; //WRONG!

注意:上面的例子中,在類型和標識符之間放了一個空格,另一種被允許的替代方式是使用製表符:

int level; // indentation level
int size; // size of table
Object currentEntry; // currently selected table entry

6.2 初始化(Initialization)

盡量在聲明局部變數的同時初始化。唯一不這么做的理由是變數的初始值依賴於某些先前發生的計算。

6.3 布局(Placement)

只在代碼塊的開始處聲明變數。(一個塊是指任何被包含在大括弧"{"和"}"中間的代碼。)不要在首次用到該變數時才聲明之。這會把注意力不集中的程序員搞糊塗,同時會妨礙代碼在該作用域內的可移植性。

void myMethod() {
int int1 = 0; // beginning of method block

if (condition) {
int int2 = 0; // beginning of "if" block
...
}
}

該規則的一個例外是for循環的索引變數

for (int i = 0; i < maxLoops; i++) { ... }

避免聲明的局部變數覆蓋上一級聲明的變數。例如,不要在內部代碼塊中聲明相同的變數名:

int count;
...
myMethod() {
if (condition) {
int count = 0; // AVOID!
...
}
...
}

6.4 類和介面的聲明(Class and Interface Declarations)

當編寫類和介面是,應該遵守以下格式規則:

- 在方法名與其參數列表之前的左括弧"("間不要有空格
- 左大括弧"{"位於聲明語句同行的末尾
- 右大括弧"}"另起一行,與相應的聲明語句對齊,除非是一個空語句,"}"應緊跟在"{"之後

class Sample extends Object {
int ivar1;
int ivar2;

Sample(int i, int j) {
ivar1 = i;
ivar2 = j;
}

int emptyMethod() {}

...
}

- 方法與方法之間以空行分隔

7 語句(Statements)

7.1 簡單語句(Simple Statements)

每行至多包含一條語句,例如:

argv++; // Correct
argc--; // Correct
argv++; argc--; // AVOID!

7.2 復合語句(Compound Statements)

復合語句是包含在大括弧中的語句序列,形如"{ 語句 }"。例如下面各段。

- 被括其中的語句應該較之復合語句縮進一個層次
- 左大括弧"{"應位於復合語句起始行的行尾;右大括弧"}"應另起一行並與復合語句首行對齊。
- 大括弧可以被用於所有語句,包括單個語句,只要這些語句是諸如if-else或for控制結構的一部分。這樣便於添加語句而無需擔心由於忘了加括弧而引入bug。

7.3 返回語句(return Statements)

一個帶返回值的return語句不使用小括弧"()",除非它們以某種方式使返回值更為顯見。例如:

return;

return myDisk.size();

return (size ? size : defaultSize);

7.4 if,if-else,if else-if else語句(if, if-else, if else-if else Statements)

if-else語句應該具有如下格式:

if (condition) {
statements;
}

if (condition) {
statements;
} else {
statements;
}

if (condition) {
statements;
} else if (condition) {
statements;
} else{
statements;
}

注意:if語句總是用"{"和"}"括起來,避免使用如下容易引起錯誤的格式:

if (condition) //AVOID! THIS OMITS THE BRACES {}!
statement;

7.5 for語句(for Statements)

一個for語句應該具有如下格式:

for (initialization; condition; update) {
statements;
}

一個空的for語句(所有工作都在初始化,條件判斷,更新子句中完成)應該具有如下格式:

for (initialization; condition; update);

當在for語句的初始化或更新子句中使用逗號時,避免因使用三個以上變數,而導致復雜度提高。若需要,可以在for循環之前(為初始化子句)或for循環末尾(為更新子句)使用單獨的語句。

7.6 while語句(while Statements)

一個while語句應該具有如下格式

while (condition) {
statements;
}

一個空的while語句應該具有如下格式:

while (condition);

7.7 do-while語句(do-while Statements)

一個do-while語句應該具有如下格式:

do {
statements;
} while (condition);

7.8 switch語句(switch Statements)

一個switch語句應該具有如下格式:

switch (condition) {
case ABC:
statements;
/* falls through */
case DEF:
statements;
break;

case XYZ:
statements;
break;

default:
statements;
break;
}

每當一個case順著往下執行時(因為沒有break語句),通常應在break語句的位置添加註釋。上面的示例代碼中就包含注釋/* falls through */。

7.9 try-catch語句(try-catch Statements)

一個try-catch語句應該具有如下格式:

try {
statements;
} catch (ExceptionClass e) {
statements;
}

一個try-catch語句後面也可能跟著一個finally語句,不論try代碼塊是否順利執行完,它都會被執行。

try {
statements;
} catch (ExceptionClass e) {
statements;
} finally {
statements;
}

8 空白(White Space)

8.1 空行(Blank Lines)

空行將邏輯相關的代碼段分隔開,以提高可讀性。

下列情況應該總是使用兩個空行:

- 一個源文件的兩個片段(section)之間
- 類聲明和介面聲明之間

下列情況應該總是使用一個空行:

- 兩個方法之間
- 方法內的局部變數和方法的第一條語句之間
- 塊注釋(參見"5.1.1")或單行注釋(參見"5.1.2")之前
- 一個方法內的兩個邏輯段之間,用以提高可讀性

8.2 空格(Blank Spaces)

下列情況應該使用空格:

- 一個緊跟著括弧的關鍵字應該被空格分開,例如:

while (true) {
...
}

注意:空格不應該置於方法名與其左括弧之間。這將有助於區分關鍵字和方法調用。
- 空白應該位於參數列表中逗號的後面
- 所有的二元運算符,除了".",應該使用空格將之與操作數分開。一元操作符和操作數之間不因該加空格,比如:負號("-")、自增("++")和自減("--")。例如:
a += c + d;
a = (a + b) / (c * d);

while (d++ = s++) {
n++;
}
printSize("size is " + foo + "\n");

- for語句中的表達式應該被空格分開,例如:
for (expr1; expr2; expr3)

- 強制轉型後應該跟一個空格,例如:
myMethod((byte) aNum, (Object) x);
myMethod((int) (cp + 5), ((int) (i + 3)) + 1);

9 命名規范(Naming Conventions)

命名規范使程序更易讀,從而更易於理解。它們也可以提供一些有關標識符功能的信息,以助於理解代碼,例如,不論它是一個常量,包,還是類。

標識符類型 命名規則 例子
包(Packages) 一個唯一包名的前綴總是全部小寫的ASCII字母並且是一個頂級域名,通常是com,e,gov,mil,net,org,或1981年ISO 3166標准所指定的標識國家的英文雙字元代碼。包名的後續部分根據不同機構各自內部的命名規范而不盡相同。這類命名規范可能以特定目錄名的組成來區分部門(department),項目(project),機器(machine),或注冊名(login names)。 com.sun.eng
com.apple.quicktime.v2
e.cmu.cs.bovik.cheese
類(Classes) 命名規則:類名是個一名詞,採用大小寫混合的方式,每個單詞的首字母大寫。盡量使你的類名簡潔而富於描述。使用完整單詞,避免縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML) class Raster;
class ImageSprite;
介面(Interfaces) 命名規則:大小寫規則與類名相似 interface RasterDelegate;
interface Storing;
方法(Methods) 方法名是一個動詞,採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。 run();
runFast();
getBackground();
變數(Variables) 除了變數名外,所有實例,包括類,類常量,均採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。變數名不應以下劃線或美元符號開頭,盡管這在語法上是允許的。
變數名應簡短且富於描述。變數名的選用應該易於記憶,即,能夠指出其用途。盡量避免單個字元的變數名,除非是一次性的臨時變數。臨時變數通常被取名為i,j,k,m和n,它們一般用於整型;c,d,e,它們一般用於字元型。 char c;
int i;
float myWidth;
實例變數(Instance Variables) 大小寫規則和變數名相似,除了前面需要一個下劃線 int _employeeId;
String _name;
Customer _customer;
常量(Constants) 類常量和ANSI常量的聲明,應該全部大寫,單詞間用下劃線隔開。(盡量避免ANSI常量,容易引起錯誤) static final int MIN_WIDTH = 4;
static final int MAX_WIDTH = 999;
static final int GET_THE_CPU = 1;

10 編程慣例(Programming Practices)

10.1 提供對實例以及類變數的訪問控制(Providing Access to Instance and Class Variables)

若沒有足夠理由,不要把實例或類變數聲明為公有。通常,實例變數無需顯式的設置(set)和獲取(gotten),通常這作為方法調用的邊緣效應 (side effect)而產生。

一個具有公有實例變數的恰當例子,是類僅作為數據結構,沒有行為。亦即,若你要使用一個結構(struct)而非一個類(如果java支持結構的話),那麼把類的實例變數聲明為公有是合適的。

⑧ Java有哪些相關書籍

市面上關於Java的書令人眼花繚亂,很多人完全不知道該看哪本書。整理Java的4本必讀書籍給大家分享。

1.《Java從入門到精通》

這本書主要針對Java基礎,對於沒有學過Java的人才說,是一個不錯的選擇。通過這本書,大家可以從零開始,慢慢來學習,而且實操很多,不會讓你看到最後出現只會理論的情況。

2.《Java編程思想》

在有了一定的Java編程經驗之後,你需要「知其所以然」了。這個時候《Java編程思想》是一本讓你知其所以然的好書,它對於基本的面向對象知識有比較清楚的交待,對Java基本語法,基本類庫有比較清楚的講解,可以幫你打一個良好的Java編程基礎。這本書的缺點是實在太厚,也比較羅嗦,不適合現代人快節奏學習,因此看這本書要懂得取捨,不是每章每節都值得一看的,挑重點的深入看就可以了。

3.《重構:改善既有代碼的設計》

出自於 Martin Fowler 的大作,寫出優秀代碼的必經之路。這本書名氣很大,不用多介紹,可以在閑暇的時候多翻翻,多和自己的實踐相互印證。這本書對你產生影響是潛移默化的。

4.《Java開發實戰經典》

這本書比較適合自學者學習,裡面有很多小案例,可以邊學邊練,鞏固知識。

⑨ Java:三目運算符接收返回值的疑問

建議還是按方式1寫,你覺得「排版有些字多",就去掉花括弧

if (effect == 1) add++; else update++;
我稱「排版有些字多"而不說是代碼的冗餘。因為java在轉換成位元組碼後,方式1生成的和方式2差不多甚至更有效。

閱讀全文

與effectjava相關的資料

熱點內容
企業郵箱登錄收件伺服器地址 瀏覽:556
計算機思維與演算法設計的重要性 瀏覽:664
linux刷新磁碟命令 瀏覽:74
我的世界如何查看伺服器種子pc 瀏覽:284
linuxlamp編譯安裝 瀏覽:609
枚舉演算法ppt 瀏覽:184
cmd查看進程命令 瀏覽:956
手機內怎麼刪除APP 瀏覽:834
魚群和鳥群演算法區別 瀏覽:93
pdf尺寸設置 瀏覽:211
android訪問本地伺服器 瀏覽:512
程序員相親被刪除微信 瀏覽:790
centos命令窗口 瀏覽:596
編譯器有幾個好用的 瀏覽:500
資料庫和網站如何搭載伺服器 瀏覽:154
網路流理論演算法與應用 瀏覽:795
java和matlab 瀏覽:388
釘釘蘋果怎麼下app軟體 瀏覽:832
php網站驗證碼不顯示 瀏覽:859
鋁膜構造柱要設置加密區嗎 瀏覽:344