`
guojianhui0906
  • 浏览: 48260 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

调用java构造方法的总结

    博客分类:
  • java
 
阅读更多
1.构造方法必须与定义它的类有完全相同的名字。构造方法没有返回类型,也没有void。

2.类可以不声明构造方法,这时类中隐含声明了一个方法体为空的无参构造方法。但当类有明确声明构造方法时,它就不会自动生成。

3.构造方法的调用:子类首先要调用父类的构造方法才能继承父类的属性和方法。如果子类的构造方法中没有显式地调用父类的构造方法,则系统默认调用父类无参数的构造方法。说说3种情况:

①父类和子类都没有显式定义构造方法或者只定义了无参构造方法,这种情况下没有问题,Java 会顺着继承结构往上一直找到 Object,然后从 Object 开始往下依次执行构造函数。以下两个例子效果一样,只是Example2有相关输出:

Example1

public class test1 {
    public static void main(String[] args){
        A example =new A();
    }
}



class A extends B{
}


class B{
}



Example2:

public class test {
    public static void main(String[] args){
        A example =new A();
    }
}



class A extends B{
    public A(){
         System.out.println("A's constructor is invoked.");
    }
}

class B{
    public B(){
        System.out.println("B's constructor is invoked.");
    }

}

输出:B's constructor is invoked

   A's constructor is invoked



②父类只定义有参构造方法,那么无论子类如何定义,编译都会报错,因为父类缺少了默认无参构造方法,需要显式定义。

public class test {
    public static void main(String[] args){
        A example =new A(3);
    }
}


class A extends B{
    public A(int a){
       System.out.println("A's constructor is invoked."+"a="+a);
    }
}



class B{
    private int b=0;
    //public B(){
    //    System.out.println("B's constructor is invoked.");
    //}
  
    public B(int b){
        System.out.println("B's constructor is invoked."+"b="+b);
    }
}

把注释符去掉就可以编译,输出:B's constructor is invoked.
               A's constructor is invoked.a=3


③在父类只有有参构造方法而没有无参构造方法时,可以用super(参数)来调用父类构造方法,但super无参时需要父类的无参构造方法。

public class test {
    public static void main(String[] args){
        A example =new A(3);
    }
}


class A extends B{
    public A(int a){
        super(a);
        System.out.println("A's constructor is invoked."+"a="+a);
    }
}

class B{
    private int b=0;
  
    public B(int b){
        System.out.println("B's constructor is invoked"+"b="+b);
    }

}

输出:B's constructor is invoked.b=3
        A's constructor is invoked.a=3

此处指定用super(3)调用public B(int b),所以就有如下输出:

B's constructor is invoked.b=3
A's constructor is invoked.a=3
分享到:
评论

相关推荐

    NDK开发之C语言调用Java构造方法、父类方法、返回中文字符串乱码问题案例

    关于调用Java构造方法,你可以这样做: ```c++ jclass javaClass = env->FindClass("com/example/YourJavaClass"); jmethodID constructor = env->GetMethodID(javaClass, "<init>", "()V"); jobject javaObject = ...

    java 构造方法的资源

    了解和熟练使用构造方法是Java面向对象编程的基础,下面将详细阐述Java构造方法的相关知识点。 一、构造方法的作用 构造方法的主要任务是在创建对象时设置对象的初始状态,为对象成员变量赋值。当一个类被实例化时...

    java构造方法

    ### Java构造方法详解 #### 一、构造方法基础概念 构造方法是Java中一种特殊的方法,主要用于初始化新创建的对象。每个类至少有一个构造方法。如果程序员没有显式地定义构造方法,Java编译器会自动为类添加一个无...

    构造方法JAVA构造方法

    总结,Java构造方法在创建和初始化对象时起着至关重要的作用。通过理解并熟练运用构造方法,开发者可以更好地设计和实现类,提高代码的可读性和维护性。在实践中,要灵活运用构造方法的重载、`this`关键字以及与继承...

    Java的子类调用父类的构造方法.pdf

    Java的子类调用父类的构造方法.pdf

    Java 构造方法

    Java 构造方法是编程语言中的一个重要概念,特别是在面向对象编程中,如Java。它们是类的特殊方法,用于初始化新创建的对象。当一个对象被创建时,构造方法会被自动调用,为对象的成员变量赋值,进行必要的设置,...

    Java构造方法.pdf

    Java构造方法 Java构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和...

    java 构造器的调用

    总结,Java中的构造器是至关重要的,它们负责对象的初始化,包括设置成员变量的初始值。了解和掌握构造器的调用、初始化、默认构造器、继承中的构造器调用以及构造器重载等概念,是编写高质量Java代码的基础。通过...

    java中的继承(子类调用父类构造方法还不懂).doc

    ### Java中的继承(子类调用父类构造方法) #### 一、继承的基本概念 Java是一种支持面向对象编程的语言,其中“继承”是一项核心特性。继承允许创建一个新的类(称为子类或派生类),该类继承了现有类(称为父类...

    Java构造方法解析.zip

    Java构造方法解析 ...总结起来,Java构造方法是初始化类实例的关键工具,它们允许我们在创建对象时定制初始化过程,确保对象的正确状态。理解并熟练运用构造方法及其特性对于编写高效、可维护的Java代码至关重要。

    java中带有不同构造方法的程序内存分析

    本文件主要探讨了Java中带有不同构造方法的程序如何影响内存分析,这包括无参构造方法、带参数的构造方法以及它们在内存分配中的应用。 首先,让我们了解一下构造方法。构造方法是一种特殊的方法,它的名字与类名...

    浅谈Java程序中的构造方法调用.pdf

    Java 程序中的构造方法调用 Java 程序设计语言中的构造方法是一个特殊的成员方法,它专门用于创建对象和对所创建的对象进行初始化。正确调用构造方法是我们设计程序的关键所在。构造方法的调用方式有三种:一是在...

    Java构造方法解析.pdf

    下面详细解析Java构造方法的特性和使用方法。 构造方法的特性: 1. 方法名与类名相同:构造方法的名字必须与类名完全相同,这是Java语法规定的一部分,便于编译器识别并自动调用构造方法。 2. 构造方法无返回类型:...

    c/c++调用java方法

    《C/C++调用Java方法详解》 C/C++与Java之间的交互,主要依赖于Java Native Interface(JNI)技术。自Java 1.1以来,JNI已成为Java平台不可或缺的一部分,它提供了一种机制,使Java代码能够调用本地(非Java)代码...

    java 子类构造方法

    总结,Java子类构造方法的使用涉及到继承、初始化、方法调用等多个概念。正确理解和运用这些知识点对于编写健壮的Java程序至关重要。通过熟练掌握这些内容,开发者可以更好地设计和实现类的层次结构,提高代码的复用...

    在C或C++中调用JAVA方法

    在C或C++中调用JAVA方法是一种常见的跨语言交互技术,主要依赖于Java Native Interface (JNI)。JNI是Java平台的一部分,它允许Java代码和其他语言编写的代码进行交互,从而实现混合编程。JNI提供了丰富的API,使得...

    java构造方法的作用总结

    Java构造方法的作用总结 Java构造方法是Java语言中的一种特殊方法,它用于初始化新建的对象。构造方法的主要作用是对类进行初始化,它们的方法名必须与类名相同,并且不可以声明返回类型。下面是关于Java构造方法的...

Global site tag (gtag.js) - Google Analytics