亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果類是類型,那么它們可以保存什么類型的數據?

如果類是類型,那么它們可以保存什么類型的數據?

紫衣仙女 2023-08-16 10:04:40
根據 Coursera 上的講座,類是類型,例如,如果我們有一個名為 Book 的類,我們可以編寫一行代碼 -Book book = new Book("Java",100);這將在堆中創建一些我們稱為對象的數據,并且“Book”類型的變量“book”指向該對象?,F在我的問題是,變量“book”可以有什么樣的值?我嘗試使用打印它System.out.println(book);它打印了這個 -eclipsetest.Book@24d46ca6(“eclipsetest”是我的包的名稱,“Book”是類)那么這里到底發生了什么?編輯:不是重復的,因為我知道如何使用對象打印數據而不會出現亂碼,但我無法理解數據類型可以容納什么類型的數據類。我還嘗試進一步查找,發現類是“引用”數據類型并保存對對象的“引用”。然而,我不明白他們是如何做到的,因為 Java 沒有任何方法像 C 那樣打印內存地址。
查看完整描述

2 回答

?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

事實上,類就是類型,類可以在其中保存其他類型的實例作為其定義的一部分。此類用戶定義類型可以保存其他用戶定義類型(類、枚舉)或內置類型(int、boolean)。


鑒于您發布的示例構造函數,該特定類可能會像這樣定義:


public class Book

{

    private String title;

    private int numberOfPages;


    public Book(String title, int numberOfPages)

    {

        this.title = title;

        this.numberOfPages = numberOfPages;

    }

}

它包含用戶定義類型String(作為標準庫的一部分為您定義的類)和內置類型int。


在嘗試獲取已聲明對象的內容時,您正在嘗試打印它。但是,您的 print 語句正在將有關引用的信息book寫入輸出,而不是轉到實際對象的位置(引用所指向的內容)并打印有關該信息的信息 - 沒有辦法自動執行此操作爪哇。


相反,您將需要重寫內置java.lang.toString()方法,如 @bkbb 所暗示的那樣,以便獲取存儲在對象中的實際信息。嘗試打印時,您需要顯式調用此方法


System.out.println(book.toString());

或者讓它作為字符串操作的一部分自動調用


System.out.println("My book is: " + book);


查看完整回答
反對 回復 2023-08-16
?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

Java中的所有類都是直接或間接派生自java.lang.Object類。您可能還想了解有關 hashCode()、toString()、equals() 方法的更多信息。



查看完整回答
反對 回復 2023-08-16
  • 2 回答
  • 0 關注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號