[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...
```
- 系統設計
- 需求分析
- 概要設計
- 詳細設計
- 邏輯模型設計
- 物理模型設計
- 產品設計
- 數據驅動產品設計
- 首頁
- 邏輯理解
- 微服務架構的關系數據庫優化
- Java基礎架構
- 編程范式
- 面向對象編程【模擬現實】
- 泛型編程【參數化】
- 函數式編程
- 響應式編程【異步流】
- 并發編程【多線程】
- 面向切面編程【代碼復用解耦】
- 聲明式編程【注解和配置】
- 函數響應式編程
- 語法基礎
- 包、接口、類、對象和切面案例代碼
- Springboot按以下步驟面向切面設計程序
- 關鍵詞
- 內部類、匿名類
- 數組、字符串、I/O
- 常用API
- 并發包
- XML
- Maven 包管理
- Pom.xml
- 技術框架
- SpringBoot
- 項目文件目錄
- Vue
- Vue項目文件目錄
- 遠程組件
- 敏捷開發前端應用
- Pinia Store
- Vite
- Composition API
- uniapp
- 本地方法JNI
- 腳本機制
- 編譯器API
- 注釋
- 源碼級注釋
- Javadoc
- 安全
- Swing和圖形化編程
- 國際化
- 精實或精益
- 精實軟件數據庫設計
- 精實的原理與方法
- 項目
- 零售軟件
- 擴展
- 1001_docker 示例
- 1002_Docker 常用命令
- 1003_微服務
- 1004_微服務數據模型范式
- 1005_數據模型
- 1006_springCloud
- AI 流程圖生成
- Wordpress_6
- Woocommerce_7
- WooCommerce常用的API和幫助函數
- WooCommerce的鉤子和過濾器
- REST API
- 數據庫API
- 模板系統
- 數據模型
- 1.Woo主題開發流程
- Filter
- Hook
- 可視編輯區域的函數工具
- 渲染字段函數
- 類庫和框架
- TDD 通過測試來驅動開發
- 編程范式對WordPress開發
- WordPress和WooCommerce的核心代碼類庫組成
- 數據庫修改
- 1.WP主題開發流程與時間規劃
- moho
- Note 1
- 基礎命令