- 浏览: 460393 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (538)
- C/C++ Primer (69)
- Objective-C Primer (102)
- Python Primer (19)
- JavaScript Primer (1)
- Java Primer (37)
- PHP Primer (17)
- 泛 Linux (37)
- Shell Script (21)
- APUE (21)
- UNP__1&2 (19)
- NetWork (7)
- Oracle周边 (38)
- Mysql里边 (6)
- Windows技 (9)
- 简单算法 & 数据结构 (14)
- 设计模式 (6)
- GTK历程 (12)
- 工具使用 (25)
- 杂事 (23)
- 一些概念 (17)
- Web方面 (10)
- myCodeTools (9)
- ^未 竟$ (13)
- 硬件通信 (2)
- Games (1)
最新评论
忘记留原文地址了,这是杜撰的。。。
这也没反映出对象的消亡过程
java的基础类型传递是值传递,和C语言的一样。
但是java的对象传递,和C语言的引用传递有些不同,因为java是对象,没有地址的观念。
从下面的code可以看出,面向对象所传递的并非地址,而是引用。
只要还有一个引用存在,那么对象也存在;
只要还有一个‘分身’,真身就不会死亡;
import java.lang.*; public class Hero { public static void main(String[] args) { Hero hero = new Hero(); hero.setId(1); // 英雄真身的ID是1 System.out.println("1 hero id = " + hero.getId()); hero.UpdateId(hero); System.out.println("2 hero id = " + hero.getId()); hero.setId(1); // 英雄真身的ID是1 hero.Kill(hero); System.out.println("3 hero id = " + hero.getId()); } private int id; public void UpdateId(Hero hero) { hero.setId(0); hero = null; } public void Kill(Hero hero) { // 这个hero是个局部变量,就像一个指针*p // p != *p hero = null; try { hero.setId(0); } catch (java.lang.NullPointerException ex) { ex.printStackTrace(); } finally { System.out.println("报错呢,看来方法里边就只有一个hero"); } } public int getId() { return id; } public void setId(int id) { this.id = id; } }
发表评论
-
MD5
2011-03-10 17:43 0import java.security.Messag ... -
String.format
2011-03-10 14:32 591对应C中的snprintf(...); public st ... -
Android Activity(窗口)的一生
2010-12-28 14:43 824http://flysnow.iteye.com/blog/ ... -
Android 项目基础之XML
2010-12-28 11:43 664res.layout.main.xml <?x ... -
Android 开发环境搭建
2010-12-28 10:58 924http://7691432.blog.163.com/blo ... -
平台独立的换行符
2010-10-20 09:07 830http://java-admin.iteye.com/blo ... -
Swing JTable资料
2010-09-25 14:31 674http://www.cnblogs.com/keweixia ... -
Swing Buttion Image
2010-09-25 11:18 656http://www.blogjava.net/ruislan ... -
Swing TextField 加强
2010-09-25 11:18 587http://www.blogjava.net/ruislan ... -
Java获取系统信息
2010-09-15 16:07 1024http://mao1985.iteye.com/blog/1 ... -
Java call windows command
2010-09-15 14:33 800http://winter8.iteye.com/blog/4 ... -
Java Operate Excel
2010-09-15 10:12 949使用例子 http://www.iteye.com/topic ... -
Java关键字instanceof
2010-09-14 17:58 680对象比较 http://www.cnblogs.com/ro ... -
jar相关
2010-09-03 18:10 764test |--MANIFEST.MF |--com ... -
未竟IAdaptable
2010-09-02 11:00 642不知道是什么,纯属留脚印记录下。 -
Swing_JfreeChart资料
2010-08-31 16:30 613http://ltc603.iteye.com/blog/30 ... -
一些进阶类记录
2010-08-31 11:11 611java.util.Scanner 一个可以使用正则表达式来分 ... -
System类
2010-08-31 09:31 652System.getProperty()方法可以获取的值:(应 ... -
JNI简介
2010-08-30 14:42 505http://www.iteye.com/topic/2957 ... -
java读写文件大全
2010-08-30 11:37 700可惜啊!代码没有排版的。。。 http://blog.csdn ...
相关推荐
这在处理不同类型的对象时非常有用,比如在一个数组或集合中,可以统一使用父类引用,而实际存储的是各种子类对象。 在“java-面向对象的英雄类”的测试题中,可能会考察以下内容: 1. 类的定义与实例化。 2. 访问...
- 多态:通过虚函数和抽象基类实现,允许多种类型的指针或引用来调用相应的成员函数。 - 异常处理:通过try-catch语句捕获和处理运行时错误,保证程序的健壮性。 - 模板:提供泛型编程,使得代码可以处理多种类型...
### JavaScript对象定义方法详解 #### 一、引言 JavaScript是一种强大的编程语言,在Web开发领域占据主导地位。其中,对象是其核心概念之一,而如何有效地定义和使用对象则是掌握JavaScript的关键技能。本文将深入...
`Hero`类有四个成员属性:排名`$no`、姓名`$name`、昵称`$nickname`以及一个指向下一个`Hero`对象的引用`$next`。通过这个`$next`属性,我们可以将多个`Hero`对象链接起来,形成一个单链表。 创建链表通常从头节点...
在JavaScript编程中,创建一个对象列表来表示"王者荣耀"中的英雄头像是一个常见的应用场景。这个案例可以帮助我们理解如何在实际项目中使用JavaScript对象以及数组来组织数据。下面将详细讲解这个知识点。 首先,...
`delete`关键字用于删除对象的属性,但注意不能删除对象的方法,因为这会导致引用丢失,而非真正的删除。 在JavaScript中,`this`关键字通常指代当前上下文的对象。例如: ```javascript var hero = { name: '...
- `Hero` 类还提供了调整坦克移动的方法,如 `moveup()`、`moveright()`、`movedown()` 和 `moveleft()`,这些方法会根据速度值改变坦克的位置。 3. **EnemyTank 类** - `EnemyTank` 类同样继承自 `Tank`,并且...
同时,通过多态性,可以使用父类引用处理子类对象,增加代码的灵活性。 - 抽象与接口:为了保持代码的松耦合,可能会定义一些抽象类或接口来规定必须实现的行为,如`Battleable`接口,表示角色可以进行战斗。 2. *...
元数据文件PrototypeHero.png.meta是Unity引擎特有的,它存储了关于游戏对象的附加信息,例如在Unity项目中的组件设置、资源引用等。这些信息对于在Unity编辑器中正确加载和使用图像至关重要。元数据文件通常不直接...
在游戏逻辑中,`Games.java`可能包含了战斗系统,它可以通过父类引用(如`IMonster.java`和`IHero.java`接口)调用子类对象的方法,无需关心具体是哪种类型的怪物或英雄。这样,即使后期添加新的怪物或英雄类型,也...
5. 强制多态:涉及到类型转换,如将子类对象赋值给父类引用,或在运算符和方法调用中进行隐式类型转换。例如,`Integer`可以转换为`Number`,或者`double`和`int`相加时,`int`会被转换为`double`。 6. 参数多态...
Blob对象有若干属性和方法,其中`size`属性返回Blob对象的大小,以字节为单位。在上面的例子中,`blobObject.size`会返回22,这是JSON字符串的字节长度。 另一个重要的方法是`slice()`,它用于从原始Blob中创建一个...
1. **基础语法**:包括变量、数据类型(如字符串、数字、布尔值、对象等)、操作符、控制流程(条件语句、循环语句)以及函数的使用。 2. **DOM操作**:Document Object Model (DOM)是HTML和XML文档的结构化表示。...
在这个示例中,`app.module.ts`文件就是应用的根模块,包含了对Angular核心库和应用所需模块的引用。 **3. 组件(Components)** 组件是Angular2应用的基本构建块,它们负责展示UI和处理用户交互。`app.component....
7. **性能优化**:由于频繁的图片切换和动画可能导致性能下降,开发者可能使用了GSAP的一些最佳实践,如延迟加载、缓存DOM元素引用和利用硬件加速等方法来提升性能。 在Hero_Image_Scroller-master这个压缩包中,...
它简化了对bean属性的引用,如`${bean.property}`,并支持基本运算和方法调用。 8. **Facelets**:JSF的默认视图技术,它是一种XML方言,用于创建和组合UI组件。Facelets允许开发者使用模板和包含来组织页面结构,...
C++中,类是面向对象编程的基础,用于封装数据和方法。例如: - `Craftsmanship.cpp` 和 `Craftsmanship.h` 可能表示一种工艺或技能系统,包含相关的方法和属性。 - `Monster.h`, `Hero.h` 分别定义了怪物和英雄类...