🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # 包、接口、类、对象和切面案例代码 >在下面的代码中,使用了包、接口、类、对象和切面等概念,并对每个概念进行了详细的注释说明。 ``` package com.example.package; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.stereotype.Component; // 定义切面。使用了AspectJ注解@Aspect和Spring注解@Component。其中,使用@Before注解定义了一个前置通知,切点为com.example.package.MyClass中的所有方法,当这些方法被调用时,logBefore()方法会被先调用,输出方法名和相关信息。 @Aspect @Component public class LoggingAspect { // 前置通知 @Before("execution(* com.example.package.MyClass.*(..))") public void logBefore(JoinPoint joinPoint) { System.out.println("Method " + joinPoint.getSignature().getName() + " is called."); } } // 定义接口 public interface MyInterface { public void doSomething(); } // 定义抽象类 public abstract class MyAbstractClass { protected String name; public MyAbstractClass(String name) { this.name = name; } public abstract void sayHello(); } // 定义子类继承抽象类并实现接口 public class MyClass extends MyAbstractClass implements MyInterface { private int age; public MyClass(String name, int age) { super(name); this.age = age; } public void sayHello() { System.out.println("Hello, " + name + ", age " + age); } public void doSomething() { System.out.println("Doing something..."); } // 对象封装 public int getAge() { return age; } public void setAge(int age) { this.age = age; } // 对象重用 public void doSomethingElse() { System.out.println("Doing something else..."); } // 多态 public void doSomething(int num) { System.out.println("Doing something " + num + " times..."); } } // 主程序 public class Main { public static void main(String[] args) { // 创建对象 MyClass obj = new MyClass("John", 25); // 调用对象方法 obj.sayHello(); // 输出 Hello, John, age 25 obj.doSomething(); // 输出 Doing something... // 对象封装 obj.setAge(30); System.out.println("Age: " + obj.getAge()); // 输出 Age: 30 // 对象重用 MyInterface obj1 = obj; obj1.doSomething(); // 输出 Doing something... ((MyClass)obj1).doSomethingElse(); // 输出 Doing something else... // 多态 MyAbstractClass obj2 = obj; obj2.sayHello(); // 输出 Hello, John, age 30 obj2.doSomething(3); // 输出 Doing something 3 times... ```