问答详情
源自:7-1 什么是 Java 中的封装

很困惑!!求大神指导

public class Room {
	private String description;
	
	public Room(String description) {
		this.description = description;
	}
	
	public static void main(String[] args){
		Room in=new Room("城外");
		System.out.println(in);
	}

}

输出:Room@61de33

我想问的是:怎么让输出的是对象的描述,即“”城外“”!用toString也不行。

提问者:qq_何必忙著為自己解釋_03169832 2016-10-07 14:01

个回答

  • 慕粉3992849
    2016-10-07 14:19:56
    已采纳

    public class Room {

        private String description;

         

        public Room(String description) {

            this.description = description;

        }

         

        public static void main(String[] args){

            Room in=new Room("城外");

            System.out.println(in.description);

        }

    }

       在输入时应该用in.description,而不是in。in是对象,是类中属性的堆内存的存储地址,堆内存的存储地址在栈内存中存储。in指向的是栈内存的地址,所以说输出in显示的是属性的地址。而in.description指的是in对象的description属性所以输出时“城外”,另外toString是数组转化成字符串输出时使用的。