精华内容
下载资源
问答
  • java constructor

    千次阅读 2018-04-30 20:34:27
    Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的成员变量赋初值的专门功能:构造方法(constructor)构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面: 1.构造方法的名字必须与定义他的类名...

    另:java中的普通方法可以和类名重名吗?   可以的,但要有返回值,起码void也行,不然就成了构造函数。但是不建议这样做。

    在Java中,任何变量在被使用前都必须先设置初值.

    Java提供了为类的成员变量赋初值的专门功能:构造方法(constructor)
    构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:  
    1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚 至连void也没有。  
    2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。  
    3.每个类可以有零个或多个构造方法.  
    4.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。  
    5.构造方法在创建对象时自动执行,一般不能显式地直接调用.   构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。
    具体使用:分别计算长、宽为20、10和6、3的两个长方形的面积。   
    class RectConstructor{  
    double length;   
    double width;   
    double area(){   
    return length*width;   }   
    RectConstructor(double width,double length){//带参数的构造方法   
    this.length=length;   this.width=width;
    }   
    }   
    public class RectDemo{   
    public static void main(String args[])
    {   RectConstructor rect1=new RectConstructor(10,20);   
    RectConstructor rect2=new RectConstructor(3,6);
    double ar;   ar=rect1.area();
    System.out.println("第一个长方形的面积是"+ar);
    ar=rect2.area();   System.out.println("第二个长方形的面积是"+ar);
    }   
    }
    展开全文
  • Java Constructor

    2020-03-04 17:01:47
    本文介绍了 JavaConstructor 类的相关内容。。。


    Constructor

    • Constructor 类的对象可以表示类的构造方法;
    • java.lang.reflect.Constructor,详见:Class Constructor

    1. 定义格式

    • public final class Constructor<T> extends AccessibleObject implements GenericDeclaration, Member

    2. 主要方法

    类型方法说明
    ClassgetDeclaringClass()得到一个 Class 类的对象
    Class[ ]getParameterTypes()获得 Constructor 类对象表示的构造方法中的参数的类型
    StringgetName()获得 Method 类对象所表示的构造方法的名字
    TnewInstance()通过调用当前 Constructor 类对象所表示的类的构造方法创建一个新对象
    展开全文
  • Constructor.newInstance() 以下对两种调用方式给以比较说明: Class.newInstance() 只能够调用无参的构造函数,即默认的构造函数; Constructor.newInstance() 可以根据传入的参数,调用任意构造构造函数。 ...

    通过反射创建新的类示例,有两种方式:
    Class.newInstance()
    Constructor.newInstance()

    以下对两种调用方式给以比较说明:
    Class.newInstance() 只能够调用无参的构造函数,即默认的构造函数;
    Constructor.newInstance() 可以根据传入的参数,调用任意构造构造函数。

    Class.newInstance() 抛出所有由被调用构造函数抛出的异常。

    Class.newInstance() 要求被调用的构造函数是可见的,也即必须是public类型的;
    Constructor.newInstance() 在特定的情况下,可以调用私有的构造函数。

    public class A {  
        private A() {  
            System.out.println("A's constructor is called.");  
        }  
    
        private A(int a, int b) {  
            System.out.println("a:" + a + " b:" + b);  
        }  
    }  
    public class B {   
        public static void main(String[] args) {   
            B b=new B();   
            out.println("通过Class.NewInstance()调用私有构造函数:");   
            b.newInstanceByClassNewInstance();   
            out.println("通过Constructor.newInstance()调用私有构造函数:");   
            b.newInstanceByConstructorNewInstance();   
        }   
        /*通过Class.NewInstance()创建新的类示例*/   
        private void newInstanceByClassNewInstance(){   
            try {/*当前包名为reflect,必须使用全路径*/   
                A a=(A)Class.forName("reflect.A").newInstance();   
            } catch (Exception e) {   
                out.println("通过Class.NewInstance()调用私有构造函数【失败】");   
            }  
        }  
    
        /*通过Constructor.newInstance()创建新的类示例*/   
        private void newInstanceByConstructorNewInstance(){   
            try {/*可以使用相对路径,同一个包中可以不用带包路径*/   
                Class c=Class.forName("A");   
                /*以下调用无参的、私有构造函数*/   
                Constructor c0=c.getDeclaredConstructor();   
                c0.setAccessible(true);   
                A a0=(A)c0.newInstance();   
                /*以下调用带参的、私有构造函数*/   
                Constructor c1=c.getDeclaredConstructor(new Class[]{int.class,int.class});   
                c1.setAccessible(true);   
                A a1=(A)c1.newInstance(new Object[]{5,6});   
            } catch (Exception e) {   
                e.printStackTrace();   
            }   
        }   
    } 

    输入结果如下:
    通过Class.NewInstance()调用私有构造函数:
    通过Class.NewInstance()调用私有构造函数【失败】
    通过Constructor.newInstance()调用私有构造函数:
    A’s constructor is called.
    a:5 b:6

    说明方法newInstanceByClassNewInstance调用失败,而方法newInstanceByConstructorNewInstance则调用成功。
    如果被调用的类的构造函数为默认的构造函数,采用Class.newInstance()则是比较好的选择,
    一句代码就OK;如果是老百姓调用被调用的类带参构造函数、私有构造函数,
    就需要采用Constractor.newInstance(),两种情况视使用情况而定。
    不过Java Totorial中推荐采用Constractor.newInstance()。

    转自:http://xiaohuafyle.iteye.com/blog/1607258

    展开全文
  • Java Constructor

    2009-09-03 17:02:00
    Java Constructor - constructor definition (not authority):A method that creates an object. In the Java, constructors are instance methods with the same name as their class. It can only  have ...

    Java Constructor

    - constructor definition (not authority):A method that creates an object.   In the Java,  constructors are instance methods with the same name as their class.It can only
      have accessibility modifiers,no return value.
    - 每个class都必须有自己的constructor,它不能从父类中inherited.一个class可以有多个,但至少有一个, 如果没有显示声明构造函数,compiler会提供一个默认的不带参数的构造函数,注意的事,只要有一个显示  声明的constructor,将不会提供default constructor.
    - constructor 不可以有返回值,如果有返回值将会被视为一个普通的方法,不过与类同名。但是在constructor  里可以写return语句,public A(){return;} 是允许的。
    - 在子类调用其constructor的时候,compliler会自动为其加上super();所以如果父类中没有显示的申明不带  参的构造函数,将会有编译错误。
    - 在constructor里可以用this()/super()调用自己/父类中的其他构造函数,调用自己会有recursive invocation error.注意的是,this();或者super()都必须写在其第一句话,所以,this();和super();显然不能同时被调用。
    - constructor initialization:
     1.static variables (父类在前,子类在后,如果都有的话)
     2.static initializer blocks (mutiple的情况按照申明先后执行,父类在前,子类在后)
     3.instance variables,instance initializer blocks (父类)
     4.constructor (父类)
     5.instance variables,instance initializer blocks (子类)  
     6.constructor (子类)

    展开全文
  • Java-构造方法(constructor)

    千次阅读 2019-06-28 11:51:08
    Java ConstructorJava构造器,也称Java构造方法,是一种特殊的方法。 用来构造该类的实例,也就是对象。 Java构造方法示例: package com.basis.controller; public class ConstructorTest { ...
  • Java反射 Constructor

    2020-02-29 22:09:30
    Java反射 ConstructorJava通过反射可以获取构造方法,和使用构造方法创造对象。 在网上找了一个比较好理解的例子来弄清楚Constructor类。 public Constructor getConstructor()// 公共构造方法对象 public ...
  • javaConstructor(构造器)的理解

    万次阅读 多人点赞 2018-03-05 11:17:10
    使用构造器时需要记住:1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名)2.每个类可以有一个以上的构造器3.构造器可以有0个、1个或1个以上的参数4....Java的构造器并不是函数,所以他...
  • 其实在反射中我们使用到Constructor的时候不是太多,因为如果我们有无参构造函数,一般使用有参够构造函数的很少,除非是在初始化的时候,但是初始化的时候也是直接使用空的构造函数然后使用相应的get和set方法来...
  • 1、构造方法概述和作用:给对象的数据(属性)进行初始化,当一个类实例化一个对象时,类都会自动调用构造方法。 构造方法格式特点: 方法名与类名相同(大小也要与类名一致) 没有返回值类型,连void都没有 ...
  • JAVA基础(构造方法Constructor概述)

    千次阅读 2019-06-13 08:18:20
    1,Constructor构造方法概述和作用 给对象的数据(属性)进行初始化 2,构造方法格式特点 方法名与类名相同(大小也要与类名一致) 没有返回值类型,连void都没有 没有具体的返回值return; 3,...
  • java构造函数(constructor

    千次阅读 2019-03-12 18:48:45
    1.构造方法(constructor)是一类特殊的成员方法,从形式上来讲,它有以下特点: (1)与类同名 (2)没有返回值 (3)除了上述两点外,在语法结构上与一般方法相同 2.构造方法的方便之处在于可以省去逐个属性用...
  • java反射之Constructor

    2013-01-27 22:06:25
    本文档时关于Java的反射的一个组件Constructor的描述和讲解
  • //* A:构造方法概述和作用 // * 给对象的数据(属性)进行初始化 //* B:构造方法格式特点 // * a:方法名与类名相同(大小也要与类名一致) // * b:没有返回值类型,连void都没有 // * c:没有具体的返回值return;...
  • class Constructor{ public static void main(String[] agrs){ Person p = new Person(); //对象创建的时候,系统就帮我们调用了构造方法 //p.Person(); //构造方法不能用对象调用 p.show(); ...
  • java getConstructor 抛出NoSuchMethodException

    千次阅读 2018-10-14 15:21:08
    当构造函数声明为private的时候获取不到构造器 //用XML解析技术得到类的权限名称 ...Object object=clz.getConstructor().newInstance(); //给username设置属性 //获取属性描述器 BeanInfo beanInf...
  • 最近,笔者学习了“面向对象”中的constructor和overload,在这里做一个简单的分享。 Overload(重载):  重载,指的是在一个类中,同一个方法名对应了好几个方法。但要注意的是,各个方法的参数并不相同。这里...
  • Java编码时知道类和对象的具体信息,此时直接对类和对象进行操作即可,无需反射 如果编码时不知道类或者对象的具体信息,此时应该使用反射来实现 为什么要使用反射 反射就是把Java类中的各种成分映射成一个个的...
  • ********* getConstructor()和getDeclaredConstructor()区别:********* getDeclaredConstructor(Class<?>... parameterTypes) 这个方法会返回制定参数类型的所有构造器,包括public的和非public的,当然也...
  • 本文章主要介绍什么是反射?在反射操作中的四大核心类:Class类、Constructor类、Method类、Field类以及这些类常用的方法。
  • Constructor类理解 这里Constructor,我们知道是构造函数 为什么是数组形式的呢? 因为可能有多个构造 这个时候,我们写一个DummyClass2, 这里有2个构造 其他和前面一个Bean类似,有setter,getter,toString方法 ...
  • 刚刚按照书上编了个小程序,写着写着就提示一个错误:Constructor call must be the first statement in a constructor。r
  • @ConstructorProperties()使用解释

    千次阅读 2018-09-12 17:18:22
    该注释用于构造函数上,显示该构造函数的参数与getter方法相对应。例如: ... @ConstructorProperties({“x”,“y”}) public Point(int x,int y){ this.x = x; this.y = y; } public int...
  • 构造器是一个特殊的方法,可以有访问性质的修饰,但是不能够被abstract,final,native,static,synchronized修饰 构造器不能被继承,所以不能重写,但是可以重载...
  • java反射中的Field或Constructor对象的getModifiers方法返回值详解 主要作用:以整数形式返回该方法或该成员变量的修饰符; 其中不同的修饰符所对应的数值不同,修饰符的值与java.lang.reflect.Modifier类中的静态...
  • java中构造器(Constructor

    万次阅读 多人点赞 2012-03-27 16:57:02
     构造器的作用:是创建java对象的重要途径,是不是说构造器完全负责创建java对象?  答:是创建java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但这个对象并不是完全由构造器...
  • 在kotlin中使用construct关键字定义构造方法,如果类定义时已经有构造方法(类名后带括号),... constructor():this("","") // 否则会编译出错: // Primary constructor call expected 预期调用主构造函数 } ...
  • java的构造器Constructor的理解

    万次阅读 2013-11-05 16:26:23
    如果父类没有不带参数的构造器,并且在子类的构造器中又没有显式地调用父类的构造器,则java编译器将报告错误 构造器例程 package com.cpsec.construct; public class ConstructorTest { ...
  • java 反射 getConstructor

    千次阅读 2019-04-09 13:41:57
    import java.lang.reflect.Constructor; public class Test { public static void main(String[] args) { Person p = new Person(1,"刘德华"); System.out.println(p.getClass()); Syste...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 300,395
精华内容 120,158
关键字:

javaconstructor

java 订阅