摘要
阅读完本章后,大家应能根据需要定义并使用一个用户类,并能够根据需求说明这个用户类的特性。另外,还应该能够使用继续的方法创建子类,实现类的最大化使用。
--------------------------------------------------------------------------------
本章目标:
阅读完本章后,大家应能根据需要定义并使用一个用户类,并能够根据需求说明这个用户类的特性。另外,还应该能够使用继续的方法创建子类,实现类的最大化使用。
8.1 定义并使用一个新类
传授新知
在前面几章中,我们碰到了不少用Java语言编写的程序,它们可以分为两类:
1) Java应用程序;
2) Java小应用程序。
它们都有一个共同的特点,那就是整个程序中只包含一个类。不同在于,这个唯一的类的定义不尽相同。
在Java应用程序中,形如:
public class testBranch1
而在Java小应用程序中,则形如:
public class VariableScope extends Applet
其实,在这些程序中都使用到了其它类。在小应用程序中,很明显,所有的类都是从Applet类中继续来的。在应用程序中,也使用了其它的类,不过不是十分明显,大家想想,System.out.println是从哪来的呢?它是从其它类中继续过来的,它包含在java.lang包中,无须指明,编译器能够自动处理。
Java语言的开发工具包(JDK)中就包含了许许多多的已开发定义的类,我们可以通过使用它们迅速地构建自己的程序。假如你能够熟练地使用它们就能够使用Java语言写出自己所需要的程序。而假如你想要成为Java语言的高手,就一定要学会自己定义类,以供今后的程序使用。下面我们一起来看一下下面这个例子。
实例说明
1.首先,我们使用文字编辑软件输入下面这个源程序。
源程序:Birthday.java
public class Birthday
{
public String year;
public String month;
public String day;
public Birthday()
{
year=”0000”;
month=”00”;
day=”00”;
}
public Birthday(String y,String m,String d)
{
year=y;
month=m;
day=d;
}
public String getBirthday()
{
String fullbirthday=month+”/”+”/”+day+”/”+year;
return fullbirthday;
}
}
2.编译这个程序,假如顺利完成,将在当前目录下生成一个名为Birthday.class的文件;
c:javastudy> javac Birthday.java
3.然后输入以下命令,运行这个程序:
c:javastudy> java Birthday
执行这个程序,将输出一些信息,如下图所示:
图8-1 执行Birthday类的输出
Java语言责怪我们没有定义main方法。
4.接下来,我们再用文字编辑软件输入以下源程序。
源程序:useBirthday.java
public class useBirthday
{
public static void main(String argv[])
{
Birthday birthday1=new Birthday();
Birthday birthday2=new Birthday("1949","10","01");
System.out.println(birthday1.getBirthday());
System.out.println(birthday2.getBirthday());
}
}
3.使用javac编译后,执行以下命令,运行这个程序:
c:javastudy> java useBirthday
执行这个程序,将输出一些信息,如下图所示:
图8-2 执行useBirthday类的输出
传授新知
我们先来看一下第二个程序useBirthday.java,这是个Java应用程序,main方法中共有四条语句。前两条,看上去象是定义变量:
Birthday birthday1=new Birthday();
Birthday birthday2=new Birthday("1949","10","01");
但是,我们从来没有向大家介绍过Birthday这种变量类型呀!是的,在Java语言中并没有Birthday这种变量类型。
可是这条语句在编译过程中并没有报错呀!这是因为,Java语言编译器在useBirtday.java程序所在目录中发现了包含Birthday类定义的Birthday类:Birthday.class。