1、

package reflectionZ;

import java.lang.reflect.Constructor;
import java.util.List; public class Treflection01
{
public static void main(String[] args) throws Exception
{
// 第13课 Class<?> clazz1 = Class.forName("reflectionZ.Cat");
// 使用反射 生成对象
// ZC: 创建出来的对象,使用的时候 需要处理 :
// ZC: (1)、强转成 某类的对象
// ZC: (2)、继续用反射来操作这个 对象 // 使用的是 默认的 构造函数
clazz1.newInstance(); // 强转 // 通过Class对象来得到构造函数
Constructor c1 = clazz1.getConstructor(Class.forName("java.lang.String"), int.class);
Cat cat1 = (Cat)c1.newInstance("小猫", 6); // 强转
cat1.Show(); Constructor<?> c2 = clazz1.getConstructor(String[].class);
String[] foods = {"鱼", "老鼠"};
// Exception in thread "main" java.lang.IllegalArgumentException: wrong number of arguments
//Cat cat2 = (Cat)c2.newInstance(foods); // 强转
// 可变参数 ==> 拆散 --> String[] foods==>拆成foods[0],foods[1],...
// ZC: 可是,普通的函数调用,没有这种情况的啊,为啥Constructor.newInstance(...)会这样?
Cat cat2 = (Cat)c2.newInstance((Object)foods); // 强转
cat2.Show();
}
} class Cat
{
public Cat()
{}
public Cat(String _strName, int _iAge)
{
FstrName = _strName;
FiAge = _iAge;
}
public Cat(String[] _foods)
{
Ffoods = _foods;
} public String FstrName;
public void setFstrName(String fstrName)
{
System.out.println("setFstrName("+fstrName+")");
FstrName = fstrName;
}
public int FiAge;
public String[] Ffoods = null;
private String Fstr1 = "WW"; public void Show()
{
System.out.println("名字 : "+FstrName);
if (Ffoods != null)
for (int i=0; i<Ffoods.length; i++)
System.out.println("Ffoods["+i+"] : "+Ffoods[i]);
}
public void Show(String _strName)
{
System.out.println("名字 : "+_strName);
}
public void Show(String _strName, int _iAge)
{
System.out.println("名字 : "+_strName+" , 年龄 : "+_iAge);
}
public void Show(List _list)
{
if (_list == null)
{
System.out.println("输入的_list == null .");
return;
}
for (int i=0; i<_list.size(); i++)
System.out.println("_list["+i+"] : "+_list.get(i));
}
private void Show(int _iAge)
{
System.out.println("年龄 : "+_iAge);
}
}

2、

Treflection01_Class对象_构造函数_创建对象的更多相关文章

  1. 虚函数_构造函数_测试_VS2010x86

    1.控制台测试代码: #include <stdio.h> #include <windows.h> class A { public: A() { printf(" ...

  2. C++_基础_类和对象2

    内容: (1)构造函数 (2)初始化列表及其必要性 (3)支持自定义类型转换的构造函数 (4)this指针 (5)const对象和成员函数 (6)析构函数 1.构造函数1.1 格式: class 类名 ...

  3. 易语言关于使用CURL,网页_访问,网页_访问S,网页_访问_对象,鱼刺(winHttpW)发送Get性能测试

    易语言关于使用 CURL,网页_访问,网页_访问S,网页_访问_对象,鱼刺(winHttpW)发送Get性能测试 测试模块情况: |-精易模块5.8  |-鱼刺类Http  |-libCURL +++ ...

  4. C++_构造函数与析构函数

    构造函数与析构函数 OOP第二课 1 构造函数 1.1 构造函数具有一些特殊的性质 1.2 定义构造函数的一般形式 1.3 利用构造函数创建对象 2 成员初始化表 3 缺省参数的构造函数 4 重载构造 ...

  5. C++_基础_类和对象

    内容: (1)引用 (2)类型转换 (3)C++社区给C程序员的建议 (4)面向对象编程的概念 (5)类和对象 (6)构造函数 (7)初始化列表及其必要性 1.引用1.1 指针和引用的使用说明(1)指 ...

  6. (79)Wangdao.com第十五天_JavaScript 对象的继承_prototype原型对象_封装_函数式编程

    javascript 内置了许多 function 函数(){...} js 执行首先就会执行自己内置的函数定义 (function Function.function Object) 对象的继承 大 ...

  7. JS基础_构造函数

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节

    C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形界面 ...

  9. 转:HIBERNATE一些_方法_@注解_代码示例---写的非常好

    HIBERNATE一些_方法_@注解_代码示例操作数据库7步骤 : 1 创建一个SessionFactory对象 2 创建Session对象 3 开启事务Transaction : hibernate ...

随机推荐

  1. Codeblocks自动代码格式化+快捷键

    Codeblocks自动代码格式化+快捷键 - u010112268的博客 - CSDN博客 https://blog.csdn.net/u010112268/article/details/8110 ...

  2. transaction 数据库事务 roolback 回滚

    事务是恢复和并发控制的基本单位 https://baike.baidu.com/item/数据库事务/9744607 事务有三种模型: 1.隐式事务是指每一条数据操作语句都自动地成为一个事务,事务的开 ...

  3. 在.NET中读取嵌入和使用资源文件的方法

    转http://www.jb51.net/article/84660.htm 本文分别介绍了使用GetManifestResourceStream读取嵌入资源,和使用. resx资源文件嵌入资源,希望 ...

  4. Linux基础命令(三)

    作业一:1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group >/1.txt 2) 将用户信息数据库文件和用户 ...

  5. 事件对象event之e.targtet || e.srcElement

    p.onclick = function (event) { var e = event || window.event, target = e.target ? e.target : e.srcEl ...

  6. Python 爬虫 学习一

    # coding: utf8 import requests from bs4 import BeautifulSoup PhotoName = 1 DATA = [] def save_img(ur ...

  7. 列表(List) 的增删改查及其他方法

    一.列表的简介   列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[ ]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:li = ...

  8. python库numpy的reshape的终极解释

    a = np.arange(2*4*4) b = a.reshape(1,4,4,2)           #应该这样按反序来理解:最后一个2是一个只有2个元素的向量,最后的4,2代表4×2的矩阵,最 ...

  9. tornado下的跨站请求伪造(防护)

    跨站请求伪造(防护) 任何Web应用所面临的一个主要安全漏洞是跨站请求伪造,通常被简写为CSRF或XSRF,发音为"sea surf".这个漏洞利用了浏览器的一个允许恶意攻击者在受 ...

  10. POJ1276:Cash Machine(多重背包)

    题目:http://poj.org/problem?id=1276 多重背包模板题,没什么好说的,但是必须利用二进制的思想来求,否则会超时,二进制的思想在之前的博客了有介绍,在这里就不多说了. #in ...