An Aspect is a Java class that encapsulates one or more advices (logic like logging, security, transactions) applied to multiple points in an application. A pointcut defines WHERE advice is applied, and a join point is a specific execution point where advice can be applied. The aspect class contains both pointcuts and advices.