sy05_2:构造方法的重载

构造方法的重载

        构造方法的名称和类同名,没有返回类型。尽管构造方法看起来和一般的成员方法没有差别,但它不是方法,也不是类的成员。因此,构造方法不能直接调用,只能由new 操作符调用。

        构造方法对于类是十分重要的,对象的初始化任务要靠构造方法来完成。重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。

1)      编写程序KY5_2.java,将其中的类RunDemo的构造方法进行重载。源代码如下。

public class KY5_2 {
	public static void main(String[] args) {
		RunDemo r1=new RunDemo("刘新宇");
		r1.check();
		RunDemo r2=new RunDemo(null, "654321");
		r2.check();
		RunDemo r3=new RunDemo("张驰","123456");
		r3.check();
	}
}

class RunDemo {
	private String userName, password;
	RunDemo(String name) {
		userName=name;
	}
	RunDemo(String name, String pwd) {
		this(name);
		password=pwd;
	}
	void check() {   //检验用户名和密码
		String s=null;
		if (userName!=null)
			s="用户名:"+userName;
		else
			s="用户名不能为空!";
		if (password!="123456")
			s=s+" 口令无效!";
		else
			s=s+" 口令:******";
		System.out.println(s);
	}
}

2)      编译程序KY5_2.java并运行程序

3)      将程序的输出结果记录在实验报告中。

            程序的输出结果:

            用户名:刘新宇口令无效!

            用户名不能为空!口令无效!

            用户名:张驰口令:******

4)      指出程序中的下面三条语句分别调用了类RunDemo中的哪个构造方法?

        I.        new RunDemo("刘新宇");                       调用RunDemo(String name)方法

        II.      new RunDemo(null,"654321");               调用RunDemo(String name, Stringpwd)方法

        III.    new RunDemo("张驰","12345678");        调用RunDemo(String name, String pwd)方法

5)      类RunDemo中有两个构造方法,其中第一个构造方法RunDemo(String) 只有一个参数,用来对成员变量userName 赋初值。第二个构造方法RunDemo(String, String) 有两个参数,并有更多的内容,首先调用this(name),其实际作用就是调用当前类的构造方法RunDemo(String name);然后对成员变量password 赋值;最后调用check 方法来检查userName 和password,类似于一般程序的口令验证。重载构造方法的执行由对象根据实际参数的个数、类型和顺序确定。




猜你喜欢

转载自blog.csdn.net/qq_40956679/article/details/80762644