Java連載143-三種系統註解

1、註解功能

  • 用處:類、構造方法、成員方法、方法、參數等聲明中
  • 特性:不影響程序的正常執行,可是會對編譯器等輔助工具產生影響
  • 定義:添加到Java程序代碼上,用來作一些說明和解釋

1.元數據

  • 定義:用於描述數據的一種數據
  • 可以使用註解來描述元數據。

2.註解

  • 又稱爲標註,屬於程序的元數據,也是程序代碼的標記。
  • 得到時間:編譯、加載類和運行
  • 使用反射能夠對程序代碼進行分析
  • 使用系統定義的注意,能夠在編譯時對程序進行檢查
  • 使用元註解,能夠生成相應的文檔
  • 用在的地點:包、類、字段、方法、局部變量、方法參數的前面
  • 使用方法:@註解

3.Java內置三種註解

(1)@Override

  • 做用:用於修飾方法,也就是對父類中的方法進行重寫
  • 是否重寫時必須加上:否
  • 建議在重寫方法的時候加上這個註解,便於編譯器進行檢查是否重寫錯誤。
  • 例子省略

(2)@Deprecated

  • 做用:用於註解再也不使用已通過時的類、方法、屬性
  • 使用位置:類、方法、屬性前面
@Deprecated
/**
@deprecated這個類存在缺陷,使用新的NewDeprecatedTest類替代它
*/

public class DeprecatedTest{
 //類體
}

(3)@SuppressWarnings

  • 做用:用於一致編譯器生成警告信息
  • 使用位置:類、方法、方法參數、屬性和局部變量
  • 經常使用方式:當一個方法調用了一個過期的方法或者進行不安全的類型轉換的時候,編譯器會生成警告,該註解能夠一致警告
public class SuWarningsTest{
 public static void main(String[] argsl){
  @SuppressWarnings(values={"deprecation"})
  //引用過期的類
  DeprecatedTest dtest = new DeprecatedTest();
  System.out.println(dtest);
 }
}

4.咱們對三種註解進行舉例

package com.bjpowernode.java_learning;

public class D143_1_SuperClass {
 //對域var進行註解,表示var已通過時,雖然var已通過時,可是仍然可用
 @Deprecated
 int var = 125;
 
 @Deprecated
 public void MethodA() {
  System.out.println("我是父類中中的MethodA()方法");
 
 }
 
 public void MethodB() {//定義一個方法用於子類重寫
  System.out.println("我是父類中中的MethodB()方法");
 }

}
package com.bjpowernode.java_learning;

public class D143_2_SubClass extends D143_1_SuperClass{
 
 @Override
 public void MethodB() {
  System.out.println("子類重寫了父類的MethodB方法");
 }
}

package com.bjpowernode.java_learning;

import java.util.LinkedList;

public class D143_3_Test {
 public static void main(String[] args) {
  D143_1_SuperClass superObj = new D143_1_SuperClass();
  superObj.MethodA();
  System.out.println(superObj.var);
  
  D143_2_SubClass subObj = new D143_2_SubClass();
  subObj.MethodB();
  
  //下面的註釋用於抑制其下面的語句的編譯警告信息
  //若是去掉註解,則編譯時會出現警告信息
  @SuppressWarings("rawtypes")
  LinkedList list = new LinkedList();
  
  //下面兩條語句沒有加@SuppressWarnings,編譯時會出現警告信息
  list.add(123);
  list.add("Beijing");
  for(int i=0;i<2;i++) {
   System.out.println(list.get(i));
  }
 }
}

2、源碼:

  • D143_1_SuperClass.java
  • D143_2_SubClass.java
  • D143_3_Test.java
  • https://github.com/ruigege66/Java/blob/master/D143_1_SuperClass
  • https://github.com/ruigege66/Java/blob/master/D143_2_SubClass.java
  • https://github.com/ruigege66/Java/blob/master/D143_3_Test.java
  • https://github.com/ruigege66/Java/tree/master/ibank
  • CSDN: https://blog.csdn.net/weixin_44630050
  • 博客園: https://www.cnblogs.com/ruigege0000/
  • 歡迎關注微信公衆號:傅里葉變換,我的帳號,僅用於技術交流
  • 1000.0
    1000.0
相關文章
相關標籤/搜索