精华内容
下载资源
问答
  • 在学习群里面看到一位同学问——一个可以定义多个空参数的构造方法吗 我当是在想应该不行的吧,然后看到那个问问题的同学说:“可以再定义局部的空参构造方法”,然后自己看了一下关于局部的知识确实阔以,...

    在学习群里面看到一位同学问——一个类中可以定义多个空参数的构造方法吗
    我当是在想应该不行的吧,然后看到那个问问题的同学说:“可以再定义局部类的空参构造方法”,然后自己看了一下关于局部类的知识确实阔以,话不多说,上代码。

    package e01;
    
    public class jvav {
    
    	public static void main(String[] args) {    
    		Outer outer=new Outer();
    		Outer.Inner inner = outer.new Inner(); // 创建内部类对象
    		inner.show1(); // 测试在成员内部类中访问外部类成员变量和方法
    		outer.test2(); // 测试在外部类中访问内部类成员变量和方法
    	}
    }
    
    //定义外部类Outer
    class Outer {
    	Outer(){
    		System.out.println("调用了外部类的无参构造函数");
    	}
    	int m = 0; // 定义外部类的成员变量
    	// 定义外部类成员方法
    	void test1() {
    		System.out.println("外部类成员方法");
    	}
    	// 定义成员内部类Inner
    	class Inner {
    		Inner(){
    			System.out.println("调用了内部类的无参构造函数");
    		}
    		int n = 1;
    		// 1、定义内部类方法,访问外部类成员变量和方法
    		void show1() {
    			System.out.println("外部类成员变量m="+m);
    			test1();
    		}
    		void show2(){
    			System.out.println("内部类成员方法");
    		}
    	}
    	// 2、定义外部类方法,访问内部类变量和方法
    	void test2() {
    		Inner inner = new Inner();
    		System.out.println("内部类成员变量n="+inner.n);
    		inner.show2();
    	}
    }
    

    看完上述代码就该就清楚了吧,我生成的的是成员内部类,那估计局部内部类应该也行,不得不说他们是真滴牛

    展开全文
  • java中一个中能如何声明多个构造方法
                    public class A
    {
    public A(){}  //构造1
    public A(int i){}  //构造2
    public A(int i,int i){} //构造3
    public A(float f){} //构造4

    }

    直接声明即可,但要求参数的个数,或者类型不一样!
               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 在python定义多个构造函数

    万次阅读 2018-09-20 23:56:33
     &...这个时候,就需要我们创建多个构造函数了。     下面是一个简单的实例: import time class Date: #主构造函数 def __init__(self...

        当我们在编写一个类时,我们希望用户可以通过多种不同的方式来创建一个类实例,而不是局限于_init_()方法提供的一种。这个时候,就需要我们创建多个构造函数了。

        下面是一个简单的实例:

    import time
     
    class Date:
        #主构造函数
        def __init__(self, year, month, day):
            self.year = year
            self.month = month
            self.day = day
     
        #可选构造函数
        @classmethod
        def today(cls):
            t = time.localtime()
            return cls(t.tm_year, t.tm_mon, t.tm_mday)
    

        使用示例:

    >>> a = Date(2012,12, 21)
    >>> b = Date.today()
    >>> print(a.year, a.month, a.day)
    2012 12 21
    >>> print(b.year, b.month, b.day)
    2018 9 13
    

        在可选构造函数中,我们定义了一个类方法,类方法的第一个参数(cls)指代的就是类本身。类方法会用这个类来创建并返回最终的实例。使用类方法的另一个好处就是在继承的时候,保证了子类使用可选构造函数构造出来的类是子类的实例而不是父类的实例。

        也许我们会倾向于在_init_()方法中使用*args和**kwags根据参数数量来进行判断如何执行构造函数。以下为实例:

    import time
     
    class Date:
        def __init__(self,*args):
            if len(args)==0:
                t = time.localtime()
                args = (t.tm_year, t.tm_mon, t.tm_mday)
            self.year, self.month, self.day = args
    

        尽管这样也是行的通的,但是这样往往会导致代码更加脆弱而且难以维护。而且在实现时也不会展示出那么有用的帮助字符串(没有参数名称)。此外,在创建实例时,代码也会变得不那么清晰。看看下面的对比:

    >>> a = Date(2012,12,31)#明确指定日期
    >>> b = Date()#信息模糊,指示不明
    >>> c = Date.today()#清晰,指定今日
    

    在这里插入图片描述

    展开全文
  • Java构造方法

    千次阅读 多人点赞 2019-09-09 19:26:39
    Java构造方法 当新对象被创建的时候,构造方法会被调用。每一个都有构造方法。...可以为一个创建多个构造方法。每一个构造方法必须有它自己唯一的参数列表。 Java支持像C++中那样的复制构造方法,这个不同点...

    Java构造方法

    当新对象被创建的时候,构造方法会被调用。每一个类都有构造方法。当类中没有定义构造函数时,系统会指定给该类加上一个空参数的构造函数。这个是类中默认的构造函数。当类中如果自定义了构造函数,这时默认的构造函数就没有了。

    Java中构造方法重载和方法重载很相似。可以为一个类创建多个构造方法。每一个构造方法必须有它自己唯一的参数列表。

    Java不支持像C++中那样的复制构造方法,这个不同点是因为如果你不自己写构造方法的情况下,Java不会创建默认的复制构造方法。

    构造方法的方法名必须与类名相同

    构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。

    构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。

    一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。

    构造方法可以重载,以参数的个数,类型,顺序。

    构造方法是一个特殊的方法。
    方法结构:
    访问修饰符 类名(参数列表){方法体}

    构造方法重载。
    在没写构造方法是 有一个默认的
    类名(){}构造方法

    this()是调用本类不带参构造方法;
    super()是调用父类不带参的构造方法;

    构造方法和方法的类似之处在于它们都包含可执行代码,区别在于,只有当Java类实例化时才执行构造方法。构造方法通常包含类属性初始化代码,从严格意义上说,构造方法并不是方法,因为它不会返回任何值。

    	public class A{
    		int i=0;
    		public A(){
    			i=2;
    		}
    		public A(int i){
    			this.i=i;
    		}
    	}
    

    默认构造方法
    如果没有任何的构造方法,编译时系统会自动添加一个默认无参构造方法
    1.隐含的默认构造方法

    public A(){}
    

    2.显示的默认构造方法

    	public A(){
    	System.out.print("显示的默认构造方法")
    	}
    

    重载构造方法
    比如原本的类里的构造方法是一个参数的,现在新建的对象是有三个参数,此时就要重载构造方法
    当一个类中有多个构造方法,有可能会出现重复性操作,这时可以用this语句调用其他的构造方法。

    public class A{
    	private int age;
    	private String name;
    	public A(int age,String name){
    		this.age=age;
    		this.name=name;
    	}
    	public A(int age){
    		this(age,"周杰伦");//调用 A(int age,String name)构造方法
    	}
    	public A(){
    		this(1);//调用 A(int age)构造方法
    	}
    	public void setName(String name) {this.name=name;}
    	public String getName() {return name;}
    	public void setAge(int age) {this.age=age;}
    	public int getAge() {return age;}
    }
    
    A a=new A(20,"邓紫棋");
    A b=new A(20);
    A c=new A();
    String name = a.getName();
    String name1 = b.getName();
    int age = c.getAge();
    System.out.println(name);
    System.out.println(name1);
    System.out.println(age);
    
    展开全文
  • 定义多个构造函数

    千次阅读 2019-08-18 23:18:09
    如果想让用户能够以多种方式创建实例,而局限于__init()__方法可以用下面的解决方案 import time import time class Date: def __init__(self, year, month, day): self.year = year self.month = month ...
  • 的参数可以是任何类型python中的函数参数在定义可以有默认值,可以让__init__函数接受多个参数,在后面的一些参数给出默认值的方法让__init__接受不同个数的参数,并且执行类型检查执行不同的代码,用上述方法实现...
  • (3)Student定义无参的构造方法和一接收两参数的构造方法,两参数分别姓名和成绩属性值。 (4)在测试中创建两Student对象,一使用无参的构造方法,然后调用方法给姓...
  • es6为类创建多个构造函数

    千次阅读 2018-09-23 10:48:31
    虽然ES6之后可以实现JavaScript创建Class,但自身并提供函数重载,所以无法直接创建多个构造函数 更多精彩 更多技术博客,请移步 asing1elife’s blog 解决 原理则是对一个构造函数的传值进行类型判断,从而...
  • Python中实现多个构造

    千次阅读 2019-01-08 13:34:41
    实现多个构造器,可以使用类方法 import time class Date: """方法一:使用类方法""" # Primary constructor def __init__(self, year, month, day): self.year = year self....
  • class 梯形{ float 上底,下底,高; 梯形(float x,float y,float h) { 上底=x; 下底=y; 高=h; } float 计算面积() { float 面积; 面积=(上底+下底)*高/2.0
  • Java基础知识面试题(2020最新版)

    万次阅读 多人点赞 2020-02-19 12:11:27
    变量与方法 成员变量与局部变量的区别有哪些 在Java中定义个不做事且没有参数的构造方法的作用 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是? 一个类构造方法的作用是什么?若一个类没有...
  • 什么说java中一个定义个构造函数。是不是意思就是一个是无参构造函数,一个是有参数的构造函数,
  • PHP多个构造方法使用

    千次阅读 2016-12-29 16:22:13
    PHP的构造方法与Java的有所不同,能有多个构造方法,只能有一个构造方法,若想要实现类似Java的构造方法的使用,可以使用下面的办法来实现: //PHP构造方法使用 class Test{ function __construct(){ echo 'Test...
  • Java中构造方法

    万次阅读 多人点赞 2016-10-20 23:17:50
    constructor;构造函数。在创建对象的时候,对象成员可以由构造函数方法进行初始化。new对象时,都是用构造方法进行实例化的; 例如;Test test = new Test("a");...构造方法不能作用是完成对象的
  • Kotlin构造函数及多个构造函数

    万次阅读 2018-05-07 17:57:44
    Kotlin构造函数首先 强调一下 如果下面这样行代码是构造函数的话 class ClassName(name:String){}那么每一个Kotlin只有一个构造函数 没有多个构造函数其实由于代码什么的都是源于国外的 所以在翻译过程中多说...
  • C++头文件定义类方法

    万次阅读 多人点赞 2019-06-29 16:52:57
    新手在写C++程序定义类的时候,可能会犯一错误,就是在main函数文件里定义多类,一文件中包含很函数,这样程序看起来很冗杂。今天总结一下如何在C++中使用头文件来定义个类,并在另一文件中进行引用。 ...
  • 的基本定义语法,使用关键字class去定义个类,语法格式如下:访问控制符 class 类名{  成员变量声明  构造器声明  成员方法声明 } 一.访问控制符 包含:public ,private ,protected 二.类名要有意义,且首...
  • 构造方法定义: 构造方法是一种特殊的方法,它是一同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当实例化一对象时会自动调用构造方法构造方法和...
  • 定义个类Person,定义name和age属性,定义有参的构造方法对name和age进行初始化。在测试中创建该的2对象,姓名、年龄分别lili、19和lucy、20,在屏幕打印出2对象的姓名和年龄。 输入格式: 本题目无输入 ...
  • 二进制LDPC码的构造及译码算法

    千次阅读 2018-09-09 16:11:04
    构造好的LDPC码校验矩阵和设计性能优异的译码算法是LDPC码研究领域的重点。  常见的LDPC码一般分为两,一是随机LDPC码,一般由随机化方法构造;...几种具有代表性的LDPC码构造方法以及经典的硬判决和软...
  • 设计一矩形Rectangle

    万次阅读 2019-04-01 12:16:54
    设计一Rectangle的表示矩形。... 一个为width和height指定值的矩形构造方法。 一getArea()的方法返回这矩形的面积。 一getPerimeter()的方法返回这矩形的周长。输入样例:3.14 2.78
  • c++ 构造函数详解

    万次阅读 多人点赞 2019-05-31 17:20:58
    c++构造函数详解。(构造函数的分类、拷贝构造函数)
  • Java有参构造方法和无参构造方法详解

    千次阅读 多人点赞 2020-12-09 12:05:16
    一:有参数构造方法 在之前我们要...上面定义了四有参数构造方法,发现了构造方法可以重载, 书写的习惯是重载的构造方法按照参数的个数进行升序排序。但是如何去调用有参数的构造方法呢? DEMO:调用...
  • 刚学Java,定义有参构造方法和无参构造方法的有用是什么?一知半解,感觉在中有属性的很定义,没有学明白
  • java构造方法与重载

    千次阅读 2019-02-20 22:05:19
    构造方法负责对象成员的...4.一个可能没有构造方法,但一定有系统隐蔽无参的构造方法,也有多个构造方法(他们之间构成重载) 5.定义了有参数的构造方法,就会屏蔽掉系统无参构造方法 6.构造方法不能被继承  ...
  • 题目显示全,完整题目描述: ...3.定义多个方法:分别显示相应的属性值,例如getName(){System.out.print("名称="+name+";"); }4.定义一个方法“成长”:实现年龄的增加,每执行一次年龄增加1。5.定义一个静态...
  • 构造方法是否可以重载

    千次阅读 2018-03-01 20:47:11
    先来看看其他语言对于重载的定义: 重载是的多态的一种实现,函数重载指一个方法名被用作多个函数名,且能够通过函数的参数个数或参数类型将这些同名的函数区分开.调用发生混淆,当调用的时候,虽然方法名字相同,但是...
  • Java构造方法和子类构造方法

    千次阅读 多人点赞 2019-07-21 23:50:09
    构造方法是用于初始化一新建的对象。 普通构造方法 方法名与类名相同 无返回类型 子类能继承父类的构造方法 能被static、final、abstract修饰(有final和abstract修饰的是能被子继承的,abstract修饰的是...
  • public class Test{ private int x; private String s; public Test(int x) { this.x = x;...//调用自身的构造方法,这种写法只能存在于构造方法中,有且只能有一,在此构造方法中必须写在其他语句之前

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,063,725
精华内容 425,490
关键字:

不可以为类定义多个构造方法