标签: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 }
标签:show 变量 一个 关键字 out load 访问 返回 成员
原文地址:https://www.cnblogs.com/EvanTheGreat/p/14336185.html