如何在 Java 中创建一个对象
原文:https://www.studytonight.com/java-examples/how-to-create-an-object-in-java
Java 是一种面向对象的编程语言。Java 支持创建类和对象,这是面向对象程序设计的一个基本概念。
在本教程中,我们将学习如何创建类的对象。类是一个实体,它代表一个真实的实体,该实体具有类似真实实体的属性。让我们举一个著名的汽车例子。汽车可以有颜色、品牌名称、制造年份和其他不同的属性。
我们用这样一个类来表示现实生活中的实体:
public class Car
{
private String car_color;
private String brand;
private String fuel_type;
public void Start()
{
...
}
public void Stop()
{
...
}
}
这个给定的类是我们应该如何制造汽车的蓝图,就像我们从蓝图中制造汽车一样,我们创建了一个类的对象,它也被称为类的实例。
为了创建对象,下面是理解对象创建的信息图:
1:这是一个班级的名字
2:它是我们想要创建的对象的名称。它是对一个对象的引用。
3:是为类的对象分配内存的新关键字。
4:它看起来像一个函数,但它是一个构造器,在创建对象时会自动调用。
非常有趣的事实是一个用于在堆中创建的对象内存和引用用于存储在栈中。
Java 中的对象创建示例:
在下面的代码中,我们使用new
关键字为每个对象创建了Car
类的对象car
,我们可以使用.
(点)运算符调用方法。在这里我们使用car
对象调用Start()
和Stop()
方法。
public class Car
{
private String car_color;
private String brand;
private String fuel_type;
public void Start()
{
System.out.println("Car Started");
}
public void Stop()
{
System.out.println("Car Stopped");
}
public static void main(String args[])
{
//creating an object of Car class
Car car = new Car();
//Calling method Start() using object
car.Start();
//Calling method Stop() using object
car.Stop();
}
}
汽车启动 汽车停止
在大多数情况下,我们将使用上述方法创建对象,但是创建对象的方法更多。
示例:使用 Class 类的 newInstance()方法
在下面给出的程序中,我们使用Class
类的newInstance()
方法创建了一个对象。在这个方法中,我们使用方法来代替new
关键字,然后这个方法将创建一个类的实例,并将它存储到引用中。
class Student
{
String stud_name;
int roll_no;
}
public class StudyTonight
{
public static void main(String args[]) throws Exception
{
//creating an object using newInstance() method
Student arr = Student.class.newInstance();
arr.stud_name = "ABC";
arr.roll_no = 123;
//printing data ob an object
System.out.print("Name: "+arr.stud_name+" Roll No: "+arr.roll_no);
}
}
名称:中航卷号:123
示例:使用克隆()方法
在下面给出的程序中,我们使用 clone()
方法创建了一个学生类的对象。当且仅当至少已经创建了类的一个对象时,才可以使用此方法。还确保Cloneable
类在一个类中实现。在调用clone()
方法时,我们要求覆盖它,因为它受到保护。
class Student implements Cloneable
{
String stud_name;
int roll_no;
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
public class StudyTonight
{
public static void main(String args[]) throws Exception
{
Student student = new Student();
student.stud_name = "ABC";
student.roll_no = 123;
//cloning student object to obj
Student obj = (Student) student.clone();
//printing data of an object
System.out.print("Name: "+obj.stud_name+" Roll No: "+obj.roll_no);
}
}
名称:中航卷号:123
示例:使用反序列化创建对象
**在下面给出的示例中,我们使用反序列化来创建类的对象,与创建对象相比,该方法更注重序列化和反序列化。首先,确保要创建对象的类必须是 Serializable 标签,这样才能实现 Serializable 类。在此之后,您只需要反序列化一个对象,然后反序列化时将该对象分配给新对象。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class Student implements Serializable
{
String stud_name;
int roll_no;
}
public class StudyTonight
{
public static void main(String args[]) throws Exception
{
Student student = new Student();
student.stud_name = "ABC";
student.roll_no = 123;
// Serialization of a student object
try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("data.obj"))){
out.writeObject(student);
}
Student obj;
try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"))) {
obj = (Student) in.readObject();
}
//printing data of an object
System.out.print("Name: "+obj.stud_name+" Roll No: "+obj.roll_no);
}
}
名称:中航卷号:123
结论:
类是表示现实实体的对象的蓝图。该对象是在堆中创建的类的实例,但引用了存储在栈中的对象。