Java学习之Day6

一、构造方法的注意事项

当类中没有提供无参的构造方法的时候,系统在你创建对象的时候也会调用无参构造方法。

这个无参方法系统会帮你提供一个。

如果类中只提供了有参构造方法,那么系统将不再提供无参构造方法。

二、静态变量

静态变量相当于一个共享的变量,每个对象都能访问到。

静态变量存储在内存方法区的静态区中,对象在加载到内存中时,内存情况如下图


步骤如下:

1.加载有main方法的类的class文件到方法区中

2.main方法 入栈(需要创建Girl对象)

3.先把Girl.class加载到方法区中

4.在堆内存中开辟空间创建Girl的对象

5.赋值方法入栈 出栈

6.main方法执行完毕 出栈

7.程序结束


静态变量的好处:节约内存。

静态变量和成员变量的区别:

1.所属不同

    静态变量:属于类,也称类变量

    成员变量:属于对象,也称实例变量(对象变量)

2.在内存中所处的位置不同

    静态变量:存储于方法区的静态区中

    成员变量:存储于堆内存的对象中

3.在内存中得加载时机不同(生命周期)

    静态变量:随着类的加载而加载,随着类的销毁而销毁(类在程序结束后销毁)

    成员变量:随着对象的加载而加载,随着对象的销毁而销毁

4.调用方式不同

    静态变量:可以使用对象调用,也可以使用类名直接调用

    成员变量:只能使用对象调用


静态变量的声明:

static String country;
静态变量的调用:

1.可以使用对象 直接调用(不建议)

2.可以使用类名直接调用(建议)


静态方法:

随着类的加载而加载(跟静态变量一样)

静态方法的执行与成员方法一样,在栈内存中出栈入栈。

静态方法中不能使用成员变量、调用成员方法,因为静态方法加载时,对象还未创建。


三、工具类的创建

编写工具类

1.一般所有方法都使用静态的 方便调用

2.构造方法 私有化


简单的工具类编写:

/**
 * 数组的工具类
 * 获取数组最大值
 * 打印数组
 * 数组反转
 * 选择排序
 * @author gpc 
 * @version 1.0.0
 */
public class ArrayTool {
	
	/**
	 * 构造方法私有化
	 */
	private ArrayTool() {
		
	}

	/**
	 * 获取数组的最大值
	 * @param array	数组
	 * @return		数组最大值
	 */
	 public static int getMax(int[] array) {
		int max = array[0];
		for (int i = 1; i < array.length; i++) {
			if(max < array[i]) {
				max = array[i];
			}
		}
		
		return max;
	} 
	
	/**
	 * 打印数组
	 * @param array	数组
	 */
	public static void printArray(int[] array) {
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}
	}
	
	/**
	 * 反转数组
	 * @param array	数组
	 */
	public static void reverseArray(int[] array) {
		for (int i = 0; i < array.length/2; i++) {
			int temp = array[i];
			array[i] = array[array.length-1-i];
			array[array.length-1-i] = temp;
		}
	}
	
	/**
	 * 选择排序
	 * @param array	数组
	 */
	public static void selectionSort(int[] array) {
		for (int i = 0; i < array.length-1; i++) {
			for (int j = i+1; j < array.length; j++) {
				if(array[i]>array[j]) {
					int temp = array[i];
					array[i] = array[j];
					array[j] = temp;
				}
			}
		}
	}
}

将工具类编译成文档的命令:

javadoc -d (文件夹名) -version -author (文件名.java)












猜你喜欢

转载自blog.csdn.net/ande1922/article/details/80258000
今日推荐