package com.craftinginterpreters.lox; import java.util.HashMap; import java.util.Map; class LoxInstance { private LoxClass klass; private final Map fields = new HashMap<>(); LoxInstance(LoxClass klass) { this.klass = klass; } Object get(Token name) { if (fields.containsKey(name.lexeme)) { return fields.get(name.lexeme); } LoxFunction method = klass.findMethod(name.lexeme); if (method != null) return method.bind(this); throw new RuntimeError(name, "Undefined proprety '" + name.lexeme + "'."); } void set(Token name, Object value) { fields.put(name.lexeme, value); } @Override public String toString() { return klass.name + " instance"; } }