簡體   English   中英

Java打印對象,封裝

[英]Java printing an object, encapsulation

我需要使用封裝打印3個變量,並且無法修改主類。

主類聲明變量[cylinders,make,owner],並想要創建和打印具有如下參數的對象:

System.out.println (new Vehicle (cylinders, make, owner)); //create Vehicle object

對象應該接受變量並打印出一個簡單的句子。

現在,我的代碼“有效”:

import java.util.*;
public class Vehicle{
int var;
int var2;
double var3;
String var4;
String var5;
String tots;

public Vehicle (int cylinders, String make,String owner){
var2=cylinders;
var4=make;
var5=owner;
System.out.println(var4+", "+ var2+ " cylinders, "+"owned by "+ var5 );
}
}

它在主程序中打印該語句,但是在打印時,它在“ Vehicle @ 3d434234”之后打印一個奇怪的值,該值似乎是類名,后跟某種哈希/十六進制值。

如果我拿出打印報表

System.out.println(var4+", "+ var2+ " cylinders, "+"owned by "+ var5 );

然后它將僅返回“ Vehicle @ 3d434234”

如何停止打印類的哈希值,

請記住,我無法修改

System.out.println (new Vehicle (cylinders, make, owner));

謝謝!

您需要為其覆蓋toString方法:

在您的Vehicle類中編寫以下方法:

public String toString(){

 return var4+", "+ var2+ " cylinders, "+"owned by "+ var5;
}

請注意,變量var4等是在Vehicle類中定義的變量。

您需要為要以String表示法打印其對象的類重寫toString方法。

喜歡

class Name{ 
       private String name;

        public Name(String name){
         this.name=name;
       }


       public String toString(){
          return this.name;
      }
       public static void main(String args[]){
            System.out.println(new Name("yourname"))   //output "yourname"    
       }

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM