长沙产品网站建设,物联网工程专业,十八款禁用黄app软件,浙江省品牌建设联合会网站对象是对类的实例化。对象具有状态和行为#xff0c;变量用来表明对象的状态#xff0c;方法表明对象所具有的行为。Java 对象的生命周期包括创建、使用和清除, Java 语言中创建对象分显式创建与隐含创建两种情况。
显式创建对象
对象的显式创建方式有 4 种。 1. 使用 new …对象是对类的实例化。对象具有状态和行为变量用来表明对象的状态方法表明对象所具有的行为。Java 对象的生命周期包括创建、使用和清除, Java 语言中创建对象分显式创建与隐含创建两种情况。
显式创建对象
对象的显式创建方式有 4 种。 1. 使用 new 关键字创建对象 这是常用的创建对象的方法语法格式如下
类名 对象名 new 类名()2. 调用 java.lang.Class 或者 java.lang.reflect.Constuctor 类的 newlnstance() 实例方法 在 Java 中可以使用 java.lang.Class 或者 java.lang.reflect.Constuctor 类的 newlnstance() 实例方法来创建对象代码格式如下
java.lang.Class Class 类对象名称 java.lang.Class.forName(要实例化的类全称);
类名 对象名 (类名)Class类对象名称.newInstance();调用 java.lang.Class 类中的 forName() 方法时需要将要实例化的类的全称比如 com.mxl.package.Student作为参数传递过去然后再调用 java.lang.Class 类对象的 newInstance() 方法创建对象。 3. 调用对象的 clone() 方法 该方法不常用使用该方法创建对象时要实例化的类必须继承 java.lang.Cloneable 接口。 调用对象的 clone() 方法创建对象的语法格式如下 类名对象名 (类名)已创建好的类对象名.clone();
4. 调用 java.io.ObjectlnputStream 对象的 readObject() 方法
示例常用的前三种对象创建方法。示例代码如下
public class Student implements Cloneable { // 实现 Cloneable 接口private String Name; // 学生名字private int age; // 学生年龄public Student(String name,int age) { // 构造方法this.Name name;this.age age;}public Student() {this.Name name;this.age 0;}public String toString() {return学生名字Name年龄age;}public static void main(String[] args)throws Exception {System.out.println(---------使用 new 关键字创建对象---------);// 使用new关键字创建对象Student student1 new Student(小刘,22);System.out.println(student1);System.out.println(-----------调用 java.lang.Class 的 newInstance() 方法创建对象-----------);// 调用 java.lang.Class 的 newInstance() 方法创建对象Class c1 Class.forName(Student);Student student2 (Student)c1.newInstance();System.out.println(student2);System.out.println(-------------------调用对象的 clone() 方法创建对象----------);// 调用对象的 clone() 方法创建对象Student student3 (Student)student2.clone();System.out.println(student3);}
}解说 使用 new 关键字或 Class 对象的 newInstance() 方法创建对象时都会调用类的构造方法。使用 Class 类的 newInstance() 方法创建对象时会调用类的默认构造方法即无参构造方法。使用 Object 类的 clone() 方法创建对象时不会调用类的构造方法它会创建一个复制的对象这个对象和原来的对象具有不同的内存地址但它们的属性值相同。如果类没有实现 Cloneable 接口则 clone。方法会抛出 java.lang.CloneNotSupportedException 异常所以应该让类实现 Cloneable 接口。程序执行结果如下
---------使用 new 关键字创建对象---------
学生名字小刘年龄22
-----------调用 java.lang.Class 的 newInstance() 方法创建对象-----------
学生名字name年龄0
-------------------调用对象的done()方法创建对象----------
学生名字name年龄0隐含创建对象
除了显式创建对象以外在 Java 程序中还可以隐含地创建对象例如下面几种情况。
1 . String strName “strValue”其中的“strValue”就是一个 String 对象由 Java 虚拟机隐含地创建。
2 . 字符串的“”运算符运算的结果为一个新的 String 对象示例如下
String str1 Hello;
String str2 Java;
String str3 str1str2; // str3引用一个新的String对象3 . 当 Java 虚拟机加载一个类时会隐含地创建描述这个类的 Class 实例。
提示类的加载是指把类的 .class 文件中的二进制数据读入内存中把它存放在运行时数据区的方法区内然后在堆区创建一个 java.lang.Class 对象用来封装类在方法区内的数据结构。
无论釆用哪种方式创建对象Java 虚拟机在创建一个对象时都包含以下步骤 给对象分配内存。将对象的实例变量自动初始化为其变量类型的默认值。初始化对象给实例变量赋予正确的初始值。注意每个对象都是相互独立的在内存中占有独立的内存地址并且每个对象都具有自己的生命周期当一个对象的生命周期结束时对象就变成了垃圾由 Java 虚拟机自带的垃圾回收机制处理。