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

什么是Java構(gòu)造器?

開(kāi)發(fā) 后端
構(gòu)造器是在 Java 中創(chuàng)建新對(duì)象object時(shí)執(zhí)行的操作。當(dāng) Java 應(yīng)用程序創(chuàng)建一個(gè)你編寫(xiě)的類的實(shí)例時(shí),它將檢查構(gòu)造器。如果(該類)存在構(gòu)造器,則 Java 在創(chuàng)建實(shí)例時(shí)將運(yùn)行構(gòu)造器中的代碼。

[[279795]]

構(gòu)造器是編程的強(qiáng)大組件。使用它們來(lái)釋放 Java 的全部潛力。

在開(kāi)源、跨平臺(tái)編程領(lǐng)域,Java 無(wú)疑(?)是無(wú)可爭(zhēng)議的重量級(jí)語(yǔ)言。盡管有許多偉大的跨平臺(tái)框架,但很少有像 Java 那樣統(tǒng)一和直接的。

當(dāng)然,Java 也是一種非常復(fù)雜的語(yǔ)言,具有自己的微妙之處和慣例。Java 中與構(gòu)造器 constructor有關(guān)的最常見(jiàn)問(wèn)題之一是:它們是什么,它們的作用是什么?

簡(jiǎn)而言之:構(gòu)造器是在 Java 中創(chuàng)建新對(duì)象object時(shí)執(zhí)行的操作。當(dāng) Java 應(yīng)用程序創(chuàng)建一個(gè)你編寫(xiě)的類的實(shí)例時(shí),它將檢查構(gòu)造器。如果(該類)存在構(gòu)造器,則 Java 在創(chuàng)建實(shí)例時(shí)將運(yùn)行構(gòu)造器中的代碼。這幾句話中包含了大量的技術(shù)術(shù)語(yǔ),但是當(dāng)你看到它的實(shí)際應(yīng)用時(shí)就會(huì)更加清楚,所以請(qǐng)確保你已經(jīng)安裝了 Java 并準(zhǔn)備好進(jìn)行演示。

沒(méi)有使用構(gòu)造器的開(kāi)發(fā)日常

如果你正在編寫(xiě) Java 代碼,那么你已經(jīng)在使用構(gòu)造器了,即使你可能不知道它。Java 中的所有類都有一個(gè)構(gòu)造器,因?yàn)榧词鼓銢](méi)有創(chuàng)建構(gòu)造器,Java 也會(huì)在編譯代碼時(shí)為你生成一個(gè)。但是,為了進(jìn)行演示,請(qǐng)忽略 Java 提供的隱藏構(gòu)造器(因?yàn)槟J(rèn)構(gòu)造器不添加任何額外的功能),并觀察沒(méi)有顯式構(gòu)造器的情況。

假設(shè)你正在編寫(xiě)一個(gè)簡(jiǎn)單的 Java 擲骰子應(yīng)用程序,因?yàn)槟阆霝橛螒蛏梢粋€(gè)偽隨機(jī)數(shù)。

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

  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();

接下來(lái),在 DiceRoller 類中創(chuàng)建一個(gè)函數(shù),以執(zhí)行計(jì)算機(jī)模擬模子滾動(dòng)所必須采取的步驟:從 rand 中獲取一個(gè)整數(shù)并將其分配給 roll變量,考慮到 Java 從 0 開(kāi)始計(jì)數(shù)但 20 面的骰子沒(méi)有 0 值的情況,roll 再加 1 ,然后打印結(jié)果。

  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();

最后,產(chǎn)生 DiceRoller 類的實(shí)例并調(diào)用其關(guān)鍵函數(shù) 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 開(kāi)發(fā)環(huán)境(如 OpenJDK),你就可以在終端上運(yùn)行你的應(yīng)用程序:

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

在本例中,沒(méi)有顯式構(gòu)造器。這是一個(gè)非常有效和合法的 Java 應(yīng)用程序,但是它有一點(diǎn)局限性。例如,如果你把游戲《龍與地下城》放在一邊,晚上去玩一些《快艇骰子》,你將需要六面骰子。在這個(gè)簡(jiǎn)單的例子中,更改代碼不會(huì)有太多的麻煩,但是在復(fù)雜的代碼中這不是一個(gè)現(xiàn)實(shí)的選擇。解決這個(gè)問(wèn)題的一種方法是使用構(gòu)造器。

構(gòu)造函數(shù)的作用

這個(gè)示例項(xiàng)目中的 DiceRoller 類表示一個(gè)虛擬骰子工廠:當(dāng)它被調(diào)用時(shí),它創(chuàng)建一個(gè)虛擬骰子,然后進(jìn)行“滾動(dòng)”。然而,通過(guò)編寫(xiě)一個(gè)自定義構(gòu)造器,你可以讓擲骰子的應(yīng)用程序詢問(wèn)你希望模擬哪種類型的骰子。

大部分代碼都是一樣的,除了構(gòu)造器接受一個(gè)表示面數(shù)的數(shù)字參數(shù)。這個(gè)數(shù)字還不存在,但稍后將創(chuàng)建它。

  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. }

模擬滾動(dòng)的函數(shù)保持不變:

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

代碼的主要部分提供運(yùn)行應(yīng)用程序時(shí)提供的任何參數(shù)。這的確會(huì)是一個(gè)復(fù)雜的應(yīng)用程序,你需要仔細(xì)解析參數(shù)并檢查意外結(jié)果,但對(duì)于這個(gè)例子,唯一的預(yù)防措施是將參數(shù)字符串轉(zhuǎn)換成整數(shù)類型。

  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. }

啟動(dòng)這個(gè)應(yīng)用程序,并提供你希望骰子具有的面數(shù):

  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

構(gòu)造器已接受你的輸入,因此在創(chuàng)建類實(shí)例時(shí),會(huì)將 sides 變量設(shè)置為用戶指定的任何數(shù)字。

構(gòu)造器是編程的功能強(qiáng)大的組件。練習(xí)用它們來(lái)解開(kāi)了 Java 的全部潛力。 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2009-07-21 12:35:00

Scala從構(gòu)造器

2010-08-26 09:27:53

DHCP服務(wù)器

2023-12-06 12:11:43

類加載器雙親委派模型

2021-05-27 10:12:11

Java無(wú)服務(wù)器化開(kāi)發(fā)

2024-12-09 09:00:00

拷貝構(gòu)造函數(shù)傳遞編程

2009-09-24 10:23:41

打印服務(wù)器

2020-12-07 08:00:00

服務(wù)器Hypervisor數(shù)據(jù)中心

2021-04-14 14:55:08

智能傳感器物聯(lián)網(wǎng)新技術(shù)

2010-07-29 11:18:22

2011-08-08 14:28:49

dhcp服務(wù)器

2023-08-25 15:39:34

物聯(lián)網(wǎng)傳感器

2009-03-23 08:52:51

2024-04-29 10:56:26

數(shù)據(jù)中心服務(wù)器服務(wù)器機(jī)房

2021-08-19 09:59:07

Spring代碼Java

2009-07-17 17:41:41

SwingWorker

2023-09-20 14:35:43

2010-02-01 13:55:12

Python 解釋器

2021-03-20 22:46:22

IaaSSaaSPaaS

2024-02-23 19:17:12

構(gòu)造函數(shù)C++開(kāi)發(fā)

2012-05-16 13:45:24

Java構(gòu)造器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 天天干狠狠操 | 日韩精品在线观看一区二区三区 | 欧美精品久久久 | 欧美一级毛片免费观看 | 久久国产精品-国产精品 | 在线欧美视频 | 欧美精品一区二区三区在线播放 | 久干网| 欧一区 | 秋霞性生活| 午夜精品久久久久久久久久久久久 | 成人久久久 | 天天综合久久 | 中文字幕在线三区 | 亚洲精品视频一区 | 久久99视频这里只有精品 | 亚洲欧美日本在线 | 黄色毛片视频 | 欧美99 | 亚洲第1页| 在线免费亚洲视频 | 欧美一级久久精品 | 亚洲精品久久久久中文字幕欢迎你 | 一级黄色片美国 | 国产美女一区二区 | 99久久国产免费 | 国产www.| 日韩视频免费看 | 日韩在线不卡视频 | 99精品国产一区二区三区 | 成人在线视频一区 | 午夜精品久久久久久久99黑人 | 福利一区二区在线 | 欧美精品久久久久 | 亚洲精品综合 | 人碰人操 | 天堂久久网 | 亚洲二区视频 | 在线观看电影av | 在线免费黄色小视频 | 中文字幕一区二区三区四区 |