前言:
类实例化可生成对象,实例方法就是对象方法,实例变量就是对象属性。一个对象的生命周期包括三个阶段:创建、使用和销毁。
创建:
创建对象包括两个步骤:声明和实例化。
声明
声明对象与声明普通变量没有区别,语法格式如下:
type objectName;
其中type是引用类型,即类、接口和数组。示例代码如下:
String name;
该语句声明了字符串类型对象name。可以声明并不为对象分配内存空间,而只是分配一个引用。
实例化:
实例化过程分为两个阶段:为对象分配内存空间和初始化对象,首先使用new运算符为对象分配内存空间,然后再调用构造方法初始化对象。示例代码如下:
String name;
name = new String("Hello World");
代码中String("Hello World")表达式就是调用String的构造方法。初始化完成之后如下图所示:
image.png
空对象:
一个引用变量没有通过new分配内存空间,这个对象就是空对象,Java使用关键字null表示空对象。示例代码如下:
String name =null;
name ="Hello World";
引用变量默认值是null。当试图调用一个空对象的实例变量或实例方法时,会抛出空指针异常NullPointerException.
构造方法:
构造方法是类的特殊方法,用来初始化类的实例变量,在创建对象后自动调用。
构造方法的特点:
1.构造方法名字必须和类名字相同
2.构造方法没有任何的返回值,包括void
3.构造方法只能和new运算符结合使用。
构造方法支持重载和封装。
package text1;
import java.util.*;
public class Helloworld {
public static void main(String[] args) {
// TODO Auto-generated method stub
//System.out.print(myMap.f);
myMap my= new myMap();
}
}
package text1;
public class myMap{
public static int x=100;
private static int f=100;
public int deep;
public myMap() {
// TODO Auto-generated constructor stub
System.out.print("nihaoya"+this.f);
}
}
运行结果:
image.png
销毁对象:
对象不再使用时应该销毁。C++语言对象是通过delete语句手动释放,Java语言对象是由垃圾回收器(Garbage Collection)收集然后释放,程序员不用关心释放的细节。自动内存管理是现代计算机语言发展趋势,例如:C#语言的垃圾回收,Objective-C和Swift语言的ARC(内存自动引用计数管理)。
垃圾回收器(Garbage Collection)的工作原理是:当一个对象的引用不存在时,认为该对象不再需要,垃圾回收器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。