Java构造函数

本文详细介绍了Java构造函数的定义、作用、创建规则、类型及其与普通函数的区别。构造函数在对象创建时自动调用,用于初始化对象的状态。Java构造函数分为默认构造函数和参数化构造函数,可以通过构造函数重载提供不同初始化方式。此外,文章还讨论了构造函数与抽象类、接口的关系,并给出了相关编程示例和练习题。
摘要由CSDN通过智能技术生成

Java构造函数

1、Java构造方法定义

Java中的构造方法是一种特殊的方法,用于初始化对象。Java构造函数在对象创建时被调用。它构造值,即提供对象的数据。与函数名相同,无返回值。

2、作用

一般用来初始化成员属性和方法的,即new对象产生后,就调用了对象的属性和方法。

3、创建Java构造函数的规则

创建函数基本上定义了两个规则。分别如下:

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

4、构造函数与普通函数的区别

  • 1、构造函数式对象一建立就运行,给对象初始化,就包括属性,执行方法中的语句一般函数是对象调用才执行,用“.方法名“的方式,给对象添加功能
  • 2、一个对象建立,构造函数值运行一次一般函数就可以被该对象调用多次
/**
* 构造函数
*/
public class Person {

    String name; //姓名
    int age; //年龄

    // 一个无参数的构造函数
    Person(){

    }

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

    public void setName(String name){
        this.name = name;
    }

    public static void main(String[] args) {
        //调用的有参构造函数
        Person p = new Person("张三",14);
        p.setName("王五");
        System.out.println("姓名:" + p.name + "  年龄:" + p.age);

        Person person = new Person();
        person.name = "李四";
        person.age = 15;
        System.out.println(person.name + "  " + person.age);
    }
}

5、Java构造函数类型

有两种类型的构造函数

  • 默认构造函数(无参数构造函数)
  • 参数化构造函数

1、Java默认构造函数
没有参数的构造函数称为默认构造函数。默认构造函数的语句如下:

<class_name>(){}

默认构造函数的示例:
在这个例子中,在Bike类中创建了无参数(no-arg)构造函数,它将在对象创建时被调用。

class Bike1{
 Bike1(){
    System.out.println("This is a GouZaoHanShu");
 }
 public static void main(String[] args) {
    Bike1 bike  = new Bike1();     
 }
}

默认构造函数的目的是为对象提供默认值,如0,null等。
显示默认值的默认构造函数示例

       class Student3 {
           int id;
           String name;
           void display(){
               System.out.println(id + " " + name);
           }
       }

在上边代码中我们并没有为其提供构造函数,但是我们在输出是会发现其是有值的,这就是在上边的类中,代码中并没创建任何构造函数,但编译器自动提供了一个默认构造函数。默认构造函数分别为字段:id和name分别提供了0和null

2.Java参数化构造函数

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

示例:

在构造函数中我们可以添加任意多少的参数

   int id;
   String name;

   GouZaoHanShu2(int id,String name){
       this.id = id;
       this.name = name;
   }

   void display(){
       System.out.println(id + " " + name);
   }

   public static void main(String[] args) {
       GouZaoHanShu2 g1 = new GouZaoHanShu2(111,"zhangsan");
       GouZaoHanShu2 g2 = new GouZaoHanShu2(222,"lisi");

       g1.display();
       g2.display();
   }

3.Java构造函数重载

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

特点抽象类接口
构造方法
普通成员变量
普通方法可以有非抽象的必须是抽象的
抽象方法的访问类型public、protected和默认只能是public的,默认public abstract
静态方法可以有
静态成员变量有 public static final的
其他类只能继承一个抽象类可以实现多个接口
应用场景模块之间通信契约代码重用

6、关于Java构造函数题目

1、下列有关Java构造函数叙述正确的是()

  • A、构造器的返回值为void类型
  • B、如果一个源文件中有多个类,那么构造器必须与公共类同名
  • C、构造器可以有0个,1个或一个以上的参数
  • D、每个类可以有一个以上的构造器

答案:CD
1、构造器没有返回值

    // 一个无参数的构造函数
    Person(){

    }

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

2、B中有多个类时构造函数不一定与公共类同名,因为每个类都可以有构造函数,函数类同所属类。
3、C构造器中可以有任意个参数
4、D每个类都有一个默认构造函数。

2、下面哪个关键字可以用于Java的构造方法上?

  • A、final
  • B、static
  • C、synchronized
  • D、native
  • E、None of these

构造方法不能被子类继承,所以final修饰没有意义。构造方法用于创建一个新的对象,不能作为类的静态方法,所以用static修饰没有意义。此外,Java语言不支持native或synchronized的构造方法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值