java中怎么编写一个类_Java入门(8) 创建新类

本章目标:

阅读完本章后,大家应能根据需要定义并使用一个用户类,并能够根据需求说明这个用户类的特性。另外,还应该能够使用继承的方法创建子类,实现类的最大化使用。

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.javapublic 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.javapublic 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。

也就是说,这两条语句定义了2个属于Birthday类的对象:birthday1和birthday2。从Birthday.java程序中,我们可以看到Birthday类包含三个字符型成员变量:public String year;

public String month;

public String day;

一些提示:

我们将Birthday称为类,而将birthday1和 birthday2称为对象。请大家一定要明明白白地知道其中原委。类是一类事物,而对象则是一个个体。

成员变量是一个形象的术语,表示这些变量属于这个对象,属于这个类。

同时,分别使用new Birthday()和new Birthday(“1949”,”10”,”01”)为它们赋初值。

1)Birthday birthday1=new Birthday();

在这一句中,调用的是Birthday类中的Birthday()方法,我们从Birthday.java中可以看到这个方法实现:public Birthday()

{

year=”0000”;

month=”00”;

day=”00”;

}

也就是说,它将对象birthday1的三个成员变量year,month和day分别赋予了初值“0000”,“00”和“00”。

2) Birthday birthday2=new Birthday("1949","10","01");

在这一条语句中,虽然方法名同是Birthday,但它带上了参数,所以它调用的是Birthday类中的Birthday(String y,String m,String d)方法。这个方法的实现是:public Birthday(String y,String m,String d)

{

year=y;

month=m;

day=d;

}

也就是将其所带的参数值,分别赋值给三个成员变量。在本例中,“1949”赋值给year,“10”赋值给month,“01”赋值给day。

这个程序中另两条语句则十分相似:System.out.println(birthday1.getBirthday());

System.out.println(birthday2.getBirthday());

很明显,这两条语句的用途是打印出birthday1和birthday2两个对象的一些信息。什么信息呢?我们可以发现这两条语句中都使用了Birthday类中的getBirthday方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值