类是对象的抽象,类是模板,类是一类事物经过抽象,所共有属性的集合。
比如有各种各样的汽车,有轿车、货车、面包车等,这些机动车辆都可以被认为是对象,如果让我们用一个词去概括它们(就是抽象的过程)那是什么呢?是汽车,它们都可以被称为汽车(所以说,类是对象的抽象)。汽车这个概念是我们跟据不同的汽车抽象出来的,它能包括马路上所有的机动车辆,那么汽车这个概念就可以针对我们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) 编辑 收藏