用this调用类的构造方法

转载 2015年11月18日 14:41:57

今天看书看到JAVA中This调用类的构造方法,书上写的不太明确,所以找了点资料补充了一下。

在一个Java类中,其方法可以分为成员方法和构造方法两种。构造方法是一个与类同名的方法, 在Java类中必须存在一个构造方法。如果在代码中没有显示的体现构造方法的话,那么编译器在编译的时 候会自动添加一个没有形式参数的构造方法。这个构造方法跟普通的成员方法还是有很多不同的地方。如 构造方法的话一律是没有返回值的。而且也不用void关键字来说明这个构造方法没有返回值。而普通的方 法可以有返回值、也可以没有返回值。不过如果普通的方法没有返回 值的话,那么一定要在方法定义的时候采用void关键字来进行说明。其次构造方法的名字有严格的要求, 即必须与类的名字相同。也就是说,Java编译器发现有个方法与类的名字相同才把其当作构造方法来对待 。而对于普通方法的话,则要求不能够与类的名字相同,而且多个成员方法不能够采用相同的名字。在一 个类中可以存在多个构造方法,这些构造方法都采用相同的名字。只是形式参数不同。Java语言就凭用户 参数的参数来判断调用那个构造方法。
this关键字除了可以调用成员变量之外,还可以调用构造方 法。如下面的代码:

1.           public class Student{ //定义一个类,类的名字为student。   

2.           public Student(){ //定义一个方法,名字与类相同故为构造方法  

3.            

4.           this(“luobo”)  

5.              }  

6.            

7.           public Student(String name){ //定义一个带形式参数的构造方法  

8.               }  

9.           } 

在上面这个代码中,定义了两个构造方法,一个带参数,另一个没有带参数。构 造方法都不会有返回值,不过由于构造方法的特殊性,为此不必要在构造方法定义时带上void关键字来说 明这个问题。在第一个没有带参数的构造方法中,使用了this(“luobo”)这个代码。在构造方法中使this关键字表示调用类中的构造方法。如果一个类中有多个构造方法,因为 其名字都相同,跟类名一致,这跟采用其他方法引用构 造方法一样,都是通过形式参数来嗲用构造方法的。如上例中,this关键字后面加上了一个参数,那么就 表示其引用的是带参数的构造方法。如果现在有三个构造方法,分别为不带参数、带一个参数、带两个参 数。那么Java编译器会根据所传递的参数数量的不同,来判断该调用哪个构造方法。从上面这个示例中可 以看出,this关键字不仅可以用来引用成员变量,而且还可以用来引用构造方法。

不过如果要使用这种方式来调用构造方法的话,有一个语法上的限制。一般来说,利用this关键 字来调用构造方法,只有在无参数构造方法中第一句使用this调用有参数的构造方法。否则的话,翻译的 时候,就会有错误信息。这跟引用成员变量不同。如果引用成员变量的话,this关键字是没有位置上的限 制的。如果不熟悉这个限制的话,那么还是老老实实的采用传统的构造方法调用方式为好。虽然比较麻烦 ,但是至少不会出错。

Java中this调用重载构造函数

在构造器中可以调用本类的其他重载构造器,不能使用构造器名称来调用另一个构造器,而是应该使用Java特定的this(….)来调用。   this(….)方法必须出现在构造器中的第一行,用来调用其他重...

JAVA this关键字用在构造方法中

this 关键字用在构造方法中。 package com.han; /** * this 关键字用在构造方法中。 * @author han * */ public class Thi...

Java中this关键字在构造方法中的使用

1. Java中this关键字代表对象本身。用this关键字可以在类的内部调用属性和方法,这样代码的可读性比较高,因为它明确的指出了这个属性或方法的来源。 2. 同时在构造函数中也可以使用thi...

类方法 实例方法 构造方法 this关键字

类方法:1.用static修饰的是类方法.                      2.无论是实例方法还是类方法,在对象创建之后,都可以用“.”运算符调用这些方法。                 ...

Java this()必须放在构造方法的第一句,在成员方法中不能用this()调用构造方法的原因

看Head First Java 256页 ,书中提到“this()只能用在构造函数中,且它必须是第一行语句!”,不明白原因,查资料发现知乎已经有相关问题,搬运过来做个记录。 https://www...
  • lsly521
  • lsly521
  • 2016年08月18日 18:42
  • 4099

JAVA中super和this调用构造函数

this 和super只能在构造函数中有有一个,且都必须是构造函数当中的第一行。 super关键字,子类可以通过它调用父类的构造函数。 1、当父类的构造函数是无参构造函数时,在子类的构造函数中,...

C语言实现基于SYN洪泛的DoS攻击

这是一个C语言程序,C语言实现基于SYN洪泛的DoS攻击。其中,启动传入参数第一个是伪造源地址,第二个是目的地址,第三个是目的端口号。...

mac终端(命令)的使用(包括如何用终端写c程序)

1.用终端写C程序 1.1打开终端,用“cd”命令进入指定文件夹,用“vi”或者“vim”命令创建C程序的名字。例如: cd /Users/用户名/Desktop 回车执行后就进入桌面文件夹(cd后有...
  • ljnsb
  • ljnsb
  • 2016年08月01日 18:26
  • 3757

JAVA_SE基础——32.this关键字调用本类的构造方法

黑马入学blog... 也算是学习笔记。 下面我们来看段代码:
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用this调用类的构造方法
举报原因:
原因补充:

(最多只允许输入30个字)