zoukankan      html  css  js  c++  java
  • 渚漪Day05——注解与反射

    注解

    注解 Annotation

    1.作用

    • 不是程序本身,可以对程序作出解释(类似于注释)

    • 可以被其他程序(编译器)读取

    2.格式

    @Override//重写的注解
    public String toString(){
        retrun super.toString();
    }
    

    还可以添加参数

    3.在哪使用

    可以附加在package,class,method,field,额外辅助信息

    内置注解

    • @Override
    • Deprecated
    • SupressWarnings

    元注解

    • 负责解释其他注解的注解
    1. @Target表示注解在哪个地方

    2. @Retention 表示在什么级别注释,SOURCE<CLASS<RUNTIME

    3. @Document表示是否将注解生成在JAVAdoc中

    4. Inheritd 子类可以继承父类的注解

    自定义主注解

    @interface 自定义注解,

    格式:@interface 注解名{定义内容}

    每一个方法实际上是声明了一个配置参数

    方法名是参数名

    返回值类型是参数的类型(Class,String,enum)

    default声明猜数默认值

    只有一个成员,参数名value()

    注解元素必须要有值

    反射

    Refection,反射机制允许程序在执行期间借助Reflection API取得任何类的内部信息,并能直接操作任何对象的内部属性及方法。

    Class类

    对象.getClass()

    Class.forname()

    类名.Class

    基本内置类型的包装类都有一个Type属性

    对象.getSuperclass

    内存分析

    加载->链接->初始化

    分析类的初始化

    package lesson5;
    
    public class test05 {
        static{
            System.out.println("Main被加载");
        }
    
        public static void main(String[] args) throws ClassNotFoundException {
            //1.主动引用
            Son son = new Son();
    
            //2.反射也会产生主动引用
            Class.forName("lesson5.test05.Son");
    
            //不会产生引用的方法
            System.out.println(Son.b);
    
            Son[] sons = new Son[5];
    
            System.out.println(Son.M);
        }
    }
    class Father{
        static int b =2;
        static {
            System.out.println("父类被加载");
        }
    }
    class Son extends Father{
        static {
            System.out.println("子类被加载");
            m=300;
        }
        static int m = 100;
        static final int M = 1;
    }
    

    .getFields()//只能找到public 属性

    .getDeclaredFields()//找到全部的属性

  • 相关阅读:
    Reporting Services系列三:几个细节
    Tips&Tricks系列一:更改VS2005设置
    Reporting Services系列二:引用.NET DLL
    数据库基础系列之六:因空间不足导致IMP失败
    .NET基础示例系列之十四:C#导出建表语句及数据
    Reporting Services系列四:折叠报表
    数据库基础系列之七:IMP数据到指定的表空间
    .NET基础示例系列之十六:制做进程监视器
    .NET基础示例系列之十九:Dundas For ASP.NET
    .NET基础示例系列之十五:操作Excel
  • 原文地址:https://www.cnblogs.com/ijuysama/p/12690829.html
Copyright © 2011-2022 走看看