精华内容
下载资源
问答
  • 构造函数类似于方法,它在创建类的对象时被调用,通常用于初始化类的实例变量。构造函数与它们的类同名,并且没有返回类型。...从方法调用构造函数不,不能从方法调用构造函数。唯一可以使用“this...

    构造函数类似于方法,它在创建类的对象时被调用,通常用于初始化类的实例变量。构造函数与它们的类同名,并且没有返回类型。

    无需显式调用构造函数,这些构造函数会在实例化时自动调用。

    Java中的this关键字是对当前类的对象的引用。使用它,您可以引用类的字段,方法或构造函数。

    因此,如果需要显式调用构造函数,则可以使用“ this()”进行。

    从方法调用构造函数

    不,不能从方法调用构造函数。唯一可以使用“this()”或“super()”调用构造函数的地方是另一个构造函数的第一行。如果尝试在其他地方显式调用构造函数,将生成编译时错误。

    例子import java.util.Scanner;

    public class Student {

    private String name;

    private int age;

    Student(){}

    Student(String name, int age){

    this.name = name;

    this.age = age;

    }

    public void SetValues(String name, int age){

    this(name, age);

    }

    public void display() {

    System.out.println("name: "+this.name);

    System.out.println("age: "+this.age);

    }

    public static void main(String args[]) {

    Scanner sc = new Scanner(System.in);

    System.out.println("输入学生的姓名: ");

    String name = sc.nextLine();

    System.out.println("输入学生的年龄: ");

    int age = sc.nextInt();

    Student obj = new Student();

    obj.SetValues(name, age);

    obj.display();

    }

    }

    编译时错误Student.java:12: error: call to this must be first statement in constructor

    this(name, age);

    ^

    1 error

    展开全文
  • 今天看磊哥代码,看到了他调用了一个方法的构造方法,我本来是去看业务逻辑的,看看到底这货是怎么实现的我要的那个业务流程。看了半天愣是没看出来,这是怎么调用的其中的方法,如下: new ListenBeanJob(fal);//...

    今天看磊哥代码,看到了他调用了一个方法的构造方法,我本来是去看业务逻辑的,看看到底这货是怎么实现的我要的那个业务流程。看了半天愣是没看出来,这是怎么调用的其中的方法,如下:

    new ListenBeanJob(fal);//这是调用的方法

    我赶紧去找父类里面的构造方法,按照执行顺序来说的话,应该是在父类里面的构造方法中调用了msfile()方法,然后子类重写这个方法,执行的。

    如果不明白这个执行顺序的,我帮你们找到了

    可以参考:https://www.cnblogs.com/dier306/p/5521513.html

    然鹅,我去看了父类,什么都没有,如下:

    我彻底懵逼了,怎么回事,赶紧摇人!问一问当事人。

    他给我解释说,这个就是一个机制,给我举了一个例子,线程Thread类中run()方法是如何实现的。怎么run()方法就能单独的跑起来。这是为什么呢?

    带着疑问,我们看了源码:

    Thread类实现了Runnable接口,里面有run方法,然后继续看Runnable接口:

    里面的一个抽象的run方法就能执行了。虽然他也没给我讲明白这里面的到底是个什么机制,但是他的这个业务逻辑里面,其中

    ListenJob就实现了一个Callable<Object>接口,里面就有一个抽象的方法,叫call,这也就是为什么说和Thread类很类似,然后我似懂非懂的点了点头。Callable<Object>接口可以看一下下面的参考。

    参考:https://blog.csdn.net/u014785687/article/details/78502707

    还是差很多啊!继续加油吧!

    今天就到这里吧!收货还是有的,就是有点不明白所以然,自己又不是一个特别爱钻研的一个人。这可咋整。先工作。

    打完收工!!!

    展开全文
  • Java调用构造方法,那就是子类调用基类(父类)的构造方法,如何调用,请看详细内容。子类中的构造方法的规则子类的构造过程中必须调用其基类的构造方法。子类可以在自己的构造方法中使用super(argument_list)调用基类...

    Java调用构造方法,那就是子类调用基类(父类)的构造方法,如何调用,请看详细内容。

    8d2702e38c6668ccf218bb9f71fc626d.png

    子类中的构造方法的规则

    子类的构造过程中必须调用其基类的构造方法。

    子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。

    如果使用this(argument_list)调用本类的另外构造方法。

    如果调用super,必须写在子类构造方法的第一行。

    如果子类的构造方法中没有显示的调用基类的构造方法,则系统默认调用基类的无参数构造方法。

    如果子类构造方法中既没有显示调用基类构造方法,而基类又没有无参数的构造方法,则编译出错。

    示例如下:class SuperClass{

    private int n;

    //SuperClass(){

    // System.out.println("SuperClass()");

    //}

    SuperClass(int n){

    System.out.println("SuperClass(int n)");

    this.n = n;

    }

    }

    class SubClass extends SuperClass{

    private int n;

    SubClass(){

    super(300);//调用父类的有参构造方法

    System.out.println("SuperClass");

    }

    SubClass(int n){

    System.out.println("SubClass(int n):"+n);

    this.n = n;

    }

    }

    public class TestSuperSub{

    public static void main (String args[]){

    //SubClass sc = new SubClass();

    SubClass sc2 = new SubClass(200);

    }

    }

    依次验证上面的语法。

    展开全文
  • 心有猛虎_细嗅蔷薇正确的调用方法应该是直接一个this()来调用构造方法。请看代码:classStudent{Stringid;Stringname;Stringsex;//创建构造方法publicStudent(Stringid,Stringname,StringclassNum,Stringsex,intage){...

    535e16483efd23e5031372280ac0f581.png

    心有猛虎_细嗅蔷薇

    正确的调用方法应该是直接一个this()来调用构造方法。请看代码:class Student{

    String id;

    String name;

    String sex;

    //创建构造方法

    public Student(String id,String name,String classNum,String sex,int age){

    this(id,name,classNum,sex);

    this.age = age;

    }

    //重载构造方法,有两个参数

    public Student(String id,String name){

    this.name = name;

    this.id =id;

    }

    //重载构造方法,有3个参数

    public Student(String id,String name,String sex){

    this(id,name);                //在三个个参数的构造方法里面调用两个参数的构造方法 this(id,name)

    this.sex = sex;               // 在添加另一个参数,实现构造方法调用构造方法

    }

    public static void main(String[] args) {

    }

    }

    展开全文
  • 一 this调用构造方法构造方法之间的调用,可以通过this关键字来完成。格式:this(参数列表);构造方法的调用举例:classPerson {//Person的成员属性private intage;privateString name;//无参数的构造方法Person() {}...
  • java语言中,构造函数又称构造方法。构造函数的作用是初始化对象,即在创建对象时被系统调用(与普通方法不同,程序不能显示调用构造函数)。构造函数还能够被重载,即可以传入参数,当程序中包含有带参的构造函数时...
  • java构造方法调用问题关注:273答案:2手机版解决时间 2021-01-18 03:03已解决2021-01-17 12:22class Employee{ String name; private int age; private double salary; ...
  • 父类的构造方法不能被子类继承。以下语句中MyException类继承了java.lang.Exception类。public class MyException extends Exception{} //MyException类只有一个隐含的默认构造方法尽管在Exception类中定义了如下...
  • 我们通常使用new操作符创建新的实例:Person p = new Person();...调用Class.newInstance()的局限是,它只能调用该类的public无参数构造方法。如果构造方法带有参数,或者不是public,就无法直接通过...
  • Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。 格式: [修饰符] 类名(形参列表){ //n条语句 } 要点: 通过new关键字调用!! 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定...
  • 其实子类的所有构造方法的第一行都有一条隐示super()或者显示的super() 隐示super() 先说一下什么情况下会有隐示的super()。 1.子类构造函数中没写super()并且子父类具有无参构造函数。那么子类第一行便会自动一条...
  • 静态成员 基本定义: 静态成员包括静态方法(static method)和静态变量...java支持静态方法和静态变量,无需创建类的实例就可以调用静态方法。 ----《java语言程序设计 基础篇》原书第10版,梁勇著 要声明一个静态变量
  • java语言中,构造函数又称构造方法。构造函数的作用是初始化对象,即在创建对象时被系统调用(与普通方法不同,程序不能显示调用构造函数)。构造函数还能够被重载,即可以传入参数,当程序中包含有带参的构造函数时...
  • 今天分析了一下匿名内部类调用构造方法的原理,希望高手拍砖。因为匿名内部类没有名字这个特殊性质,所以我们无从给它指定构造方法,构造方法必须和类名同名,类名都没有,构造方法就无从谈起了。但是匿名内部类可以...
  • Java的静态方法里是不能调用非静态方法的,但为什么可以调用构造方法
  • 本文实例讲述了java使用this调用构造函数的实现方法。分享给大家供大家参考,具体如下:一 点睛如果在程序中想用某一个构造函数调用另一个构造函数,也可以用this来实现。二 实战1 代码class Person { String name; ...
  • java构造方法调用普通方法

    千次阅读 2018-08-23 09:37:45
    参考文章:... 参考资料:《java 编程思想》第四版 class Fu{ void draw(){ System.out.println("基类的 draw 方法"); } Fu(){ System.out.println(...
  • 1、 必须在构造方法的第一行使用用this调用类中其他构造方法或super调用父类构造方法    2、 类的构造方法中没有通过this关键字显示的调用类中的其他构造方法,  又没有使用关键字super调用父类的构造方法,在...
  • Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的?...构造方法是new一个对象的时候,必须要调的方法,这是规定,要new父类对象出...
  • 先说构造方法,在使用Class类中的,newInstance() 取得实例化对象时,会出现一些问题。看下面出错的代码:package com.jmd.bingo; class Person { private String name; private int age; // public Person() { //...
  • 子类调用父类的构造方法 父类的构造方法不能被子类继承。以下语句中MyException类继承了java.lang.Exception类。 public class MyException extends Exception{} // MyException类只有一个隐含的默认构造...
  • 详解 Java继承关系下的构造方法调用Java中创建一个类的对象时,如果该类存在父类,则先调用父类的构造方法,然后再调用子类的构造方法。如果父类没有定义构造方法,则调用编译器自动创建的不带参数的默认构造方法...
  • 我们这次在上一章中创建的包下创建Demo04....如果通过反射来创建新的实例,可以调用Class提供的newInstance()方法: Person p=Person.class.newInstance(); 调用Class.newInstance()的局限是,它只能调用该类的pu...
  • 作者:Grady_Camel来源:简书一个新对象初始化的最终步骤是通过new关键字去调用对象的构造方法,构造方法必须满足以下几个条件 方法 (1)方法名必须与类名称完全相匹配(2)不要声明返回类型。 (3)不能被static final ...
  • java构造方法不允许调用重载方法 今年在搭建一个项目的基础架构的时候,遇到了一个问题,一个类的初始化对象总是得到错误的数据,从常规语法上不到赋值错误。java代码大概如下: import org.junit.Test; ...
  • 由于子类不能继承父类的构造方法,因此,要调用父类的构造方法,必须在子类的构造方法体的第一行使用 super() 方法。该方法会调用父类相应的构造方法来完成子类对象的初始化工作。在以下情况下需要使用 super 关键字...
  • Java中,当为一个类创建了多个构造函数时,有时想在一个构造函数中调用另一个构造函数以减少代码量。这时可以使用this关键字来实现。有关构造函数的相关内容,大家可以参阅:Java编程中的构造函数详细介绍通常,当...
  • 我想问java在子类的构造方法时候是先检验是否能生成父类的对象还是先检测是否调用了该子类的其他构造方法,因为我这样试了试通过了编译。![图片说明]...
  • java构造方法和普通方法的区别一、普通方法是有修饰符修饰的成员方法,根据关键字static的有无分为静态方法和非静态方法;一旦使用static修饰成员方法,就成为了静态方法,静态方法不属于对象,而是属于类的;如果...
  • Java中的构造方法(构造器)定义一个在创建对象时自动被调用的特殊方法作用为对象进行初始化(成员变量)工作,即初始化类对象的属性,而构造对象是通过new关键字特征构造器是一种特殊的方法构造方法的名称必须跟类名...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,567
精华内容 9,826
关键字:

java调用构造方法

java 订阅