[英]When i am trying to System.out.println
我為家庭作業項目創建了一個程序,它允許我在運行 EG 后輸入所有數據:名字等。所以我的公共課程如下
public Borrower(String fName, String lName, String lNumber, int numberOfBooks,
String street, String town, String postcode) {
firstName = fName;
lastName = lName;
libraryNumber = lNumber;
noOfBooks = numberOfBooks;
address = new Address(street, town, postcode);
}
然后我有一個部分,例如:
public void printBorrowerDetails() {
System.out.println(firstName + " " + lastName+ "\n" + "\n" +"Library Number: "
+ libraryNumber + "\n" +"Number of loans: " + noOfBooks);
}
我怎么寫才能讓Address
以這種格式打印
FirstName SecondName
street
town
postcode
地址類的代碼在另一個已鏈接的類中,代碼是
public class Address {
private String postcode;
private String street;
private String town;
public Address (String street, String town, String postcode)
{
this.street= street;
this.town= town;
this.postcode= postcode;
}
public String getFullAddress()
{
return street+"\n"+town+"\n"+postcode;
}
public String getPostcode()
{
return postcode;
}
public String getStreet()
{
return street;
}
public String getTown()
{
return town;
}
public void printAddress()
{
System.out.println(street+"\n"+town+"\n"+postcode);
}
public void setFullAddress(String street, String town, String postcode)
{
street= street;
town= town;
postcode= postcode;
}
public void setPostcode(String postcode)
{
this.postcode= postcode;
}
public void setStreet(String street)
{
this.street= street;
}
public void setTown(String town)
{
this.town= town;
}
}
假設您有 Address 的街道、城鎮和郵政編碼的 getter 方法以及地址的私有變量,有兩種方法可以實現這一點:
System.out.println(address.getStreet() + "\n" + address.getTown() + "\n" + getPostcode());
或者
System.out.println(address.getStreet());
System.out.println(address.getTown());
System.out.println(address.getPostcode());
此外,如果您只想打印出地址的詳細信息,您應該盡量將其保留為地址,而不是為了良好實踐而包括借款人。 如果您真的想打印出FirstName
和LastName
,您需要將這些值傳遞給Address
構造函數,但它不再只是Address
。
System.out.print(FirstName + " " + SecondName + "\n");
System.out.println(street + "\n" + town + "\n" + postcode);
你必須使用打印功能而不是 println 來完成這項工作......
您可以使用 Java API 中的MessageFormat 類。 例如:
String result = MessageFormat.format(
"{0} {1} \n {2} \n {3} \n {4}",
borrower.firstName, Borrower.secondName, address.street, address.town, address.postcode);
使用對象的 getter 方法。
System.out.println(address.getStreet());
System.out.println(address.getTown());
System.out.println(address.getPostcode());
private streetname;
private townname;
private postnumber;
public void address(string street,string town,int postcode){
streetname=street;
townname=town;
postnumber=post;
System.out.println(streetname +"\n"+ townname +"\n"+ postnumber);
}
您可以做的另一件事是將 toString() 方法調用到您的 Address 類。 toString 實際上是每個對象都使用的方法(Object 超類 iirc 的一部分),每當您嘗試使用 System.out.print 打印對象時,都會自動調用它。 但是,默認情況下,此方法返回 hashcode ,在您的情況下我們不想要。 因此,您必須通過向對象類添加新的 toString 方法來覆蓋默認值,如下所示。
public class Address{
.
.
.
public String toString(){
return street + "\n" + town + "\n" + postcode;
}
}
那么當你使用
System.out.println(address);
它將按照對象的 toString() 方法中的指定進行打印。 你也可以把它寫成
System.out.println(address.toString());
雖然就像我說的,這並不是真正必要的,因為 java 知道調用 toString() 方法。
toString() 可以實時節省時間,並在您要打印多個對象時減少混亂。
-編輯-
值得指出的是,您也可以為 Borrower 類執行此操作。
public class Borrower{
.
.
.
public String toString(){
return fName + " " + lName + "\n\nLibrary Number: " + libraryNumber
+ "\nNumber Of Loans: " + noOfBooks + "\n" + address;
}
}
然后在您的主代碼中,只需輸入...(為了演示,假設您稱您的借款人為“借款人”)
System.out.println(borrower);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.