本文共 995 字,大约阅读时间需要 3 分钟。
方法的定义与C++句法非常接近。
但貌似方法都依赖于类而存在。
注意static关键字调用的自身类的方法也必须是static类型的。
作用域和C++的概念基本一致,甚至包括花括号的作用域。
注意,在Java中,对象都是采用“引用”来表达的。所以在对象的赋值过程中,都是引用本身的赋值,而对象本身并没有被拷贝。在Java的方法(函数)都是传值的,对于对象,实际上传递的是对象的引用。所以在函数内部,对型参数直接赋值,在函数返回后,实参数是不受到影响的。但是在函数内部,对型参数的属性进行赋值,函数返回后,实参数的属性会发生相应变化。请看下方这个玩死自己的代码。
class Dummy{ Integer v; public Dummy(Integer value) { this.v = value.intValue(); }}class Util { public void swapTwo(Dummy d0, Dummy d1) { Integer temp = d0.v.intValue(); d0.v = d1.v.intValue(); d1.v = temp.intValue(); }}public class MainClass { public static void main(String[] args) { Dummy d0 = new Dummy(0); Dummy d1 = new Dummy(1); System.out.println("d0.v = " + d0.v + ", d1.v = " + d1.v); u.swapTwo(d0, d1); System.out.println("d0.v = " + d0.v + ", d1.v = " + d1.v); }}执行这个Java类之后,d0和d1的v属性将会发生变化,但是d0和d1仍然指向(引用)原始的内存。通过这个例子,也可看出,在正常编码时,没有必要使用Integer这样的内部类,使用类型int对于C++程序员而言更好理解。
Java支持可变数量的相同类型参数。
和C++的要求基本类似,依靠参数表作为签名,不能依靠修饰符和返回值类型。
有些类似于C++的析构函数,一般为protected修饰。
转载地址:http://rsugf.baihongyu.com/