Concurrent programming with shared memory in an object-oriented language such as Java is notoriously difficult. Therefore, it is important to study new program understanding techniques for concurrent object-oriented languages. This paper studies shared objects in open concurrent Java programs. First, it proposes a classification of shared objects into three categories: central, owned and distributed. Second, it presents a new static analysis that infers central, owned and distributed objects, as well as experiments with the analysis.