Java中的构造方法

2021-03-05 01:28

阅读:405

标签:show   变量   一个   关键字   out   load   访问   返回   成员   

Java中的构造方法


 

Java中,我们在声明一个对象并初始化的时候,实际上可以认为是在构造一个对象。比如说:

 

1 Student s = new Student();

后面那个new巴拉巴拉就相当于在构造一个对象。换句话说,new出来一个对象之后,就相当于调用了构造方法。

而在类里面是可以定义构造方法的。当我们没有定义任何构造方法的时候,系统会为我们提供一个默认的构造方法。也就是说,一旦我们定义了构造方法,调用的时候就是我们自己定义的构造方法(而不是系统默认的)。


 

构造方法的作用:

一般是来帮助我们初始化的。来看代码:

 1 package com.hw.TankWar0127;
 2 class Plane{   //定义了一个Plane类
 3     String name;
 4     int damage;
 5     int planeHp;
 6     
 7     public void fly(){
 8         System.out.println(name+"在飞");
 9     }
10 }
11 public class TankDemo {
12     public static void main(String[] args){
13         Plane p1 = new Plane();
14         Plane p2 = new Plane();
15         p1.name = "歼-20";
16         p1.damage = 100;
17         p2.name = "歼-31";
18         p2.damage = 200;
19         System.out.println(p1.name+"可造成的伤害是"+p1.damage);
20         System.out.println(p2.name+"可造成的伤害是"+p2.damage);
21         p1.fly();
22         p2.fly();
23     }
24 }

这里的代码,在主方法里,我们为每一个声明的对象都初始化,显得很麻烦,而如果用构造方法:

 1 package com.hw.TankWar0127;
 2 class Plane{   //定义了一个Plane类
 3     String name;
 4     int damage;
 5     int planeHp;
 6     
 7     public void fly(){
 8         System.out.println(name+"在飞");
 9     }
10     public Plane(String name,int damage,int planeHp){
11         System.out.println("构造方法!");
12         this.name = name;
13         this.damage = damage;
14         this.planeHp = planeHp;
15     }
16 }
17 public class TankDemo {
18     public static void main(String[] args){
19         Plane p1 = new Plane("歼-20",100,500);
20         Plane p2 = new Plane("歼-31",200,600);
21         System.out.println(p1.name+"可造成的伤害是"+p1.damage);
22         System.out.println(p2.name+"可造成的伤害是"+p2.damage);
23         p1.fly();
24         p2.fly();
25     }
26 }

运行结果:

技术图片

 

 

这样,直接在括号里传递参数处就完成了初始化,很方便!

注意:1.构造方法名字必须与类名保持一致,且构造方法不需要提供返回值,因为当我们创建对象的时候会调用构造方法。这个构造方法返回的就是当前对象。

   2.构造方法只能返回当前构造出来的对象!

   3.以上构造方法的代码中,this关键字的意思表示访问的是成员变量(当前成员变量),比如上面的this.name=name,第一个name表示成员变量,第二个name表示参数。如果不加this,name=name系统会默认是参数赋给参数,输出的时候会输出null.因为参数的优先级比较高。


 

关于this关键字的一些额外说明:

this不仅可以访问成员变量,还可访问方法。示例如下:

 1 package com.hw.TankWar0127;
 2 class Plane{   //定义了一个Plane类
 3     String name;
 4     int damage;
 5     int planeHp;
 6     
 7     private void show(){
 8         System.out.println("不给你看!");
 9     }
10     public void myShow(){
11         this.show();
12     }
13 }
14 public class TankDemo {
15     public static void main(String[] args){
16         Plane p1 = new Plane();
17         p1.myShow();
18     }
19 }

技术图片

 

Java中的构造方法

标签:show   变量   一个   关键字   out   load   访问   返回   成员   

原文地址:https://www.cnblogs.com/EvanTheGreat/p/14336185.html


评论


亲,登录后才可以留言!