楼主: keaide

JAVA入门教程

[复制链接]
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
41#
 楼主| 发表于 2006-8-2 22:05 | 只看该作者
protected void finalize () throws throwable{
…… // clean up code for this class
super. finalize();
}

该 例 中 ,通 过 super来 调 用 其 父 类 的 finalize()方 法 ,有 关 super我 们 将 在 § 6.4中 讲 述 ,对 类
java.lang.Ob-ject,我 们 也 将 在 § 6.4中 讲 述 。

§ 6.3 对 象

把 类 实 例 化 ,我 们 可 以 生 成 多 个 对 象 ,这 些 对 象 通 过 消 息 传 递 来 进 行 交 互 (消 息 传 递 即
激 活 指 定 的 某 个 对 象 的 方 法 以 改 变 其 状 态 或 让 它 产 生 一 定 的 行 为 ),最 终 完 成 复 杂 的 任 务


一 个 对 象 的 生 命 期 包 括 三 个 阶 段 :生 成 、 使 用 和 清 除 。 下 面 我 们 分 别 讲 述 :

6.3.1 对 象 的 生 成

对 象 的 生 成 包 括 声 明 、 实 例 化 和 初 始 化 三 方 面 的 内 容 。 通 常 的 格 式 为 :

type objectName = new type ( [paramlist] );

1. type objectName; 声 明 了 一 个 类 型 为 type的 对 象 。 其 中 type是 组 合 类 型 (包 括 类 和 接 口 )。
对 象 的 声 明 并 不 为 对 象 分 配 内 存 空 间 。

2. 运 算 符 new为 对 象 分 配 内 存 空 间 ,实 例 化 一 个 对 象 。 new调 用 对 象 的 构 造 方 法 ,返 回 对
该 对 象 的 一 个 引 用 (即 该 对 象 所 在 的 内 存 地 址 )。 用 new可 以 为 一 个 类 实 例 化 多 个 不 同 的 对
象 。 这 些 对 象 分 别 占 用 不 同 的 内 存 空 间 ,因 此 改 变 其 中 一 个 对 象 的 状 态 不 会 影 响 其 它 对 象
的 状 态 。

3. 生 成 对 象 的 最 后 一 步 是 执 行 构 造 方 法 ,进 行 初 始 化 。 由 于 对 构 造 方 法 可 以 进 行 重 写
,所 以 通 过 给 出 不 同 个 数 或 类 型 的 参 数 会 分 别 调 用 不 同 的 构 造 方 法 。

以 例 6.5中 所 定 义 的 类 Point 为 例 ,我 们 生 成 类 Point的 对 象 :

Point p1 = new Point();

Point p2 = new Point(5,10);

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
42#
 楼主| 发表于 2006-8-2 22:05 | 只看该作者
这 里 ,我 们 为 类 Point生 成 了 两 个 对 象 p1、 p2,它 们 分 别 调 用 不 同 的 构 造 方 法 ,p1调 用 缺 省
的 构 造 方 法 (即 没 有 参 数 ),p2则 调 用 带 参 数 的 构 造 方 法 。 p1、 p2 分 别 对 应 于 不 同 的 内 存 空 间
, 它 们 的 值 是 不 同 的 ,可 以 完 全 独 立 地 分 别 对 它 们 进 行 操 作 。

虽 然 new运 算 符 返 回 对 一 个 对 象 的 引 用 ,但 与 C、 C++中 的 指 针 不 同 ,对 象 的 引 用 是 指 向
一 个 中 间 的 数 据 结 构 ,它 存 储 有 关 数 据 类 型 的 信 息 以 及 当 前 对 象 所 在 的 堆 的 地 址 ,而 对 于
对 象 所 在 的 实 际 的 内 存 地 址 是 不 可 操 作 的 ,这 就 保 证 了 安 全 性 。

6.3.2 对 象 的 使 用

对 象 的 使 用 包 括 引 用 对 象 的 成 员 变 量 和 方 法 ,通 过 运 算 符 · 可 以 实 现 对 变 量 的 访 问 和
方 法 的 调 用 ,变 量 和 方 法 可 以 通 过 设 定 一 定 的 访 问 权 限 (见 § 6.6) 来 允 许 或 禁 止 其 它 对 象 对
它 的 访 问 。

我 们 先 定 义 一 个 类 Point,它 在 例 6.5的 定 义 中 添 加 了 一 些 内 容 。

例6.6
class Point{
int x,y;
String name = "a point";
Point(){
x = 0;
y = 0;
}
Point( int x, int y, String name ){
this.x = x;
this.y = y;
this.name = name;
}
int getX(){
return x;
}
int getY(){
return y;
}
void move( int newX, int newY ){
x = newX;
y = newY;
}
Point newPoint( String name ){
Point newP = new Point( -x, -y, name );
return newP;
}
boolean equal( int x, int y ){
if( this.x==x && this.y==y )
return true;
else
return false;
}
void print(){
System.out.println(name+" : x = "+x+" y = "+y);
}
}
public class UsingObject{
public static void main( String args[] ){
Point p = new Point();
p.print(); //call method of an object
p.move( 50, 50 );
System.out.println("** after moving **";
System.out.println("Get x and y directly";
System.out.println("x = "+p.x+" y = "+p.y); //access variabl

es of an object
System.out.println("or Get x and y by calling method";
System.out.println("x = "+p.getY()+" y = "+p.getY());
if( p.equal(50,50) )
System.out.println("I like this point!!!! ";
else
System.out.println("I hate it!!!!! ";
p.newPoint( "a new point" ).print();
new Point( 10, 15, "another new point" ).print();
}
}
运行结果为:
C:\java UsingObject
a point : x = 0 y = 0
**** after moving *****
Get x and y directly
x = 50 y = 50
or Get x and y by calling method
x = 50 y = 50
I like this point!!!!
a new point : x = -50 y = -50
another new point : x = 10 y = 15

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
43#
 楼主| 发表于 2006-8-2 22:05 | 只看该作者
1. 引 用 对 象 的 变 量

要 访 问 对 象 的 某 个 变 量 ,其 格 式 为 :

objectReference.variable

其 中 objectReference是 对 象 的 一 个 引 用 ,它 可 以 是 一 个 已 生 成 的 对 象 ,也 可 以 是 能 够 生 成 对
象 引 用 的 表 达 式 。

例 如 :我 们 用 Point p=new Point();生 成 了 类 Point的 对 象 p后 ,可 以 用 p.x,p.y来 访 问 该 点 的 x、 y坐
标 ,如

p.x = 10; p.y = 20;

或 者 用 new生 成 对 象 的 引 用 ,然 后 直 接 访 问 ,如 :

tx = new point().x;

2. 调 用 对 象 的 方 法

要 调 用 对 象 的 某 个 方 法 ,其 格 式 为 :

objectReference.methodName ( [paramlist] );

例 如 我 们 要 移 动 类 Point的 对 象 p,可 以 用

p.move(30,20);

虽 然 我 们 可 以 直 接 访 问 对 象 的 变 量 p.x、 p.y来 改 变 点 p的 坐 标 ,但 是 通 过 方 法 调 用 的 方
式 来 实 现 能 更 好 地 体 现 面 向 对 象 的 特 点 ,建 议 在 可 能 的 情 况 下 尽 可 能 使 用 方 法 调 用 。

同 样 ,也 可 以 用 new生 成 对 象 的 引 用 ,然 后 直 接 调 用 它 的 方 法 ,如

new point(). move (30,20);

前 面 已 经 讲 过 ,在 对 象 的 方 法 执 行 完 后 ,通 常 会 返 回 指 定 类 型 的 值 ,我 们 可 以 合 法 地 使
用 这 个 值 ,如 :例 6.6中 类 Point的 方 法 equal返 回 布 尔 值 ,我 们 可 以 用 它 来 作 为 判 断 条 件 分 别 执 行
不 同 的 分 支 。 如 :

if (p.equal (20,30)){
…… //statements when equal
}else {
…… //statements when unequal
}

另 外 ,类 Point的 方 法 newPoint返 回 该 点 关 于 原 点 的 对 称 点 ,返 回 值 也 是 一 个 Point类 型 , 我 们
可 以 访 问 它 的 变 量 或 调 用 它 的 方 法 ,如 :

px = p.newPoint().x 或
px = p.newPoint(). getX();

使用道具 举报

回复
论坛徽章:
0
44#
发表于 2006-8-3 12:48 | 只看该作者
还有没有呢,密切关注ing

使用道具 举报

回复
论坛徽章:
8
数据库板块每日发贴之星
日期:2007-08-24 01:03:22数据库板块每日发贴之星
日期:2007-08-26 01:03:16数据库板块每日发贴之星
日期:2007-08-28 01:03:28数据库板块每日发贴之星
日期:2007-09-10 01:03:02数据库板块每日发贴之星
日期:2007-09-23 01:03:30生肖徽章2007版:鼠
日期:2008-01-02 17:35:53数据库板块每日发贴之星
日期:2008-08-05 01:02:10奥运会纪念徽章:跳水
日期:2008-10-24 13:09:39
45#
发表于 2006-8-5 09:45 | 只看该作者
还可以。

使用道具 举报

回复
论坛徽章:
0
46#
发表于 2006-8-5 13:19 | 只看该作者
好帖子不顶都不行

使用道具 举报

回复
论坛徽章:
66
ERP板块每日发贴之星
日期:2005-08-18 01:01:39生肖徽章2007版:兔
日期:2008-01-02 17:35:53生肖徽章2007版:牛
日期:2008-01-02 17:35:53生肖徽章2007版:蛇
日期:2008-04-07 19:42:14体育版块博采纪念徽章
日期:2008-07-03 19:47:13CTO参与奖
日期:2009-02-20 09:44:20生肖徽章2007版:狗
日期:2009-09-07 16:03:53ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522013年新春福章
日期:2013-02-25 14:51:24生肖徽章:鸡
日期:2006-09-07 17:09:37
47#
发表于 2006-8-5 14:59 | 只看该作者
恩,不错

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表