亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

java反射機制實例(Merry Christmas!實例)

標簽:
Java

package cn.ycpower.reflaction;

import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Arrays;

/**

  • 圣诞节 反射的应用
  • @author 蜗牛
  • */
    public class Christmas {
    public String Santa;//圣诞老人
    public String sled;//雪橇
    public String deer;//麋鹿
    private String name;//男孩名称
    protected String[] gift;//男孩想要得到的礼物

    public void like(){
    System.out.println("一个名叫"+name+"的小孩,他希望圣诞老人带给他的礼物有:"+Arrays.toString(gift));
    }

    //定义方法
    public String desc(String Santa,String deer,String sled){
    System.out.println(Santa+"踩着"+sled+",骑着"+deer);
    return "圣诞老人很高兴的来到了我家";
    }

    public Christmas(){
    System.out.println("圣诞节的无参构造方法");
    }
    public Christmas(String CstGift,String CstTree, String CstWish){
    System.out.println("圣诞节的有参数的构造方法");
    System.out.println("圣诞礼物:"+CstGift);
    System.out.println("圣诞装饰:"+CstTree);
    System.out.println("圣诞祝福:"+CstWish);

    }
    public static void main(String[] args) throws Exception{
    //1得到元类
    Class clz=Christmas.class;

    System.out.println("-------得到圣诞节的构造方法---------");
    //2,得到构造的方法
    Constructor c=clz.getDeclaredConstructor();
    //3,调用
    c.newInstance();//得到无参数的构造方法
    Constructor c2=clz.getDeclaredConstructor(String.class,String.class,String.class);
    c2.newInstance("圣诞老人","圣诞树","merry Christmas!");//得到有参数的构造方法
    
    System.out.println("=========得到圣诞节的方法==========");
    //2,得到方法
    Method ms=clz.getDeclaredMethod("desc", String.class,String.class,String.class);
    //3,调用方法
    String str=(String)ms.invoke(clz.newInstance(), "圣诞老人","雪橇","麋鹿");
    System.out.println(str);
    
    System.out.println("-------得到圣诞节中的一些属性----------"); 
    //得到对象
    Christmas boy=(Christmas)clz.newInstance();
    //得到属性
     Field f_name=clz.getDeclaredField("name");
     f_name.setAccessible(true);//私有属性必须开启访问开关
     f_name.set(boy, "汤姆");
    
     Field f_gift=clz.getDeclaredField("gift");
     f_gift.set(boy, new String[]{"糖果","苹果","手套","圣诞帽子"});
    
     Method m=clz.getDeclaredMethod("like");
     //执行方法
     m.invoke(boy);

    }

}

點擊查看更多內容
2人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
24
獲贊與收藏
840

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消