函数的参数传递: 基本数据类型的参数传递:形参在该函数中相当于一个变量有效范围就在该函数中,与实参是两个不同的变量,形参的改变不会引起实参的改变。 引用数据类型的参数传递:(对象的引用变量作为参数传递)这种情况下,形参和实参实际上同时指向堆内存的变量,所以形参的改变最终会引起实参的改变。 由于数组也是在堆内存中存储,所以数组对象作为参数传递的情况类似于对象的引用变量作为参数传递。
static静态变量: 编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。、、 有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,这种情况下就会用到静态变量。
static静态方法: 在静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。静态方法不能以任何方式引用this和super关键字。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可使用,而静态方法在使用前不用创建任何对象。 静态代码块: 一个类中可以使用不包含在任何方法体中的静态代码块(static block ),当类被载入时,静态代码块被执行,且只被执行一次,静态块经常用来进行类属性的初始化。
单态设计模式: 单态设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。
让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造方法的访问权限设置为private,这样,就不能用new 操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。 内部类(类中直接定义): 内部类可以访问外部类的成员变量,反之不可以。 如果用static修饰一个内部类,这个类就相当于是一个外部定义的类,所以static的内部类中可声明static成员,但是,非static的内部类中的成员是不能声明为static的。static的内部类不能再使用外层封装类的非static的成员变量,所以static嵌套类很少使用。 当函数的局部变量(函数的形参也是局部变量),内部类的成员变量,外部类的成员变量重名,我们应该按下面的程序代码所使用的方式来明确指定我们真正要访问的变量。 public class Outer{
private int size;
public class Inner {
private int size;
public void doStuff( int size) {
size++; // 引用的是doStuff函数的形参 this.size++; //引用的是Inner类中的成员变量 Outer.this.size++; // 引用的Outer类中的成员变量 } }}
内部类被外部引用的方法:class Outer{ private int size=10; public class Inner { public void doStuff() { System.out.println(++size); } }}public class TestInner{ public static void main( String[] args) { Outer outer = new Outer(); Outer.Inner inner = outer.new Inner(); inner.doStuff(); }}
内部类(方法中定义): 嵌套类也可以在几个程序块的范围之内定义内部类。例如,在方法中,或甚至在for循环体内部,都可以定义嵌套类。在方法中定义的内部类只能访问方法中的final类型的局部变量,用final定义的局部变量相当于是一个常量,它的生命周期超出方法运行的生命周期。
使用Java的文档注释: 文档注释以“/**”开始,以“*/”标志结束,相应的信息和批注所对应的位置很重要! 类的说明应在类定义之前,方法的说明应在方法的定义之前。 批注参数来标记一些特殊的属性及其相应的说明 。@author<作者姓名>@version<版本信息>@param<参数名称><参数说明>@return<返回值说明>
