Java构造函数

Java构造函数(构造方法)的简介说明 阅读详情

Java构造函数

构造函数

构造函数的最大作用就是创建对象时完成初始化,当我们在new一个对象并传入参数的时候,会自动调用构造函数并完成参数的初始化

构造函数的规则:

  • 构造函数与类同名
  • 每个类可以有一个以上的构造函数
  • 构造函数可以有0 个 、 1 个或多个参数
  • 构造函数没有返回值
  • 构造函数总是伴随着new操作一起调用

看一个Employee类例子:

public class Employee {


//    关键字 private 确保只有 Employee 类自身的方法能够访问这些实例域 , 而其他类的方法不能够读写这些域 。

//     可以用 public 标记实例域 , 但这是一种极为不提倡的做法
//public 數据域允许程序中的任何方法对其进行读取和修改 ,。 这就完全破坏了封装 。
//任何类的任何方法都可以修改 public 域 , 从我们的经验来看 , 某些代码将使用这种存取权限 , 而这并不我们所希
//望的 , 因此这里强烈建议将实例域标记为 private , ,

    private String name ;

    private double salary ;

    public Employee(String name, double salary) {
        this.name = name;
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "name='" + name + '\'' +
                ", salary=" + salary +
                '}';
    }

    public static void main(String[] args) {


//        说明在我们创建Employee对象的时候,会自动调用构造函数完成初始化,

        Employee employee = new Employee("John",44545);

        System.out.println(employee);


    }
}

细节:

  • 如果你不写构造函数,程序会自动给你加上一个无参数无操作的构造函数(当然你看不见)

  • 如果你写了构造函数,则自定义构造函数会覆盖无参数构造函数

public class Employee_1 {

    @Override
    public String toString() {
        return "Employee_1{}";
    }

    public static void main(String[] args) {

//        没有显式提供构造函数
        
//        程序会自动给你加上一个无参数无操作的构造函数
        
        Employee_1 employee_1 = new Employee_1();

        System.out.println(employee_1);
    }
}

构造函数与普通函数的区别:

  • 一般函数是用于定义对象应该具备的功能。而构造函数定义的是,对象在调用功能之前,在建立时,应该具备的一些内容。也就是对象的初始化内容。

  • 构造函数是在对象建立时由JVM调用, 给对象初始化。一般函数是对象建立后,当对象调用该功能时才会执行。

  • 普通函数可以使用对象多次调用,构造函数就在创建对象时调用。

  • 构造函数的函数名要与类名一样,而普通的函数只要符合标识符的命名规则即可。

  • 构造函数没有返回值类型。

初始化

为什么需要初始化

java规定,变量没有初始化不能使用,全局变量也就是类的属性,java会在编译的时候,自动将他们初始化,所以可以不进行变量初始化的操作,但是(局部)变量必须初始化

初始化就是在最开始定义成员变量时给它一个初始的值,为了防止程序运行时候出现未知的错误,或者bug

总之一句话,为了安全

默认初始化

在Java中,一个类的数据成员(成员变量)如果没有指定初始化,那么Java会对其执行默认初始化

public class InitialValues {

    boolean t;
    char c;
    short s;
    int i;
    long l;
    float f;
    double d;
    String str;
    InitialValues reference;

    void printInitialValues() {
        System.out.printf("%-10s %-5s\n", "boolean:", t);
        System.out.printf("%-10s %-5s\n", "char:", c);
        System.out.printf("%-10s %-5s\n", "short:", s);
        System.out.printf("%-10s %-5s\n", "int:", i);
        System.out.printf("%-10s %-5s\n", "long:", l);
        System.out.printf("%-10s %-5s\n", "float:", f);
        System.out.printf("%-10s %-5s\n", "double:", d);
        System.out.printf("%-10s %-5s\n", "String:", str);
        System.out.printf("%-10s %-5s\n", "reference:", reference);
    }

    public static void main(String[] args) {
        InitialValues iv = new InitialValues();
        iv.printInitialValues();
    }

}


输出:

boolean:   false
char:           
short:     0    
int:       0    
long:      0    
float:     0.0  
double:    0.0  
String:    null 
reference: null 

静态数据的初始化

初始化的顺序是:先静态对象,而后是“非静态”对象。

class Bowl{
    Bowl(int marker){
        System.out.println("Bowl("+marker+")");
    }
    void f1(int marker){
        System.out.println("f1("+marker+")");
    }
}


class Table{

    static Bowl bowl1=new Bowl(1);

    Table(){
        System.out.println("Table()");
        bowl2.f1(1);
    }


    void f2(int marker){
        System.out.println("f2("+marker+")");
    }


    static Bowl bowl2= new Bowl(2);
}


class Cupboard{

    Bowl bowl3=new Bowl(3);

    static Bowl bowl4=new Bowl(4);

    Cupboard(){
        System.out.println("Cupboard()");
        bowl4.f1(2);
    }


    void f3(int marker){
        System.out.println("f3("+marker+")");
    }


    static Bowl bowl5= new Bowl(5);


}

public class StaticInitialization {


//    要执行main(),必须加载StaticInitialization类,然后其静态域table和cupboard被初始化,这导致他们对应的类也被加载,并且由于它们都包含静态的Bowl对象,
//    因此Bowl随后也被加载。这样,在这个特殊的程序中的所有的类在main()开始之前就都被加载了。
//
//    首先从main()函数开始,加载StaticInitializaition类,然后对StaticInitializaition类中的静态域Table进行初始化,加载Table类,Table类中包含静态的Bowl对象,
//    接着加载Bowl类,加载Bowl类构造器创建bowl1对象,输出Bowl(1),加载Bowl类构造器创建bowl2对象,输出Bowl(2);同里创建cupboard对象。
//
//    需要注意的是,bowl3是非静态域,每次创建Cupboard对象都会创建一个Bowl对象。
    public static void main(String[] args) {
        System.out.println("Creating new Cupboard() in main");
        new Cupboard();
        System.out.println("Creating new Cupboard() in main");
        new Cupboard();
        table.f2(1);
        cupboard.f3(1);
    }

    static Table table = new Table();
    static Cupboard cupboard = new Cupboard();
}


非静态成员初始化

在一个类中,非静态成员的初始化,发生在任何方法(包括构造器)被调用之前。并且它们定义的顺序,决定了初始化的顺序

class A{

    A(String s) {

        System.out.println(s);

    }
}

class B{

    A a1 = new A("a1");

    B() {

        System.out.println("B");
        A a2 = new A("a2");

    }

    A a3 = new A("a3");
    void f(){
        System.out.println("f---");
    }
    A a4 = new A("a4");
}

public class Initialization_1 {

    public static void main(String[] args) {

        B b = new B();

        b.f();

    }

}

静态块代码初始化

整个static { 静态代码块 } 可以看作是一个静态成员。当一个类需要执行静态初始化时,该类中的静态成员初始化和静态代码块,会按照先后定义的顺序执行。当然,这个流程也是就执行这一次

class AA{

    public AA(String s) {

        System.out.println(s);
    }
}

class BB{
    AA a1 = new AA("a1");

    static AA a2 = new AA("a2");

    static AA a3,a4;

    static {

        System.out.println("______________");

        a3 = new AA("a3");

        a4 = new AA("a4");

        AA a5 = new AA("a5");

        System.out.println("++++++++++++");

    }

    static AA a6 = new AA("a6");

    AA a7 = new AA("a7");

    public BB() {

        System.out.println("BB");
    }
}
public class Initialization_3 {

    static BB b1 = new BB();

    public static void main(String[] args) {

        new BB();

    }


}

非静态代码初始化

非静态代码块,可以看作一个非静态成员。涉及非静态初始化,也会执行它。和普通的非静态成员初始化一样,它的执行也发生在构造器调用之前,并且每当创建对象之前都会调用。


class AA{

    public AA(String s) {

        System.out.println(s);
    }
}

class BB{
    AA a1 = new AA("a1");

    static AA a2 = new AA("a2");

    static AA a3,a4;

    {

        System.out.println("______________");

        a3 = new AA("a3");

        a4 = new AA("a4");

        AA a5 = new AA("a5");

        System.out.println("++++++++++++");

    }

    static AA a6 = new AA("a6");

    AA a7 = new AA("a7");

    public BB() {

        System.out.println("BB");
    }
}
public class Initialization_4 {

    static BB b1 = new BB();

    public static void main(String[] args) {

        new BB();

    }


}


方法重载

如果多个方法 ( 比如 , StringBuilder构造器方法 ) 有相同的名字 、 不同的参数, 便产生了重载 。 编译器必须挑选出具体执行哪个方法 , 它通过用各个方法给出的参数类型与特定方法调用所使用的值类型进行匹配来挑选出相应的方法 。 如果编译器找不到匹配的参数 , 就会产生编译时错误, 因为根本不存在匹配 ,或者没有一个比其他的更好。( 这个过程被称为重载解析 ( overloading resolution )。

Java 允许重载任何方法 ,而不只是构造器方法。 因此 , 要完整地描述一个方法 ,需要指出方法名以及参数类型 。 这叫做方法的签名 ( signature ) 。 例如 , String 类有 4 个称为 indexOf 的公有方法。它们的签名是

  • indexOf ( int )

  • indexOf ( int , int )

  • indexOf ( String )

  • indexOf ( String , int )

返回类型不是方法签名的一部分 。 也就是说, 不能有两个名字相同 、参数类型也相同却返回不同类型值的方法 。

涉及基本类型的重载

Java中的基本类型有一个特性:它能自动从一个"较小"的类型转换成"较大"的类型!上面这句话什么意思呢?指的就是byte、char、short等"较小"类型能自动转换成int类型,而不需要额外的其他操作。因此,如果这个自动转换的过程涉及到重载,可能会造成混淆。

“由小到大”依次为:byte->short->int->long->float->double;

this关键字

this:引用当前类的实例变量——解决形参和实参的重名尴尬

this关键字可以用来引用当前类的实例变量。如果实例变量和参数之间存在歧义,则 this 关键字可用于明确地指定类变量以解决歧义问题

先看没有使用this例子:


public class Person {

    private int age;

    private String name;

//    public Person(int age, String name) {
//        this.age = age;
//        this.name = name;
//    }

    public Person(int age, String name) {
        age = age;
        name = name;
    }

    @Override
    public String toString() {
        return "Person{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }

    public static void main(String[] args) {

        Person person = new Person(15,"John");

        System.out.println(person);


    }
}


输出:

Person{age=0, name='null'}

在上面的例子中,参数(形式参数)和实例变量(age和name)是相同的。 所以要使用this关键字来区分局部变量和实例变量。

使用this:

public class Person {

    private int age;

    private String name;

    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }

//    public Person(int age, String name) {
//        age = age;
//        name = name;
//    }

    @Override
    public String toString() {
        return "Person{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }

    public static void main(String[] args) {

        Person person = new Person(15,"John");

        System.out.println(person);


    }
}


如果局部变量(形式参数)和实例变量不同,则不需要像下面的程序一样使用this关键字:


public class Person {

    private int age;

    private String name;

//    public Person(int age, String name) {
//        this.age = age;
//        this.name = name;
//    }

//    public Person(int age, String name) {
//        age = age;
//        name = name;
//    }

    public Person(int the_age, String the_name) {
        age = the_age;
        name = the_name;
    }

    @Override
    public String toString() {
        return "Person{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }

    public static void main(String[] args) {

        Person person = new Person(15,"John");

        System.out.println(person);


    }
}


this:调用当前类方法——对象调用方法时其实调用的this.[方法],但在实际中时隐去的

使用this关键字调用当前类的方法。如果不使用this关键字,编译器会在调用方法时自动添加此 this 关键字

public class Demo_1 {

    void f(){
        System.out.println("f_______");
    }

    void m(){
        f();
    }

    void m_1(){
        this.f();
    }

    public static void main(String[] args) {

        Demo_1 d1 = new Demo_1();

        d1.m();

        d1.m_1();

    }
}

this():调用当前类的构造函数

this()构造函数调用可以用来调用当前类的构造函数。 它用于重用构造函数。 换句话说,它用于构造函数链接。也就是说调用一次 this(); 也就调用了一次类(其构造方法也就调用了一次类)

class A{

    public A() {
        System.out.println("the a is ___");
    }

    public A(String name){
        this();

        System.out.println(name);

    }
}
public class D2 {

    public static void main(String[] args) {
        A a = new A("jsaksjk");

    }
}

调用this()必须是构造函数中的第一个语句

this:作为参数传递给方法

this关键字也可以作为方法中的参数传递

public class D3 {

    void m(D3 obj) {
        System.out.println("method is invoked");
        System.out.println(obj.hashCode());
    }

    void p() {
        m(this);
    }



    public static void main(String[] args) {

        D3 d3 = new D3();

        d3.p();

    }
}


this:在构造函数调用中作为参数传递

在构造函数中传递this关键字。 如果必须在多个类中使用一个对象,可以使用这种方式


class DD{

    D4 d4;

    public DD(D4 d4) {
        this.d4 = d4;
    }

    @Override
    public String toString() {
        return "DD{" +
                "d4=" + d4 +
                '}';
    }
}

public class D4 {

    int d = 100;

    public D4() {
        DD dd = new DD(this);
        System.out.println(dd);
    }

    public static void main(String[] args) {

        D4 d4 = new D4();

    }
}

this关键字用来返回当前类的实例

可以从方法中 this 关键字作为语句返回。 在这种情况下,方法的返回类型必须是类类型(非原始)

class DDD{

    DDD get(){
        return this;
    }

    void f(){
        System.out.println("Hello World");
    }

}
public class D5 {

    public static void main(String[] args) {

        new DDD().get().f();

    }
}

JAVA构造函数 一、什么是构造函数 Java构造函数,也叫构造方法,是JAVA中一种特殊的函数。与函数名相同,无返回值。 作用: 一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象的属性和方法。 构造函数和一般函数的对比: (1)构造函数是对象一建立就运行,给对象初始化,就包括属性,执行方法中的语句,而一般函数是对象调用才执行,用 ".方法名" 的方式,给对象添加功能。 (2)一个对象建立,构造函数只运行一次,而一般函数可以被该对象调用多次。 构造函数的特点: ... 阅读详情

相关推荐

STM32MP157+AD7606BSTZ四通道IEPE传感器采集方案实战(附完整电路图)

本文详细介绍了基于STM32MP157和AD7606BSTZ的四通道IEPE传感器采集方案,涵盖硬件电路设计、软件驱动开发及系统性能优化。通过精确的恒流源设计和同步采样技术,实现高精度振动信号采集,适用于工业振动监测等应用场景。

weixin_42713608的博客 702

Java基础-构造函数

java基础-构造函数

m0_60509400的博客 1万+

使用TMS320F28335控制四位共阳数码管

简要阐述利用F28335控制四位共阳数码管的整个过程,包括原理、思路、部分代码以及调试过程。

liujunhaozuishuai的博客 2659

java中构造函数有什么用,java中的构造函数有什么用?用它有什么好处?在什么地方用?...

构造函数是类的一个特殊方法,这个方法用来生成实例时由系统自动调用,程序员无法直接调用。构造函数方法名同类名相同且参数为空。子类继承父类后默认继承父类的构造函数,即:子类存在隐含方法:super(),如果子类重写构造函数则子类也隐含调用super()。如下例:例一:package sample;public class A{A(){System.out.println("主类构造函数调用");}pu...

weixin_34634231的博客 586

别再只会调速度了!用STM32的定时器中断精准控制伺服电机转角(避坑指南)

本文详细介绍了如何利用STM32的定时器中断和PWM输出实现伺服电机的精准转角控制,避免常见的速度控制误区。通过硬件配置、脉冲计数逻辑和优化技巧的实战讲解,帮助开发者掌握高精度位置控制方法,适用于工业自动化和机器人控制等场景。

weixin_42531163的博客 414

新能源知识库(62)组串式、集中式和高压直挂式

因需多台PCS及独立监控设备,单位功率成本比集中式高15%–20%。高压直挂式因省去变压器,大容量项目成本更低(>5MW时优势显著)。组串式储能、集中式储能和高压直挂式储能是当前主流的三类技术路线,其核心差异源于系统架构和控制逻辑的设计差异。组串式交流侧需变压器升压至10kV/35kV,高压直挂式可直接输出6kV/35kV电压,减少转换损耗。多台小功率PCS并联(每簇独立管理)单台大功率PCS(多簇直流侧并联)环流导致容量衰减(损失5%–8%)无变压器损耗(效率>99%)高压直挂电站(≥10MW)

竹君子之家 1515

【Java编程教程】详解Java 构造函数

在Java中,构造函数是类似于方法的代码块。它在创建类的实例时被调用。在调用构造函数时,对象的内存是在内存中分配的。它是一种特殊类型的方法,用于初始化对象。每次使用 new() 关键字创建对象时,至少会调用一个构造函数。如果类中没有可用的构造函数,它会调用默认构造函数。在这种情况下,Java 编译器默认提供默认构造函数。Java 中有两种类型的构造函数:无参数构造函数和参数化构造函数。注意:它被称为构造函数,因为它在对象创建时构造值。没有必要为类编写构造函数。

jiangjun020326的博客 6504

使用amp训练出现Detected call of lr_scheduler.step() before optimizer.step().

这个警告是怎么产生的?是由于在算梯度的时候出现了nan,所以这一次更新会跳过,但是参数仍旧会更新所以出现了问题,按下面的做法加一个判断就行了。但是在使用amp进行混合精度训练出现的一个warning,调换代码顺序也不work。正常在训练的时候,对于优化器和参数更新的顺序这样就可以了。

weixin_46214675的博客 1306

构造函数(构造方法)

构造函数(Constructor)是Java中的一个特殊方法,用于在创建对象时初始化对象的状态。构造函数的主要作用是设置对象的初始值,以便对象可以使用。在Java中,每个类都至少有一个构造函数,用于创建该类的对象。

SpitBubble的博客 1432

kaggle学习笔记-餐厅数据挖掘

分析Zomato数据集的基本思想是为了公平地了解影响在班加罗尔不同地方建立不同类型餐厅的因素,每个餐厅的总评级,班加罗尔是这样一个城市,拥有超过12,000家餐厅,餐厅供应来自世界各地的菜肴。每天都有新的餐馆开业,这个行业还没有饱和,需求也在与日俱增。然而,尽管需求不断增加,新餐馆却很难与老牌餐馆竞争。大多数餐厅都供应同样的食物。班加罗尔是印度的IT之都。这里的大多数人主要依靠餐馆的食物,因为他们没有时间自己做饭。由于对餐馆的需求如此巨大,因此研究一个地方的人口统计学就变得很重要。

优快云XXCQ的博客 1862

基于反事实的因果推理Causal inference based on counterfactuals--一万六千字文献详细解读(因果关系的推理应用)【全文总结】

基于反事实的因果推理Causal inference based on counterfactuals--一万六千字文献详细解读(因果关系的推理应用)【全文总结】---来自一位即将入学的准研一,也希望这篇文章能够激励自己不断走下去!!

qq_46044325的博客 4442

JAVA构造函数(方法)

一、什么是构造函数 java构造函数,也叫构造方法,是java中一种特殊的函数。函数名与相同,无返回值。 作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象了属性和方法。 在现实生活中,很多事物一出现,就天生具有某些属性和行为。比如人一出生,就有年龄、身高、体重、就会哭;汽车一出产,就有颜色、有外观、可以运行等。这些,我们就可以将这些天然的属性和行为定义在构造函数中,...

打杂人-aerchi 16万+

【华为OD机试真题E卷】514、学生方阵 | 机试真题+思路参考+代码分析(E卷复用)(C++、Java、Py)

【华为OD机试真题E卷】514、学生方阵 | 机试真题+思路参考+代码分析(E卷复用)(C++、Java、Py) 题目描述 学校组织活动,将学生排成一个矩形方阵 请在矩形方阵中找到最大的位置相连的男生数量 这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的 注:学生个数不会超过10000

KJ.JK 2492

Java的构造函数与默认构造函数(深入版)

前言 我们知道在创建对象的时候,一般会通过构造函数来进行初始化。在Java的继承(深入版)有介绍到类加载过程中的验证阶段,会检查这个类的父类数据,但为什么要怎么做?构造函数在类初始化和实例化的过程中发挥什么作用? (若文章有不正之处,或难以理解的地方,请多多谅解,欢迎指正) 构造函数与默认构造函数 构造函数 构造函数,主要是用来在创建对象时初始化对象,一般会跟new运算符一起使用,给对象成员变量赋...

NYfor2020的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java的无参构造函数

一点睛 1 如果一个类没有定义任何构造函数,那么该类会自动生成1个默认的构造函数。默认构造函数没有参数。 2 如果一个类定义了构造函数,但这些构造函数都有参数,那么不会生成默认构造函数,也就是说此时类没有无参的构造函数。 通过两个例子来说明。 二使用无参构造函数的错误 1代码 public class ConstructWithNoPara { public stati...

实践求真知 3万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

java的构造函数_Java 构造函数

Java 构造函数在本教程中,您将在示例的帮助下了解Java构造函数,如何创建和使用它们以及不同类型的构造函数。什么是构造函数?在Java中,每个类都有它的构造函数,当类的对象被创建时,该构造函数将被自动调用。构造函数类似于方法,但实际上它不是方法。一个Java方法和Java构造函数以通过其名称和返回类型进行区分。构造函数与类的构造函数同名,并且不返回任何值。例如,classTest{Test...

weixin_34432821的博客 705

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java:构造函数

Java构造函数 目录 Java构造函数 一.构造函数引入 二.构造函数的概念与特点 1.概念: 2.构造函数的特点: 三.默认构造函数 四.继承中的构造方法 1.继承中构造函数的执行顺序 2.继承中构造函数的注意事项 一.构造函数引入 当我们创建一个对象后,可以通过自定义的setter函数来给属性赋值。例如: public class Student { //利用关键字class定义一个类,类名首字母大写 //1.属性 private String

超级马里奥 的博客 6025

java构造函数_Java构造函数

java构造函数Constructor in java is used to create the instance of the class. Constructors are almost similar to methods except for two things – its name is the same as the class name and it has no return ...

从零开始的教程世界 1436

Java构造函数中调用构造函数

惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 在Java中,当为一个类创建了多个构造函数时,有时想在一个构造函数中调用另一个构造函数以减少代码量。这时可以使用this关键字来实现。通常,当使用this关键字时,它意味着“这个对象”或者“当前对象”,并且它自身产生对当前对象的引用。在一个构造函数中,当给传递给它一个参数列表时,它就有了不同的意义。它将直接的...

weixin_30588675的博客 4161

java构造函数_Java 构造函数

1、构造函数是用来干什么的构造函数是用来初始化对象的成员属性的。举个例子:public 在main方法里new一个MyClass对象的过程如下:public 通过new关键字创建一个MyClass对象,并在堆区为这个新创建的对象分配内存空间;调用MyClass类的构造函数为这个新创建的对象初始化其成员属性name和id;声明一个指向MyClass类型的对象引用myClass,令其指向1中新创建的对...

weixin_39830233的博客 263

java的构造函数_Java中的构造函数

构造函数用于初始化对象的状态。与方法类似,构造函数还包含在创建对象时执行的语句集合(即指令)。什么时候构造函数被调用?每次使用new()关键字创建对象时,都会调用至少一个构造函数(可能是默认构造函数)以将初始值分配给同一类的数据成员。构造函数在对象或实例创建时被调用。例如: class Geek{.......// A Constructornew Geek() {}.......}// We c...

weixin_39608748的博客 454

java构造函数有几种_java构造函数的三种类型总结

我们说构造函数能处理参数的问题,但其实也要分三种情况进行讨论。目前有三种类型:无参、有参和默认。根据不同的参数情况,需要我们分别进行构造函数的讨论。这里重点是无参构造函数的初始化也要分两种方法进行分析。下面我们就这三种不同的构造函数类型分别为大家进行展示。1.无参构造函数不带入参的构造函数叫无参构造函数,对类的成员初始化有两种方法:(1)在类成员变量声明时进行初始化public class MyC...

weixin_29813667的博客 2593

什么是Java中的构造函数?

在Java中,每个类都有它的构造函数,当类的对象被创建时,该构造函数将被自动调用。构造函数类似于方法,但实际上它不是方法。一个Java方法和Java构造函数以通过其名称和返回类型进行区分。构造函数与类的构造函数同名,并且不返回任何值。例如,Test() {//构造函数体在这里,Test()是一个构造函数。它具有与该类相同的名称,并且没有返回类型。// 方法主体这里,Test()与类的名称相同。但是,它有一个返回类型void。因此,它是一个方法,而不是一个构造函数。

黑马程序员官方博客 2348

java构造函数写在哪里_java构造函数怎么写

1.怎么写构造函数构造函数一般是用来进行初试化的,看你需要对哪些属性进行初始化#include#includeclass student{public:char name[10];float score;student(char[],float);//这里形式参数就是你要初试化的变量的类型。~student();};student::student(char temp[10],float scor...

weixin_33732812的博客 1262
上一篇: Java编程思想---枚举类型
下一篇: Java继承
Coder_py
博客等级 码龄10年 106粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值