成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

什么是Java構造器?

開發 后端
構造器是在 Java 中創建新對象object時執行的操作。當 Java 應用程序創建一個你編寫的類的實例時,它將檢查構造器。如果(該類)存在構造器,則 Java 在創建實例時將運行構造器中的代碼。

[[279795]]

構造器是編程的強大組件。使用它們來釋放 Java 的全部潛力。

在開源、跨平臺編程領域,Java 無疑(?)是無可爭議的重量級語言。盡管有許多偉大的跨平臺框架,但很少有像 Java 那樣統一和直接的。

當然,Java 也是一種非常復雜的語言,具有自己的微妙之處和慣例。Java 中與構造器 constructor有關的最常見問題之一是:它們是什么,它們的作用是什么?

簡而言之:構造器是在 Java 中創建新對象object時執行的操作。當 Java 應用程序創建一個你編寫的類的實例時,它將檢查構造器。如果(該類)存在構造器,則 Java 在創建實例時將運行構造器中的代碼。這幾句話中包含了大量的技術術語,但是當你看到它的實際應用時就會更加清楚,所以請確保你已經安裝了 Java 并準備好進行演示。

沒有使用構造器的開發日常

如果你正在編寫 Java 代碼,那么你已經在使用構造器了,即使你可能不知道它。Java 中的所有類都有一個構造器,因為即使你沒有創建構造器,Java 也會在編譯代碼時為你生成一個。但是,為了進行演示,請忽略 Java 提供的隱藏構造器(因為默認構造器不添加任何額外的功能),并觀察沒有顯式構造器的情況。

假設你正在編寫一個簡單的 Java 擲骰子應用程序,因為你想為游戲生成一個偽隨機數。

首先,你可以創建骰子類來表示一個骰子。你玩了很久《龍與地下城》,所以你決定創建一個 20 面的骰子。在這個示例代碼中,變量 dice 是整數 20,表示可能的最大擲骰數(一個 20 邊骰子的擲骰數不能超過 20)。變量 roll 是最終的隨機數的占位符,rand 用作隨機數種子。

  1. import java.util.Random;
  2.  
  3. public class DiceRoller {
  4. private int dice = 20;
  5. private int roll;
  6. private Random rand = new Random();

接下來,在 DiceRoller 類中創建一個函數,以執行計算機模擬模子滾動所必須采取的步驟:從 rand 中獲取一個整數并將其分配給 roll變量,考慮到 Java 從 0 開始計數但 20 面的骰子沒有 0 值的情況,roll 再加 1 ,然后打印結果。

  1. import java.util.Random;
  2.  
  3. public class DiceRoller {
  4. private int dice = 20;
  5. private int roll;
  6. private Random rand = new Random();

最后,產生 DiceRoller 類的實例并調用其關鍵函數 Roller

  1. // main loop
  2. public static void main (String[] args) {
  3. System.out.printf("You rolled a ");
  4.  
  5. DiceRoller App = new DiceRoller();
  6. App.Roller();
  7. }
  8. }

只要你安裝了 Java 開發環境(如 OpenJDK),你就可以在終端上運行你的應用程序:

  1. $ java dice.java
  2. You rolled a 12

在本例中,沒有顯式構造器。這是一個非常有效和合法的 Java 應用程序,但是它有一點局限性。例如,如果你把游戲《龍與地下城》放在一邊,晚上去玩一些《快艇骰子》,你將需要六面骰子。在這個簡單的例子中,更改代碼不會有太多的麻煩,但是在復雜的代碼中這不是一個現實的選擇。解決這個問題的一種方法是使用構造器。

構造函數的作用

這個示例項目中的 DiceRoller 類表示一個虛擬骰子工廠:當它被調用時,它創建一個虛擬骰子,然后進行“滾動”。然而,通過編寫一個自定義構造器,你可以讓擲骰子的應用程序詢問你希望模擬哪種類型的骰子。

大部分代碼都是一樣的,除了構造器接受一個表示面數的數字參數。這個數字還不存在,但稍后將創建它。

  1. import java.util.Random;
  2.  
  3. public class DiceRoller {
  4. private int dice;
  5. private int roll;
  6. private Random rand = new Random();
  7.  
  8. // constructor
  9. public DiceRoller(int sides) {
  10. dice = sides;
  11. }

模擬滾動的函數保持不變:

  1. public void Roller() {
  2. roll = rand.nextInt(dice);
  3. roll += 1;
  4. System.out.println (roll);
  5. }

代碼的主要部分提供運行應用程序時提供的任何參數。這的確會是一個復雜的應用程序,你需要仔細解析參數并檢查意外結果,但對于這個例子,唯一的預防措施是將參數字符串轉換成整數類型。

  1. public static void main (String[] args) {
  2. System.out.printf("You rolled a ");
  3. DiceRoller App = new DiceRoller( Integer.parseInt(args[0]) );
  4. App.Roller();
  5. }

啟動這個應用程序,并提供你希望骰子具有的面數:

  1. $ java dice.java 20
  2. You rolled a 10
  3. $ java dice.java 6
  4. You rolled a 2
  5. $ java dice.java 100
  6. You rolled a 44

構造器已接受你的輸入,因此在創建類實例時,會將 sides 變量設置為用戶指定的任何數字。

構造器是編程的功能強大的組件。練習用它們來解開了 Java 的全部潛力。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2009-07-21 12:35:00

Scala從構造器

2010-08-26 09:27:53

DHCP服務器

2023-12-06 12:11:43

類加載器雙親委派模型

2021-05-27 10:12:11

Java無服務器化開發

2024-12-09 09:00:00

拷貝構造函數傳遞編程

2009-09-24 10:23:41

打印服務器

2020-12-07 08:00:00

服務器Hypervisor數據中心

2021-04-14 14:55:08

智能傳感器物聯網新技術

2010-07-29 11:18:22

2011-08-08 14:28:49

dhcp服務器

2024-04-29 10:56:26

數據中心服務器服務器機房

2023-08-25 15:39:34

物聯網傳感器

2009-03-23 08:52:51

2021-08-19 09:59:07

Spring代碼Java

2023-09-20 14:35:43

2010-02-01 13:55:12

Python 解釋器

2009-07-17 17:41:41

SwingWorker

2021-03-20 22:46:22

IaaSSaaSPaaS

2024-02-23 19:17:12

構造函數C++開發

2012-05-16 13:45:24

Java構造器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线欧美日韩 | 国产精品爱久久久久久久 | 欧美群妇大交群中文字幕 | 精品美女在线观看视频在线观看 | 欧美精品在线一区 | 一级一级一级毛片 | 国产精品久久在线观看 | 99国产精品视频免费观看一公开 | 成人亚洲精品久久久久软件 | 久久精品视频在线免费观看 | 欧美日韩一区在线观看 | 四虎成人av| 亚洲综合成人网 | 亚洲综合婷婷 | 日韩精品久久一区 | 久久99精品久久久久 | 日韩成人免费av | 91xxx在线观看 | 狠狠色综合久久丁香婷婷 | 黄色片在线免费看 | 国产一区二区在线播放 | 欧美精品三区 | 天堂一区二区三区 | 成人精品一区二区 | 精品福利一区 | 美女视频一区二区三区 | 九九福利 | 亚洲精品乱码久久久久久按摩观 | 国产一区二区三区日韩 | 国产午夜精品一区二区三区在线观看 | 欧美国产精品一区二区 | 久久久久国产一区二区三区 | 亚洲一区在线日韩在线深爱 | 日韩在线免费 | 成人在线播放 | 国产一区视频在线 | 理论片午午伦夜理片影院 | 久久精品伊人 | 在线看av网址 | 91av大全 | 天天综合日日夜夜 |