Java构造方法

14 篇文章 0 订阅
2 篇文章 0 订阅
本文详细介绍了Java构造方法的概念、特点和语法格式,包括无参和有参构造方法的定义及使用。构造方法用于初始化类的新对象,其名称必须与类名相同,无返回值。一个类可以有多个构造方法,通过参数区别。Java会为没有显式构造方法的类提供默认构造器。在创建对象时,构造方法自动调用,返回类的实例。在实际编程中,构造方法常用于对象的初始化设置。
摘要由CSDN通过智能技术生成

Java构造方法

构造方法是类的一种特殊方法,
用来初始化类的一个新的对象,在创建对象(new 运算符)之后自动调用。
Java 中的每个类都有一个默认的构造方法,并且可以有一个以上的构造方法。

特点:

  • 方法名必须与类名相同
  • 可以有 0 个、1 个或多个参数
  • 没有任何返回值,包括 void
  • 默认返回类型就是对象类型本身
  • 只能与 new运算符结合使用

注意:
如果为构造方法定义了返回值类型或使用 void 声明构造方法没有返回值,编译时不会出错,但 Java 会把这个所谓的构造方法当成普通方法来处理。

构造方法不是没有返回值吗?为什么不能用 void 声明呢?

简单的说,这是 Java 的语法规定。实际上,类的构造方法是有返回值的,当使用 new 关键字来调用构造方法时,构造方法返回该类的实例,可以把这个类的实例当成构造器的返回值,因此构造器的返回值类型总是当前类,无须定义返回值类型。但必须注意不要在构造方法里使用 return 来返回当前类的对象,因为构造方法的返回值是隐式的。

注意:

构造方法不能被 static、final、synchronized、abstract 和 native(类似于 abstract)修饰。构造方法用于初始化一个新对象,所以用 static 修饰没有意义。构造方法不能被子类继承,所以用 final 和 abstract 修饰没有意义。多个线程不会同时创建内存地址相同的同一个对象,所以用 synchronized 修饰没有必要。

构造方法的语法格式

class class_name {
    public class_name(){}    // 默认无参构造方法
    public ciass_name([paramList]){}    // 定义构造方法// 类主体
}

每个类可以具有多个构造方法,但要求它们各自包含不同的方法参数。

有参,无参的构造方法

构造方法主要有无参构造方法和有参构造方法两种,示例如下:

public class MyClass {
    private int m;    // 定义私有变量
    MyClass() {
        // 定义无参的构造方法
        m = 0;
    }
    MyClass(int m) {
        // 定义有参的构造方法
        this.m = m;
    }
}

总结:

  • 构造方法作用就是对类进行初始化。如:class a {}//没有任何构造函数。
  • 构造函数的名称必须与类名相同,包括大小写;
  • 构造函数没有返回值,也不能用void修饰.
  • 一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
  • 构造方法可以重载,以参数的个数,类型,顺序。

代码举例:

class Person //人类{
    public Person(String n,int a) //构造方法
    {
         name = n; age = a;
    }
     private string name;
     private int age;
}
static void main(String[] args){
    Person p = new Person("张三",14);//这就是作用,为其初始化
}

new一个对象的时候要用到构造函数,

举例:

Hello hello = new Hello();//这时调用的是Hello的无参数构造方法;

Hello hello = new Hello("hi");//这个是调用Hello有参数构造方法,

如果Hello类中已经有了一个有参数的构造方法,这时再使用 Hello hello = new Hello();
来创建对象的时候就会出错,所以有参数的构造方法就最好加一个无参数的构造方法.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值