精华内容
下载资源
问答
  • java 构造函数 重载 递归调用

    千次阅读 2017-11-28 11:24:32
    1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建属性的初始化,这样在一个构造函数中调用另外一个构造函数,可以避免重复的代码量,减少工作量; 2)在一个构造函数中调用另外一...

    1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建属性的初始化,这样在一个构造函数中调用另外一个构造函数,可以避免重复的代码量,减少工作量;

    2)在一个构造函数中调用另外一个构造函数的时候应该用的是同一块内存空间,在默认的构造函数中先初始化变量,调用另一个的时候覆写已经初始化的变量的值;

    3)整个调用的过程和递归调用函数有点类似,不断充气球,直到整个气球膨胀起来,不断的深层递进,遇到停止标记,逐层的跳出来。

         写了段代码,解释我上面的叙述:

    复制代码
     1 class JavanTiger {
     2     int age;      // 年龄
     3     int hight;    // 身体高度
     4 
     5     public JavanTiger() {
     6         print();
     7         this.age=2;   //这里初始化 age 的值 ,但递归返回的时候,这个值会被覆写
     8     }
     9     
    10     public JavanTiger(int age) {
    11         this();      // 调用自己的第一个构造函数,下面的两个语句数不执行的
    12         this.age = age;
    13         print();
    14     }
    15 
    16     public JavanTiger(int age, int hight) {
    17         this(age);   // 调用自己第二个构造函数  ,下面的两个语句数不执行的
    18         this.hight = hight;
    19         print();
    20     }
    21 
    22     public void print() {  //打印函数
    23         System.out.println("I'am a " + age + "岁 " + hight + "尺高 tiger!");
    24     }
    25     public static void main(String[] args) {
    26         new JavanTiger(3,3);
    27     }
    28 }
    29 //output
    30 //I'am a 0岁 0尺高 tiger!
    31 //I'am a 3岁 0尺高 tiger!
    32 //I'am a 3岁 3尺高 tiger!  
          个人理解就是这样了,可能里面还有问题,比如构造函数递归调用和程序函数递归调用的机制是否似乎相同的?构造函数同对象一起产生,也就是同时会分配内存空间出来,那门这样的递归调用会不会打乱分配内存的顺序?希望看到的大牛们拍板,给个最好的解释。

         

    展开全文
  • google之后,发现原来是java语法中,构造函数重载,this()调用的其实就是 构造函数。This is constructor overloading:   this(); is constructor which is used to call another constructor in a class, for e....

    看storm的代码的时候,发现这样一句java代码, 很是不理解

    google之后,发现原来是java语法中,构造函数重载,this()调用的其实就是 构造函数。This is constructor overloading:

     

    this(); is constructor which is used to call another constructor in a class, for example:-

    https://stackoverflow.com/questions/15867722/what-does-this-method-mean/15867769

    java的构造函数重载

     

     construct overloading:

    public class Test{
    
        Test(){
            this(10);  // calling constructor with one parameter 
            System.out.println("This is Default Constructor");
        }
    
        Test(int number1){
            this(10,20);   // calling constructor with two parameter
            System.out.println("This is Parametrized Constructor with one argument "+number1);
        }
    
        Test(int number1,int number2){
            System.out.println("This is Parametrized  Constructor  with two argument"+number1+" , "+number2);
        }
    
    
        public static void main(String args[]){
            Test t = new Test();
            // first default constructor,then constructor with 1 parameter , then constructor with 2 parameters will be called 
        }
    
    }
    

      上述代码运行结果如下:

     

    展开全文
  • Java构造函数重载和方法重载

    千次阅读 2016-03-18 12:11:57
    通过一个小例子实现Java构造函数重载和方法重载

    源码

    class Tree {
    	int height;
    
    	Tree() {
    		prt("Planting a seeding");
    		height = 0;
    	}
    
    	Tree(int i) {
    		prt("Creating new Tree that is " + i + " feet tall");
    		height = i;
    	}
    
    	void info() {
    		prt("Tree is " + height + " feet tall");
    	}
    
    	void info(String s) {
    		prt(s + " : Tree is " + height + " feet tall");
    	}
    
    	private void prt(String s) {
    		System.out.println(s);
    	}
    }
    
    public class Overloading {
    
    	public static void main(String[] args) {
    		for (int i = 0; i < 2; i++) {
    			Tree t = new Tree(i);
    			// Overloaded method
    			t.info();
    			t.info("overloaded method");
    		}
    		// Overloaded constructor
    		new Tree();
    		new Tree(2);
    	}
    }

    运行结果


    构造函数重载:

    Tree 既可创建成一颗种子,不含任何自变量;亦可创建成生长在苗圃中的植物。为支持这种创建,共使用了
    两个构造函数,一个没有自变量(默认构造函数),另一个采用现
    成的高度。

    方法重载:
    我们也有可能希望通过多种途径调用info()方法。例如,假设我们有一条额外的消息想显示出来,就使用
    String 自变量;而假设没有其他话可说,就不使用。由于为显然相同的概念赋予了两个独立的名字,所以看
    起来可能有些古怪。幸运的是,方法过载允许我们为两者使用相同的名字。

    展开全文
  • Java构造函数

    千次阅读 多人点赞 2018-11-22 13:06:46
    Java构造函数创建java构造函数的规则Java构造函数的类型没参数的构造函数 (默认函数的构造类型)Java参数化构造函数Java 构造函数重载java的构造函数和方法之间的区别Q)构造函数没有返回值 ?Q)可以构造函数执行...


    java中的构造方法是一种特殊类型的方法,用于初始化对象。Java构造函数在对象创建时被调用。 它构造值,即提供对象的数据,这是为什么它被称为构造函数。

    创建java构造函数的规则

    • 构造函数名称必须与其类名称相同
    • 构造函数必须没有显式返回类型

    Java构造函数的类型

    没参数的构造函数 (默认函数的构造类型)

    示例

    class Student {
        int id;
        String name;
    /*
    *	public Student(){
    *	}                                                 //这个是默认的构造函数
    */
    }
    

    在上面的类中,代码中并没有创建任何构造函数,但编译器自动提供了一个默认构造函数。而默认构造函数的初始化就是为以上字段提供该类型初始的默认值。

    id = 0;
    name = null;
    

    Java参数化构造函数

    具有参数的构造函数称为参数化构造函数。作用:参数化构造函数用于为不同对象提供不同初始化的值。

    示例

    class Student {
        int id;
        String name;
    
    	public Student(int id,String name){
    		this.id = id;
    		this.name = name;
    	}                                                 
    }
    

    Java 构造函数重载

    构造方法重载是Java中的一种技术,一个类可以有任何数量的参数列表不同的构造函数。编译器通过构造函数参数列表中的参数数量及其类型来区分这些构造函数。

    示例

    class Student {
        int id;
        String name;
        int age;
    
        Student(){
        }                                                                             //初始默认构造函数
    
        Student(int i, String n) {				    //重载默认构造函数
            id = i;
            name = n;
        }
    
        Student(int i, String n, int a) {                          //重载默认构造函数
            id = i;
            name = n;
            age = a;
        }
    }
    

    java的构造函数和方法之间的区别

    Java构造函数 Java方法
    构造器用于初始化对象的状态(数据)。 方法用于操作对象。
    构造函数不能有返回类型。 方法一般都有返回类型。
    构造函数隐式调用。 方法要显式调用。
    如果没有指定任何构造函数,java编译器提供一个默认构造函数。 在任何情况下编译器都不会提供默认的方法调用。
    构造函数名称必须与类名称相同。 方法名称随意
    Q)构造函数没有返回值 ?

    A)不是的,构造函数返回当前类的实例(不能指定返回值类型,但它会返回一个值)。

    Q)可以构造函数执行其他任务而不是初始化?

    A)可以的构造函数可以执行任何操作,类似于普通方法。

    展开全文
  • *构造函数重载 * *创建 Employee 类,属性:姓名,年龄,性别,工资。 *方法:显示对象的属性值,工作。 *要求属性要封装。 *创建 3 个对象。 *构造函数重载。 * * *方法以及方法重载 * 1、方法简称“类...
  • kotlin 构造函数重载 构造函数重载 (Constructor Overloading) A Kotlin class has a primary constructor and one or more secondary constructors. When a class has more than one constructor, it will be known...
  • JAVA 构造函数及其重载

    千次阅读 2019-04-13 23:34:31
    以上给出了不同构造函数重载,不同构造的同一个类的实例化对象,在实例化对象时系统就会自动调用构造函数,给相应得值进行初始化赋值;不同的构造进行不同得初始化,不同的赋值 5、如果类中没有定义构造函数,...
  • Java构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。 Java不支持像C++那样的复制构造函数,这个不同点是因为如果你不自己写构造函数的情况下,Java...
  • 什么是构造函数?什么是构造函数重载? 当新对象被创建的时候,构造函数会被调用。...Java构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。 ...
  • 当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有提供构造函数...Java中的构造函数重载和方法重载很类似,可以为一个类创建多个构造函数。每一个构造函数都必须有它自己唯一的参数列表...
  • 众所周知,java没有办法设置默认参数,只有通过函数重载的性质来完成对默认参数的设置。 例如: 为了是的函数能最大形式的通用,会传入正则表达式,但在大部分情况下,使用默认的参数就够了,所以就对removeSpace...
  • java构造函数

    2016-02-21 00:23:38
    java构造函数
  • 上一篇博客我们讲了类和对象的基本概念,接下来我们就要讲一下构造函数重载。想必大家对构造函数都有一定的认识,下面我们就来一起探讨探讨。一 、什么是构造函数 与类名相同 无返回值 对实例进行初始化 构造函数...
  • Java构造函数重载

    千次阅读 2017-09-06 22:39:06
    package one;...当开发人员没有写任何构造函数是,jvw会自动生成一个没有参数的构造函数 4.当开发人员手动写了任意一个构造函数后,Jvw就不会在生成不在参数的构造函数了 * */ public class TtstNodd
  • java 重载构造函数

    千次阅读 2018-03-05 19:40:06
    Java中this调用重载构造函数 在构造器中可以调用本类的其他重载构造器,不能使用构造器名称来调用另一个构造器,而是应该使用Java特定的this(….)来调用。 this(….)方法必须出现在构造器中的第一行,用来调用其他...
  • Java 构造函数的详解

    万次阅读 多人点赞 2016-07-14 14:54:44
    我们人出生的时候,有些人一出生之后再起名字的,但是有些人一旦出生就已经起好名字的。那么我们在java里面怎么在对象一旦...而构造函数定义的是,对象在调用功能之前,在建立时,应该具备的一些内容。也就是对象的初
  • java构造函数基本知识

    2016-11-22 16:06:08
    构造函数 重载  Java允许重载任何方法。方法重载是指一个类中可以定义有相同名字,但是参数(参数类型或者参数个数)不同的多个方法,... 构造函数是定义在java类中的一个用来初始化对象的函数,使用“new +构造
  • java构造函数基本概念

    2018-10-26 15:04:29
    1.对象方法不能调用构造方法 2.构造函数的格式: 类名(形参...注意:在构造函数中可以调用本类的其他重载构造函数,不能使用构造函数名称来调用另一个构造函数,而是使用this(….)来调用 5.构造函数可以被重载 ,但...
  • Java构造函数

    2015-07-30 14:56:17
    Java构造函数链,首先对类的构造函数明确几点: 1.类的构造函数可以重载 2.类的构造函数访问修饰符不一定是public,也可以为private等其他访问修饰符 3.类的构造函数无返回值 4.类的构造函数名与类名保持...
  • java构造函数重载

    千次阅读 2017-11-11 19:08:59
    注意:任何一个类都有构造函数,只是有时候不写 特殊点: 1 、不写也会存在  2 、作用:用于构造当前类的对象、初始化当前对象的一些基本属性 3、有没有返回值?执行时间:创建当前类对象的时候,有返回值...
  • JAVA构造函数(方法)

    千次阅读 多人点赞 2018-12-27 14:47:11
    java构造函数,也叫构造方法,是java中一种特殊的函数。函数名与类名相同,无返回值。 作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象了属性和方法。 构造函数是对象一建立就运行,给...
  • 上面这里,我们在main里面实例化了SubClass,且构造函数没有传参, 请问编译的时候会不会出错? 答案: 编译会出错,由于在子类中,重载的构造方法里面,没有显式调用父类的构造方法, 所以系统会默认去调用父类的无参数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,220
精华内容 42,088
关键字:

java构造函数重载

java 订阅