Java程序设计之Constructor

  插入段代码,下次回忆吧。

  先新建一个Person类,代码如下:

public class Person {

    private String name ;
    private int age;
    public Person(){

    }

    public Person(String name,int age){
        this.name = name ;
        this.age = age;
    }

    Person(String name){
        this.name = name;
    }

    private Person(int age){
        this.age = age;
    }

    public String getName(){
        return name;
    }

    public void setName(String name){
        this.name = name;
    }

    public int getAge(){
        return age;
    }

    public void setAge(int age){
        this.age = age;
    }
    public String toString(){
        return "姓名"+this.getName()+",年龄"+this.getAge();
    }
}

  里面包含了各种构造方法和方法,下面构造一个ConstructorDemon类(注意两个类必须在同一个包下),进行演示:

public class ConstructorDemon {

    public static void main(String[] args) {

        try {
            Class<?> c = Class.forName("Person");
            //获得所有公有的构造方法
            System.out.println("所有共育肚饿构造方法");
            Constructor[] constructor = c.getConstructors();
            for(int i = 0;i<constructor.length;i++){
                System.out.println(constructor[i].toGenericString());
            }

            //获得指定参数类型公有的参数方法
            System.out.println("获得指定类型的公有的构造方法");
            try {
                Constructor constru = c.getConstructor(new Class[]{String.class,int.class});
                System.out.println(constru.toGenericString());
            } catch (Exception e) {
                // TODO Auto-generated catch block
                System.out.println("指定类型的构造方法不存在!");
            } 

            //获得指定的参数类型的公有方法,不限制访问级别
            System.out.println("获得指定类型的公有的构造方法,不限制访问级别");
            try{
                Constructor constru = c.getDeclaredConstructor(new Class[]{int.class});
                System.out.println(constru.toGenericString());//这里获得了一个私有的构造方法
            }catch(Exception e){
                e.printStackTrace();
            }

            //获得所有的构造方法
            System.out.println("获得所有的构造方法");
            constructor = c.getDeclaredConstructors();
            for(int i = 0;i<constructor.length;i++){
                System.out.println(constructor[i].toGenericString());
            }

        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

  点击运行之后,运行结果如下:

所有共育肚饿构造方法
public Person(java.lang.String,int)
public Person()
获得指定类型的公有的构造方法
public Person(java.lang.String,int)
获得指定类型的公有的构造方法,不限制访问级别
private Person(int)
获得所有的构造方法
private Person(int)
Person(java.lang.String)
public Person(java.lang.String,int)
public Person()

时间: 2024-10-06 02:29:34

Java程序设计之Constructor的相关文章

The WAY to 优化JAVA程序设计和编码,提高JAVA性能

通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化.一般有两种方案:即优化代码或更改设计方法.我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能.而一个设计良好的程序能够精简代码,从而提高性能. 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧. 1.对象的生成和大小的调整. JAVA程序设计中一个普遍的问题就是没有好好的利用JAVA语言本身提供的函数,从而常常会生成大量的对象(或实例)

20172320 2017-2018-2 《Java程序设计》第八周学习总结

20172320 2017-2018-2 <Java程序设计>第八周学习总结 教材学习内容总结 1.绑定多数情况下发生在编译阶段 2.被延迟的请求事件成为后绑定或动态绑定,后绑定的效率低于编译阶段的绑定效率 3.多态性引用:继承方式和接口方式 4.一个引用变量可以指向有继承关系的任何类的任何对象 5.实际将调用的方法版本取决于对象的类型而不是引用变量的类型 6.一个接口引用变量可以指向实现该接口的任何类的任何对象 7.选择法排序通过相继的将各值放在自己的最终位置,插入排序法是不断地将一个新元素

201671010110 2016-2017-2《java程序设计》

第四周的java学习也已经过去了,这学期新的编程语言老师翻转课堂新的教学方法都是一种全新的挑战与学习的过程.四周时间也学了四个章节的内容,前三章内容和c语言有很多的相似之处,经过上学期对c的学习理解前三章内容不是很难,第四章的类与对象是一个很重要的章节当然也有一定的难度,老师在周四周五的课堂上也对前四章内容做了复习,讲了很多习题.周末对第五章的内容通过幻灯片有了一定的学习了解. 继承它是用已有类来构建新类的一种机制.当定义了一个新类继承了一个类时,它继承了这个类的方法和域,同时在新类中添加了新的

20155208徐子涵 2016-2017-2 《Java程序设计》第6周学习总结

20155208徐子涵 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 10.1.1 1.Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象. 2.若要将数据从来源中取出,可以使用输入串流:若要将数据写入目的地,可以使用输出串流.在java中,输入串流代表对象为java.in.InputStream的实例:输出串流代表对象为java.io.Outputstream的实例. 3.read()方法每次尝试读取数据,并返回实际读入的,只要不是负一

20155336 2016-2017-2《JAVA程序设计》第一周学习总结

# 20155336  2016-2017-2<JAVA程序设计>第1周学习总结 ## 教材学习内容总结 开学的第一周,带着些许的欣喜和好奇,听完了老师的第一堂课.说心里话学习JAVA仿佛观看一部英文影视作品一样头疼, 因为总会有许许多多相似的名字让你记得晕头转向.JAVA也是一样,什么JVM啊JRE啊JDK啊 (/(ㄒoㄒ)/~~)  等等一系列 的英文缩写,让人心神意乱~~但总体上对JAVA有了一个初步的了解.通过课上老师的介绍以及课下对JAVA书第一章的浏览, 我简单的了解了JAVA艰辛

20155335俞昆《java程序设计》第十周总结

学号 2016-2017-2 <Java程序设计>第十周学习总结 ## 事实上网络编程,我们可以简单的理解为两台计算机相互通讯数据而已,对于程序员而言,掌握一种编程接口并使用一种编程模型相对而言就简单多了,javaSDK提供了一些相对简单的Api来完成12这些工作,Socket就是其中之一,对于java而言,Api的存在和java.net包里面.因此只要导入这个包就可以准备网络编程了. 客户机到服务机的模型就是网络编程的基本模型,简单的说就是引进这两个进程之间的相互通信,其中一个必须提供固定的

20155208徐子涵 2016-2017-2 《Java程序设计》第5周学习总结

20155208徐子涵 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 异常处理 8.1 语法与继承结构 Java中所有错误都会被打包为对象,运用try.catch,可以在错误发生时显示友好的错误信息.如: import java.util.*; public class Average2 { public static void main(String[] args) { try { Scanner console = new Scanner(Syste

20145207《Java程序设计》第三周学习总结

20145207<Java程序设计>第三周学习总结 教材学习内容总结 这部分可能要扒一些课本而上的东西了.在第三章中,知道了Java可区分为基本类型和类类型两大类型系统,其中类类型也称为参考类型.在这一周主要学习了类类型. 对象(Object):存在的具体实体,具有明确的状态和行为 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制. 简单来说,类是对象的设计图,对象是类的实例. 要深刻理解对象的含义,例如Clothes c1 = new Clot

20155336 2016-2017-2《JAVA程序设计》第二周学习总结

20155336 2016-2017-2 <JAVA 程序设计>第二周学习总结 教材学习内容 1: GIT版本检测 2: JAVA中基本类型 整数 字节 浮点数 字符 布尔(▲) 通过API可以得知各个类型可存储的数值范围 public class Range {public static void main(String[] args){ //byte.short.int.long的范围 System.out.printf("%d~%d%n", Byte.MIN_VALU