栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

小白学java日记day23--反射

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小白学java日记day23--反射

反射的定义
动态获取字节码文件,将成员进行抽象化处理.
Field---对属性的抽象形成的类
Method----对方法的抽象形成的类
Constructor----对构造方法抽象形成的类

反射可以不通过new建立新对象,在不改变测试代码的情况下建立一个新对象

实例案例:

 
测试类:
public class teat {
    public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException {
        //测试
        

        //进阶功能:在不改变test代码的前提下,给电脑新增UPan的功能
        //读取配置文件的信息
        Properties properties=new Properties();
        properties.load(new FileReader("src\Morning\config.properties"));
        for (int i = 0; i < properties.size(); i++) {
            String key="usb"+i;
            String value= properties.getProperty(key);

            //利用反射
           Class cla= Class.forName(value);
           //创建实例对象
            USB usb=(USB) cla.newInstance();
            usb.open();
            usb.close();
        }
    }
}
//建立Keyboard类
public class Keyboard implements USB{
    //打开
    public  void open(){
        System.out.println("打开键盘");
    }
    //关闭
    public void close(){
        System.out.println("关闭键盘");
    }
}

//建立Mouse类
public class Mouse implements USB{
    //打开
    public  void open(){
        System.out.println("打开鼠标");
    }
    //关闭
    public void close(){
        System.out.println("关闭鼠标");
    }
}
//创建NoteBook类
public class NoteBook {
    String name;

    public NoteBook(String name) {
        this.name = name;
    }
    //工作
    public  void work(){
        System.out.println("打自己写的游戏");
    }
    //用鼠标
    //用键盘
    public void useMouse(USB usb){
        usb.open();
        usb.close();
    }
}
//创建UPan类
public class UPan implements USB{

    @Override
    public void open() {
        System.out.println("打开U盘");
    }

    @Override
    public void close() {
        System.out.println("关闭U盘");
    }
}
//创建YinXiang类
public class YinXiang implements USB{

    @Override
    public void open() {
        System.out.println("打开音响");
    }

    @Override
    public void close() {
        System.out.println("关闭音响");
    }
}
//创建接口
public interface USB {
     void open();
    void close();
}
//创建config.properties文件(Morning是当前工程下的一个包名)
usb0=Morning.Mouse
usb1=Morning.Keyboard
//在不改变test代码的前提下,给电脑新增UPan的功能
usb2=Morning.UPan
usb3=Morning.YinXiang


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984273.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号