java - System.out.println(refVar name) 的控制台显示

标签 java

System.out.println(refVar name) 如何给出此示例网站显示的输出?我明白为什么显示“Simcard 对象构造”,但为什么其余字段以特定顺序显示:“为诺基亚 1100 构造的新 Sim 卡”。

我的理解是,字段不能仅仅通过调用引用名称来输出。

( http://www.hubberspot.com/2012/07/how-composition-has-relationship-works.html )

class SimCard {

   private String cardNumber;

   public SimCard(){

 System.out.println("SimCard Object Constructed");
 cardNumber = "New SimCard Constructed";

   }

   @Override
   public String toString() {

 return cardNumber;

   } 
             }

public class Mobile {

   private SimCard sim = new SimCard();
   private String mobile = "Nokia";
   private int model = 1100;

   @Override
   public String toString() {

 return sim + " for " + mobile + " " + model;

   }

   public static void main(String[] args) {

 Mobile mob = new Mobile();
 System.out.println(mob);

       }

  }

最佳答案

当您创建新实例时,手机/模型就会被创建

Mobile mob = new Mobile()

它们被设置为类中指定的默认值。
然后,当您输出该类时,会调用覆盖的 String 方法,该方法将输出返回到 main 并进行打印。

关于java - System.out.println(refVar name) 的控制台显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25172547/

相关文章:

java - 如何搜索内容与另一个数组匹配的一个数组?

java - 从文件属性中检索标签列表

java - Android 应用程序示例应用程序在包含项目依赖项后崩溃

java - 如何防止 TCP 数据包被丢弃?

java - 为什么我的冒泡排序方法不起作用?

java - 困惑 - 断言适当的用法

java - cvc-complex-type.2.4.c : The matching wildcard is strict, 但找不到元素 'cache:annotation-driven' 的声明

java - @Transactional 不适用于 spring 和 hibernate(如果没有 Activity 事务,get 无效)

java - 如何修复列索引超出范围 SQLException

java - 单击时填充单元格