Program slicing has been used for efficient program debugging activities. Program slice is computed by analyzing dependence relations between program statements. We can divide dependence analyses into two categories, static and dynamic; the former requires little analysis costs, but the resulting slices are large. The latter has opposite characters. In this paper, we propose a program slicing method for Object-Oriented programs and evaluate its effectiveness with some JAVA programs. Since Object-Oriented languages have many dynamically determined elements, static analysis could not compute practical analysis results. Our method uses static and dynamic analyses appropriately and computes accurate slices with lightweight costs.