2024/7/2总结

反射:

反射是 Java 的一种特性,它可以让程序在运行时获取自身的信息,并且动态地操作类或对象的属性、方法和构造器等。通过反射功能,可以让我们在不知道具体类名的情况下,依然能够实例化对象,调用方法以及设置属性。
反射的特点
反射具有以下几个特点:
动态性:反射允许程序在运行期间动态地创建对象、调用方法和修改属性。
类型检查问题:虽然反射可以使用某个类的任何方法或属性,但是编译器在编译时并不会检查这些方法或属性是否可用。
性能问题:反射的性能比直接调用方法要差。因为在使用反射时,需要先获取方法或变量的引用,然后再进行调用或访问。
安全性问题:反射破坏了封装¥,可以对私有成员进行访问和修改

源代码阶段用第一种,加载阶段用第二种,运行阶段用第三种

反射获取构造方法

 public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException {
        Class classes = Class.forName("com.itheima.temp.temp3");

        Constructor[] cons = classes.getConstructors();
        for (Constructor con : cons) {
            System.out.println(con);
        }

        System.out.println();
        Constructor[] con2 = classes.getDeclaredConstructors();
        for (Constructor con : con2) {
            System.out.println(con);
        }
        System.out.println();


        Constructor con3 = classes.getDeclaredConstructor(int.class);
        Parameter[] parameters = con3.getParameters();
        for (Parameter parameter : parameters) {
            System.out.println(parameter);
        }


        System.out.println();
        Field[] fileed = classes.getDeclaredFields();
        for (Field field : fileed) {
            System.out.println(field);
        }
    }

反射获取成员变量

        //获取类的字节码文件对象    
        Class c = Class.forName("com.itheima.temp.temp3");
        
        //获得该对象的公共成员变量
        Field[] f = c.getFields();
        //遍历
        for(Field fie : f){
            System.out.println(fie);
        }

        //获取类的字节码文件对象    
        Class c = Class.forName("com.itheima.temp.temp3");
      //获取该类的所有成员变量
        Field[] f = c.getDeclaredFields();
        for(Field fie : f){
            System.out.println(fie);
        }

        //获取类的字节码文件对象    
        Class c = Class.forName("com.itheima.temp.temp3")
        //获取单个公共的成员变量
        Field f = c.getField("address");
        System.out.println(f);


        //获取类的字节码文件对象    
        Class c = Class.forName("com.itheima.temp.temp3");
        //获取单个成员变量(所有类型)
        Field f = c.getDeclaredField("name");
        System.out.println(f);

反射获取成员方法

css样式:

 <!-- 行内样式: <h1 style="color: red;">焦点访谈:中国底气 新思想夯实大国粮仓</h1> -->


  <!-- 方式二:内嵌样式 -->
 <style>
        h1{
            /* color: rgb(255,0,0); */
            /* color: #ff0000; */
            color: #4d4f53;
        }
</style>


 <!-- 方式三:外联样式 -->
    <!-- <link rel="stylesheet" href="./02.new_.css"> -->


02.new_.css:
h1{
    color: red;
}

标签运用:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    <title>焦点访谈:中国底气 新思想夯实大国粮仓</title>
    <!-- 方式二:内嵌样式 -->
     <!-- 给所有的h1都换上字体颜色red -->

    <style>
        h1{
            /* color: rgb(255,0,0); */
            /* color: #ff0000; */
            color: #4d4f53;
        }

        .cls{
            color: #e3208b;
            
        }
        #xxx{
            color: #968d92;
            font-size: 13px;

        }
        /* id选择器优先级大于类选择器大于元素选择器 */

        a{
            color: black;
            text-decoration: none;
        }
        
        p{
            text-indent: 35px;/* 给段落首行缩进35像素 */
            line-height: 40px;/* 给段落设置每行的行高 */
        }
    </style>

    <!-- 方式三:外联样式 -->
    <!-- <link rel="stylesheet" href="./02.new_.css"> -->
</head> 
<body>

    <img src="../imageproject/b817-ikcaceq8683059.jpg" width="200px" height="60"> <a href="http://gov.sina.com.cn" target="_self">新浪政务</a> >正文
    <h1>焦点访谈:中国底气 新思想夯实大国粮仓</h1>
    <!-- 行内样式: <h1 style="color: red;">焦点访谈:中国底气 新思想夯实大国粮仓</h1> -->
    <hr>
    <span id="xxx" class="cls">2023年03月02日21:50</span> <span><a href="https://blog.csdn.net/?spm=1001.2101.3001.4477" target="_blank">央视网</a></span>
    <hr>

    <!-- 正文 -->
    <!-- 视频 -->
     <video src="../video/这是视频.mp4" controls="controls" width="950px"></video>

    <!-- 音频 -->
     <audio src="../audio/这是音频.mp3" controls="controls"></audio>
    </body>
</html> 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值