java初学者:构造方法

简介: 在前面的文章中,我已经提到过,使用java语言编程主要是依靠类与对象来实现目的,在类的定义中,存在一种特殊的方法——构造函数(又称构造器或构造函数)。

在前面的文章中,我已经提到过,使用java语言编程主要是依靠类与对象来实现目的,在类的定义中,存在一种特殊的方法——构造函数(又称构造器或构造函数)。


构造函数和我们所定义的方法的区别在于:


1、构造方法的名称和类名完全相同。


2、构造方法在定义时没有声明返回值类型。


构造方法的作用:它可以用来构造出一个类的实例并且也可以用来实现对成员对象属性的初始化功能。


实际上在使用new关键字实例化对象时,最先被执行的就是构造方法,如果本身没有定义构造方法,那么系统会提供一个无参数的默认的构造方法。当一个类声明了构造方法后系统就不会再提供默认的构造方法。构造方法和其他的方法一样,也可以实现重载,其实现重载的条件和其他方法也一样,当需要对实例化的对象赋以不同的初始属性时,可以使用构造方法的重载。


对方法的重载需要注意以下几点:


1、所写的几个方法必须在同一个类中。


2、它们的方法名称必须相同。


3、方法参数个数或参数类型或参数类型顺序不同。(需要注意的是方法重载与访问权限修饰符和方法的返回值类型无关)


下面通过一个Student类简单例子来说明构造方法的使用:

5.png6.png


输出结果:


7.png


Java语言提供了一个this关键字,它可以近似理解为我们汉语中的“我”


当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用,可以用来减少我们所定义的变量名,使代码更简洁。其中加上this的表示属性名,没有加的则表示参数名。this关键字可以用来调用构造方法以防没有给属性赋值



可以用this对上面的代码进行优化:

8.png9.png


输出结果:

10.png

相关文章
|
2月前
|
Java 程序员 数据库连接
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
本文详细介绍了Java中的初始化块,包括静态初始化块和非静态初始化块的概念、执行顺序和实际应用场景。通过具体示例,帮助读者理解这两种初始化块的区别和使用场景,让面试官对你刮目相看。
39 0
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
|
2月前
|
Java
在Java中定义一个不做事且没有参数的构造方法的作用
Java程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用super()来调用父类中特定的构造方法,则编译时将发生错误,因为Java程序在父类中找不到没有参数的构造方法可供执行。解决办法是在父类里加上一个不做事且没有参数的构造方法。
|
3月前
|
设计模式 Java 测试技术
Java零基础-构造方法详解
【10月更文挑战第5天】Java零基础教学篇,手把手实践教学!
42 1
|
3月前
|
Java
java构造方法时对象初始化,实例化,参数赋值
java构造方法时对象初始化,实例化,参数赋值
90 1
|
4月前
|
Java API
java调用构造方法
java调用构造方法
49 3
|
3月前
|
Java
java构造方法的两种传值调用对实参的影响
java构造方法的两种传值调用对实参的影响
31 0
|
5月前
|
Java
【Java基础面试十九】、构造方法能不能重写?
这篇文章指出Java中的构造方法不能被重写,因为构造方法必须与类名相同,而重写要求子类方法与父类方法同名,允许构造方法重写将违背这一规则。
【Java基础面试十九】、构造方法能不能重写?
|
3月前
|
Java 程序员 编译器
【Java】继承、super、final、子类构造方法
【Java】继承、super、final、子类构造方法
52 0
|
5月前
|
存储 Java 程序员
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
90 4
|
5月前
|
Java 数据安全/隐私保护
Java代码的执行顺序和构造方法
构造方法是类的一种特殊方法,用于初始化新对象。在 Java 中,每个类默认都有一个与类名同名的构造方法,无需返回类型。构造方法不能用 static、final、synchronized、abstract 或 native 修饰。它可以重载,通过不同的参数列表实现多种初始化方式。构造方法在对象实例化时自动调用,若未显式声明,默认提供一个无参构造方法。构造代码块和静态代码块分别用于对象和类的初始化,按特定顺序执行。
43 0