posts - 24,  comments - 29,  trackbacks - 0
        类是对象的抽象,类是模板,类是一类事物经过抽象,所共有属性的集合。

       比如有各种各样的汽车,有轿车、货车、面包车等,这些机动车辆都可以被认为是对象,如果让我们用一个词去概括它们(就是抽象的过程)那是什么呢?是汽车,它们都可以被称为汽车(所以说,类是对象的抽象)。汽车这个概念是我们跟据不同的汽车抽象出来的,它能包括马路上所有的机动车辆,那么汽车这个概念就可以针对我们java中的类,它并不是具体指哪一辆汽车,也不是具体指那一种汽车,它是一个统称(模板)它具有一定的内容(属性的集合),比如说,必须动力驱动、有车轮等属性,如果想让一个对象被称为是汽车,你必须满足这些属性(类是模板),如果是马拉的车,那就不能叫汽车了。这就是Java中类概念的内涵。

         现在我们已经抽象出一个类——汽车类,汽车有不同的牌子,有不同的颜色,不同的形状,我们称每一辆具体的汽车为汽车类的一个实例,从汽车类到具体汽车的过程被称为实例化的过程,又称为类(汽车类)的实例化。在Java中一个类的实例化是通过关键字“new”来进行的。

比如说我们现在声明一个汽车类:

public class Car

{

……

}

进着进行一个类的实例化:

new Car();

一个类的实例是针对一个具体的对象的,它是一些具体属性的集合,

设计自己的类

      下面设计一个自己的类,我们的目的是做一个小型的学生管理系统,既然是学生管理系统,我们必须要拥有学生类,下面我们就开始设计一个学生类。

需求分析:

1、 对于一个学生类(class  Student),作为整个系统最核心的类,我们希望它能包括学生公有的基本信息:学生姓名、学号、性别、出生年月、专业、籍贯等。

2、 做为学生类的实例,我们希望能通过设置或访问来修改这些学生的不同信息。

public class StudentTest

{

       public static void main(String[] args)

       {

              Student tom=new Student("Tom","20020410");

              tom.setStudentSex("man");

              tom.setStudentAddress("America");

              System.out.println(tom.toString());

       }

}

class Student

{

       private String strName=""; //学生姓名

       private String strNumber=""; //学号

       private String strSex=""; //性别

       private String strBirthday=""; //出生年月

       private String strSpeciality=""; //专业

       private String strAddress="";

       public Student(String name,String number)

       {

              strName=name;

              strNumber=number;

       }

       public String getStudentName()

       {

              return strName;

       }

       public String getStudentNumber()

       {

              return strNumber;

       }

       public void setStudentSex(String sex)

       {

              strSex=sex;

       }

       public String getStudentSex()

       {

              return strSex;

       }

       public String getStudentBirthday()

       {

              return strBirthday;

       }

       public void setStudentBirthday(String birthday)

       {

              strBirthday=birthday;

       }

       public String getStudentSpeciality()

       {

              return strSpeciality;

       }

       public void setStudentSpeciality(String speciality)

       {

              strSpeciality=speciality;

       }

       public String getStudentAddress()

       {

              return strAddress;

       }

       public void setStudentAddress(String address)

       {

              strAddress=address;

       }

       public String toString()

       {

              String information="学生姓名="+strName+",学号="+strNumber;

              if(!strSex.equals(""))

                     information+=",性别="+strSex;

              if(!strBirthday.equals(""))

                     information+=",出生年月="+strBirthday;

              if(!strSpeciality.equals(""))

                     information+=",专业="+strSpeciality;

              if(!strAddress.equals(""))

                     information+=",籍贯="+strAddress;

              return information;

       }

}

分析:

     在程序中我们构建了一个学生类的实例:

Student tom=new Student("Tom","20020410");

这样的过程就是类的实例化的过程。tom是Student类实例的句柄,也就是我们所说的对象句柄,在后面对对象所进行的任何操作,都是通过操作对象句柄进行的。我们通过关键字new生成Student类的一个实例,一个实例代表的是一个特定属性的对象,我们生成的特定对象是学生:姓名是tom,学号是20020410的一个学生。

构造器(构造方法)

能过关键字new来生成对象的实例,是通过构造器(constructor)来实现的。简单的说:构造器是同类名相同的特殊方法。

public Student(Student name,String number)

{

 strName=name;

 strNumber=number;

}

当构造一个学生类的实例时,学生类的构造器就被启动,它给实例字段赋值。

构造器与方法的不同之处是:构造器只能与关键字new一起使用,构建新的对象。构造器不能应用于一个已经存在的对象来重新设置实例字段的值。

构造器的特点:

1、 构造器与类名相同(包括大小写)

2、 一个类可有多个构造器。

3、 构造器可以有0个、1个或多个参数。

4、 构造器没的返回值,但不能用void修饰。

构造器总是和new运算符一起被调用。
posted on 2007-08-18 12:57 心随Wǒ动 阅读(380) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 
<2007年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

QQ群:9028409
QQ:29850994
点击这里给我发消息

留言簿(2)

随笔档案

积分与排名

  • 积分 - 31062
  • 排名 - 1349

最新评论

阅读排行榜

评论排行榜