Aspect Oriented Programming (AOP) is a programing paradigm, also referred to as a compliment to Object Oriented Programming (OOP). AOP tries to increase modularity by helping developers separate concerns.
Printing the input and output of methods is the common practice every developer follows to debug the system. And many just leave that print command there. Sometimes these logs also help in tracing any bugs or issues within the system which the customer might otherwise face.
Clearly these print/logging commands are cross-cutting concerns. It is possible to simplify these concerns using AOP.
Read the full article on understanding AOP using Apsectwerkz and implementing the MethodCallTracer.