SY2_5.java 程序功能:给定某人姓名与出生日期,计算该人年龄,并输出该人姓名,年龄,出生日期。程序使用了 SY2_4_YMD 的方法来计算年龄。
? 编写 SY2_5.java 程序文件,源代码如下:
import Mypackage.SY2_4_YMD; //引用 Mypackage 包中的 SY2_4_YMD 类
public class SY2_5{
private String name;
private SY2_4_YMD birth;
public static void main(String args[]) {
SY2_5 a = new SY2_5(\吴斌\1993,10,10); a.output(); }
public SY2_5(String n1,SY2_4_YMD d1) { name = n1; birth = d1; }
public SY2_5(String n1,int y,int m,int d) { this(n1,new SY2_4_YMD(y,m,d));//初始化变量与对象
}
public int age()
{ //计算年龄
return SY2_4_YMD.thisyear() - birth.year(); //返回当前年与出生年的差即年龄 }
public void output() {
System.out.println(\姓名 : \name); System.out.println(\出生日期: \rth.toString());
System.out.println(\今年年龄 : \+age()); } }
? 编译并运行程序。
?
(五) 构造方法的重载
构造方法的名称和类同名,没有返回类型。尽管构造方法看起来和一般的成员方法没有差别,但它不是方法,也不是类的成员。因此,构造方法不能直接调用,只能由new 操作符调用。
构造方法对于类是十分重要的,对象的初始化任务要靠构造方法来完成。重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。 ? 编写构造方法RunDemo 的重载程序文件SY2_6,源代码如
下:
class RunDemo {
private String userName, password; RunDemo() {
System.out.println(\全部为空!\);
}
RunDemo(String name) { userName=name; }
RunDemo(String name, String pwd) {
this(name); password=pwd;
check(); }
void check() {
String s=null; if (userName!=null) s=\用户名:\+userName; else
s=\用户名不能为空!\;
if (password!=\) s=s+\口令无效!\; else
s=s+\口令:********\;
System.out.println(s); }
}
public class SY2_6 {
public static void main(String[] args) { new RunDemo();
new RunDemo(\吴斌\);
new RunDemo(null,\郝书华\);
new RunDemo(\周璐\,\); } }
? 编译并运行程序。
? 三个构造方法,其中第一个无参构造方法RunDemo() 的实
际作用是对成员变量赋缺省初值,由于userName和password都是String 类,所以它们的缺省初值为null。第二个构造方法RunDemo(String) 只有一个参数,用来对成员变量userName 赋初值。第三个构造方法RunDemo(String, String) 有两个参数,并有更多的内容,首先调用this(name),其实际作用就是调用当前类的构造方法RunDemo(String name);然后对成员变量password 赋值;最后调用check 方法来检查userName 和password,类似于一般程序的口令验证。重载构造方法的执行由对象根据实际参数的个数、类型和顺序确定。 四、实验练习题(1-3题写在实验报告上并进行上机检查) 1.定义一个表示二维空间中点的类Point,其中包含点的坐标x和
坐标y,以及相应的输出点坐标(x,y)的方法;。
2.创建一个学生类,该类包含学生的信息:学号、姓名、年龄、专
业。创建2个学生对象:(本人和一个同学),输出你们的学号、姓名、年龄和专业信息。
3.定义类PerfectNum,其中包含一个方法用于判读某个数是否为完
全数。编写代码测试输出1000以内的所有完全数。
4.选做: 编写一个Java应用程序,要求能处理银行业务中简单的
帐户存款、取款及查询等功能。