-
第五讲
类、对
打印本页
象和接口(一)
1
类和对象的简介
什么是类上一讲我们使用了一个
St
ring
类,
我们说过:
类把一类对象
的成员函数和方法封装起
来,使用起来很方便。那么,什么是类呢?要理解类,我们先来
了解“对象”的概念,因为类就是
用来创建对象的模板,它包含了被创建的对象的状态描
述和方法定义。
我们可以把长虹牌电视机看成是一个对象。我们不必关心电视机里面的集成电路是怎样的,也
不用关心电视机的显像管的工作原理,我们只需要知道电视机的遥控器上提供了对这台电视机的什< /p>
么操作,比如选台、调节色彩、声音等。这样,我们虽然不知道电视机内部是怎么工作的,
但我们
可以使用这台电视机。听起来这跟编程没什么关系,但面向对象的思想正是与它类
似:对象,对外
只提供操作该对象的方法,内部的实现对外是隐藏的。我们把这种技术叫
做数据隐藏。这样,程序
员不必了解一个对象内部是怎么实现的,但可以很方便地使用这
个对象。
类,就是对象的模板。比如,电视机是一个类,而某一台电视机就是这个类的一个对象,也叫
< br>一个实例。
我们前面使用的
String
类,
< br>虽然我们不知道,
也不必知道里面的实现细节,
但我们只
要知道他
的操作方法,就可以很方便地使用它。这样,对别的程序员编写的程序,我们可
以很方便地拿来使
用,从而提高软件的复用程度和编程的效率。
比如,
我
们构造一个类:
TV
,
然后对外提供一
些对它的操作方法,
选台
selectChannel
(
)<
/p>
等。
然后用这个类创建一个对象:
TV
kongKai
;
然后就可以这样操作
这台电视:
Channel
。
类的另一个特性,也是它的一个大
好处,是继承。继承的概念类似于这样一种表达:电视是一
种电器。如果我们有一个电器
类,那么,我们说,电视机类继承了电器类。继承有什么好处呢?设
想电器类有一些属性
,比如工作电压,功率,有些一些方法,比如:打开
open
(
),
关闭:
close
(
)。这时候,如果电视
类继承了电器类,电视类就自动拥有了电器类的这些属性和方法,而不用
再自己重写一遍
(当然,
如果想重写,
也可以,
我们把这种技术叫做重载)
。
这样做有什么好
处呢?
最明显的好处就是减轻编程的工作量。假设我们有令一个类:
VCD
类,它也继承了电器类,对于打
开关闭等,同样不用
重新编写。
好了,既然面向对象的方法有这么多好处,我们下面就来学习类和对象的一些基本知识。
2
一个例子
下面是一个完整的类的例子,我们
用这个例子详细讲解类的一些用法。
class Employee
{
private String name;
private double salary;
private int
hireYear;
private static String company=new String
(
)
;
public
Employee
(
String n, double s,
int d
)
{ name = n;
salary = s;
hireYear = d;
}
public void
print
()
{
n
(
name +
()
+
())
;
return;
}
public void
raiseSalary
(
double
byPercent
)
{ salary *= 1 + byPercent
/ 100;
}
public void
raiseSalary
(
int
byAbsolute
)
{ salary +=byAbsolute;
}
public int
getHireYear
()
{ return hireYear;
}
public static String
getCompany
()
{
return company;
}
}
为了测试这个类,我们写了一个测试程序:
package teach4;
public class
EmployeeTest
{
public static void
main
(
String[]
args
)
{ Employee emp = new
Employee
(
)
;
()
;
alary
(
5.0D
)
;
()
;
int raise=1000;
alary
(
raise
)
;
()
;
}
}
3
类的结构
3.1
类的声明
class
Employee
{
}
表示一个类的声明,其中,
class
是关键字
,
Employee
是类名。在一对大