服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java 构造方法的使用详解

Java 构造方法的使用详解

2022-07-07 09:54兮动人 Java教程

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

1. 看一个需求

看一个需求:前面我们在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如果现在要求,在创建人类的对象时,就直接指定这个对象的年龄和姓名,该怎么做? 这时就可以使用构造器。

2. 基本语法

[修饰符] 方法名(形参列表){
方法体;
}

说明:

  • 构造器的修饰符可以默认, 也可以是 public protected private
  • 构造器没有返回值
  • 方法名 和类名字必须一样
  • 参数列表 和 成员方法一样的规则
  • 构造器的调用, 由系统完成

3. 基本介绍

构造方法又叫构造器(constructor),是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。它有几个特点:

  • 方法名和类名相同
  • 没有返回值
  • 在创建对象时,系统会自动的调用该类的构造器完成对象的初始化。

4. 快速入门

现在就用构造方法来完成刚才提出的问题:在创建人类的对象时,就直接指定这个对象的年龄和姓名

constructor01.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class constructor01 {
 
    //编写一个main方法
    public static void main(string[] args) {
        //当我们new 一个对象时,直接通过构造器指定名字和年龄
        person p1 = new person("smith", 80);
        system.out.println("p1的信息如下");
        system.out.println("p1对象name=" + p1.name);//smith
        system.out.println("p1对象age=" + p1.age);//80
    }
}
 
//在创建人类的对象时,就直接指定这个对象的年龄和姓名
//
class person {
    string name;
    int age;
    //构造器
    //老韩解读
    //1. 构造器没有返回值, 也不能写void
    //2. 构造器的名称和类person一样
    //3. (string pname, int page) 是构造器形参列表,规则和成员方法一样
    public  person(string pname, int page) {
        system.out.println("构造器被调用,完成对象的属性初始化");
        name = pname;
        age = page;
    }
}

Java 构造方法的使用详解

5. 注意事项和使用细节

Java 构造方法的使用详解

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class constructordetail {
 
    //编写一个main方法
    public static void main(string[] args) {
        person p1 = new person("xdr630", 24);//第1个构造器
        person p2 = new person("tom");//第2个构造器
 
    }
}
 
class person {
    string name;
    int age;//默认0
    //第1个构造器
    public person(string pname, int page) {
        name = pname;
        age = page;
    }
    //第2个构造器, 只指定人名,不需要指定年龄
    public person(string pname) {
        name = pname;
    }
}

Java 构造方法的使用详解

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class dog {
    //如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器(也叫默认构造器)
    //使用javap指令 反编译看看
    /*
        默认构造器
        dog() {
            
        }
     */
    //一旦定义了自己的构造器,默认的构造器就覆盖了,就不能再使用默认的无参构造器,
    //除非显式的定义一下,即:  dog(){}  写 (这点很重要)
    //
    public dog(string dname) {
        //...
    }
    dog() { //显式的定义一下 无参构造器
 
    }
}

6. 练习

constructorexercise.java

在前面定义的 person 类中添加两个构造器:

  • 第一个无参构造器:利用构造器设置所有人的 age 属性初始值都为 18
  • 第二个带 pname 和 page 两个参数的构造器:使得每次创建 person 对象的同时初始化对象的 age 属性值和 name 属性值。分别使用不同的构造器:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class constructorexercise {
 
    //编写一个main方法
    public static void main(string[] args) {
        person p1 = new person();//无参构造器
 
        //下面输出 name = null, age = 18
        system.out.println("p1的信息 name=" + p1.name + " age=" + p1.age);
 
        person p2 = new person("scott", 50);
        //下面输出 name = scott, age = 50
        system.out.println("p2的信息 name=" + p2.name + " age=" + p2.age);
 
    }
}
 
/**
 * 在前面定义的person类中添加两个构造器:
 * 第一个无参构造器:利用构造器设置所有人的age属性初始值都为18
 * 第二个带pname和page两个参数的构造器:
 * 使得每次创建person对象的同时初始化对象的age属性值和name属性值。
 * 分别使用不同的构造器,创建对象.
 */
 
class person {
    string name;//默认值 null
    int age;//默认 0
    //第一个无参构造器:利用构造器设置所有人的age属性初始值都为18
    public person() {
        age = 18;
    }
    //第二个带pname和page两个参数的构造器
    public person(string pname, int page) {
        name = pname;
        age = page;
    }
}

Java 构造方法的使用详解

到此这篇关于java 构造方法的使用详解的文章就介绍到这了,更多相关java 构造方法内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://xdr630.blog.csdn.net/article/details/120931518

延伸 · 阅读

精彩推荐