java默认构造器constructor

原创 2015年12月07日 17:16:14

1、如果类中不声明构造器(不论有参无参)的话,java会默认生成一个无参构造器,可以用getDeclaredConstructor()函数证明这个无参构造器是否存在。
如果类中已经声明了构造器的话,java就不会生成这个默认无参构造器了。
特别注意的是:默认构造器会自动获得与其所作的类一样的访问权限!!!

import java.lang.reflect.*;
class ComTest{}


public class ShowMethods{

        static final String usage =
        "usage:\n"+
        "ShowMethods qualified.class.name\n"+
        "To show all methods in class or:\n"+
        "ShowMethods qualified.class.name word\n"+
        "To search for mechods involving`word'";

        public static void main(String[] args){
                if(args.length<1){
                        System.out.println(usage);
                        System.exit(0);
                }
                try{
                        Class c=Class.forName(args[0]);
                        Method[] m = c.getDeclaredMethods();
                        Constructor[] ctor = c.getDeclaredConstructors();
                        if(args.length==1){
                                for( int i=0;i<m.length;i++)
                                        System.out.println("methods-->"+m[i].toString());

                                for(int i=0;i<ctor.length;i++)
                                        System.out.println("constructors-->"+ctor[i].toString());
                        }
                        else{
                                for(int i=0;i<m.length;i++)
                                        if(m[i].toString().indexOf(args[1])!=-1)
                                                System.out.println("methods-->"+m[i].toString());
                                for(int i=0;i<ctor.length;i++)
                                        if(ctor[i].toString().indexOf(args[1])!=-1)
                                                System.out.println("constructors"+ctor[i].toString());
                        }
                }catch(ClassNotFoundException e){
                        System.out.println("No Such class:"+e);
                }
        }
}

输出结果:

运行命令: java ShowMethods ComTest
执行结果:constructors–>ComTest()
运行命令 java ShowMethods ShowMethods
执行结果:methods–>public static void ShowMethods.main(java.lang.String[])
constructors–>public ShowMethods()

2、做个笔记:private只能修饰内部类

版权声明:本文为博主原创文章,未经博主允许不得转载。

【SpringBoot】“没有默认的构造器”,No default constructor found;

跑项目的时候,出现了如下错误“没有默认的构造器”,No default constructor found;有构造器的只有一个地方,就是实体类那里; 检查后发现,多了一个东西...
  • River_Continent
  • River_Continent
  • 2017年06月05日 04:44
  • 612

Java通过反射机制使用非默认构造器创建对象

1、Class类方法:getConstructors() 在JDK文档中,对于该方法有如下解释: Returns an array containing Constructor objec...
  • pdcxs007
  • pdcxs007
  • 2014年02月19日 10:29
  • 3104

java的构造器Constructor的理解

使用构造器时需要记住: 1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名) 2.每个类可以有一个以上的构造器 3.构造器可以有0个、1个或1个以上的参数 4.构造器...
  • u010670679
  • u010670679
  • 2013年11月05日 16:26
  • 7291

Constructor(构造器)是否可被override(重写)?

Constructor(构造器)是否可被override(重写)?       Constructor(构造器)不能被继承,所以不能被override(重写),但是可以被overloading(...
  • chwshuang
  • chwshuang
  • 2015年07月18日 17:16
  • 4910

构造器Constructor不能重写,但是可以被重载

构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload。 Constructor不能被继承,所以Constructor也就不能被override。每一个类...
  • Alex_cun
  • Alex_cun
  • 2017年09月29日 11:00
  • 255

构造器Constructor是否可被override?

一、构造器是干什么用的?(what)      构造器是用来生成一个类的实例是用来初始化这个实例用的   二、构造器如何工作?(how)        Java在构造实例...
  • u011202334
  • u011202334
  • 2015年06月15日 21:09
  • 2794

java构造器Constructor是否可被override?

构造器不能被继承,所以不存在override(重写)的问题,但是可以被重载。 有不足之处,请指正,谢谢!...
  • z10z32
  • z10z32
  • 2017年03月28日 17:10
  • 628

从头认识java-4.3 默认构造器

这一章节我们来讨论一些默认构造器与this的注意点。1.默认构造器当你不设置任何构造器的时候,系统默认会建立一个。package com.ray.ch01; public class Test { ...
  • raylee2007
  • raylee2007
  • 2015年10月26日 09:00
  • 2132

关于java默认构造器的问题

1.java构造器是属于静态绑定的一种,当你实例化一个对象时,该对象的构造器也就自动地调用起来了,不需要像其他普通方法一样,需要      对象.方法();如此调用 2.另外当你在创建一个类的时候忘...
  • IT_COOKIE_SAM
  • IT_COOKIE_SAM
  • 2017年02月14日 20:41
  • 602

子类构造器Constructor是否可被Override(重写)

构造器Constructor不能被继承,因此不能被重写(Override),但是可以被重载(Overload) 如果父类自定义了有参构造函数,则子类无论定义构造函数与否,定义有参构造函数...
  • likunyv
  • likunyv
  • 2017年07月06日 16:03
  • 334
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java默认构造器constructor
举报原因:
原因补充:

(最多只允许输入30个字)