Instruct: Identify the main and secondary category of Arxiv papers based on the titles and abstracts
Query: How and When to Flatten Java Classes?   Improving modularity and reusability are two key objectives in
object-oriented programming. These objectives are achieved by applying several
key concepts, such as data encapsulation and inheritance. A class in an
object-oriented system is the basic unit of design. Assessing the quality of an
object-oriented class may require flattening the class and representing it as
it really is, including all accessible inherited class members. Thus, class
flattening helps in exploring the impact of inheritance on improving code
quality. This paper explains how to flatten Java classes and discusses the
relationship between class flattening and some applications of interest to
software practitioners, such as refactoring and indicating external quality
attributes.

12
The categories of this paper are: nucl-th
36
The categories of this paper are: cmp-lg
19
The categories of this paper are: eess
7
The categories of this paper are: hep-th
25
The categories of this paper are: patt-sol
37
The categories of this paper are: supr-con
16
The categories of this paper are: stat
4
The categories of this paper are: cond-mat
3
The categories of this paper are: physics
2
The categories of this paper are: math
9
The categories of this paper are: nlin
15
The categories of this paper are: nucl-ex
31
The categories of this paper are: ao-sci
30
The categories of this paper are: q-alg
14
The categories of this paper are: math-ph
8
The categories of this paper are: hep-ex