最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 構造器原理及用法解析

 更新時間:2019年11月02日 10:13:39   作者:jizhiqing  
這篇文章主要介紹了Java 構造器原理及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

導讀

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

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

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

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

沒有使用構造器的開發(fā)日常

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

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

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

import java.util.Random;
public class DiceRoller {
 private int dice = 20;
 private int roll;
 private Random rand = new Random();

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

import java.util.Random;
public class DiceRoller {
 private int dice = 20;
 private int roll;
 private Random rand = new Random();

最后,產(chǎn)生 DiceRoller 類的實例并調用其關鍵函數(shù) Roller:

// main loop
public static void main (String[] args) {
 System.out.printf("You rolled a ");
 DiceRoller App = new DiceRoller();
 App.Roller();
 }
}

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

$ java dice.java
You rolled a 12

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

構造函數(shù)的作用

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

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

import java.util.Random;
public class DiceRoller {
 private int dice; 
 private int roll;
 private Random rand = new Random();
 // constructor
 public DiceRoller(int sides) {
  dice = sides;
 }

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

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

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

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

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

$ java dice.java 20
You rolled a 10
$ java dice.java 6
You rolled a 2
$ java dice.java 100
You rolled a 44

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • java Apache poi 對word doc文件進行讀寫操作

    java Apache poi 對word doc文件進行讀寫操作

    這篇文章主要介紹了Apache poi 對word doc文件進行讀寫操作的相關資料,需要的朋友可以參考下
    2017-01-01
  • 使用Logback設置日志級別

    使用Logback設置日志級別

    這篇文章主要介紹了使用Logback設置日志級別的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java中增強for循環(huán)在一維數(shù)組和二維數(shù)組中的使用方法

    Java中增強for循環(huán)在一維數(shù)組和二維數(shù)組中的使用方法

    下面小編就為大家?guī)硪黄狫ava中增強for循環(huán)在一維數(shù)組和二維數(shù)組中的使用方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • JAVA實戰(zhàn)練習之圖書管理系統(tǒng)實現(xiàn)流程

    JAVA實戰(zhàn)練習之圖書管理系統(tǒng)實現(xiàn)流程

    隨著網(wǎng)絡技術的高速發(fā)展,計算機應用的普及,利用計算機對圖書館的日常工作進行管理勢在必行,本篇文章手把手帶你用Java實現(xiàn)一個圖書管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2021-10-10
  • SpringBoot在接收參數(shù)的七種方式詳解

    SpringBoot在接收參數(shù)的七種方式詳解

    這篇文章主要介紹了SpringBoot在接收參數(shù)的七種方式詳解,隨著前后端的分離,接口方式開發(fā)成為普遍的開發(fā)形式,前端相對于后端來說,常用的接口傳參方式就一定要了解和熟悉,下面?我們梳理了常用的七種?Controller層接受參數(shù)的方式,需要的朋友可以參考下
    2023-10-10
  • 基于spring boot 命令行啟動的一些坑

    基于spring boot 命令行啟動的一些坑

    這篇文章主要介紹了spring boot 命令行啟動的一些坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Spring通過Java配置集成Tomcat的方法

    Spring通過Java配置集成Tomcat的方法

    這篇文章主要介紹了Spring通過Java配置集成Tomcat的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Spring中@PropertySource和@Value注解詳解

    Spring中@PropertySource和@Value注解詳解

    這篇文章主要介紹了Spring中@PropertySource和@Value注解詳解,@PropertySource注解可以方便和靈活的向Spring的環(huán)境容器(org.springframework.core.env.Environment Environment)中注入一些屬性,這些屬性可以在Bean中使用,需要的朋友可以參考下
    2023-11-11
  • 淺談Java基于Consul創(chuàng)建分布式鎖

    淺談Java基于Consul創(chuàng)建分布式鎖

    這篇文章主要介紹了淺談基于Consul創(chuàng)建分布式鎖,Consul是HashiCorp公司推出的開源工具,用于實現(xiàn)分布式系統(tǒng)的服務發(fā)現(xiàn)與配置Consul是分布式的、高可用的、可橫向擴展的,需要的朋友可以參考下
    2023-07-07
  • Java建造者模式構建復雜對象的最佳實踐

    Java建造者模式構建復雜對象的最佳實踐

    建造者模式,是一種對象構建模式?它可以將復雜對象的建造過程抽象出來,使這個抽象過程的不同實現(xiàn)方法可以構造出不同表現(xiàn)的對象。本文將通過示例講解建造者模式,需要的可以參考一下
    2023-04-04

最新評論

锡林浩特市| 固镇县| 新邵县| 浏阳市| 仁化县| 延川县| 枞阳县| 茂名市| 青铜峡市| 晋中市| 偃师市| 渭南市| 宁南县| 民勤县| 浑源县| 肇东市| 林西县| 鸡东县| 南京市| 囊谦县| 梓潼县| 邹城市| 通山县| 通化市| 贵德县| 遵义县| 南康市| 桐庐县| 巫溪县| 海宁市| 富锦市| 永靖县| 丰县| 通江县| 神农架林区| 柯坪县| 军事| 禹城市| 临汾市| 公安县| 抚州市|