声明、初始化、实例化、三者的含义和区别

在编程中,以下是实例化、声明和初始化的含义和区别:

1.声明(Declaration):声明是指在代码中引入一个变量、对象或函数的名称和类型,以便在后续的代码中使用它。声明告诉编译器在程序中存在一个特定的标识符,但它并不分配内存或分配初始值。声明只是为标识符提供了一个名称和类型。例如:

int num; // 声明一个名为"num"的整型变量

2.初始化(Initialization):初始化是指在创建对象或声明变量后,为其分配初始值。初始化可以在声明时进行,也可以在后续的代码中进行。对于基本类型的变量,如果没有显式地进行初始化,它们会被自动初始化为默认值(如0、false等)。对于对象类型的变量,如果没有显式地进行初始化,它们会被默认初始化为null。例如:

int num = 10; // 在声明时进行初始化
String name; // 声明一个名为"name"的字符串变量
name = "John"; // 在后续的代码中进行初始化

        在上面的示例中,num变量在声明时进行了初始化,而name变量在声明后的某个时间点进行了初始化。

3.实例化(Instantiation):实例化是指创建一个类的对象(实例),以便在程序中使用该对象的属性和方法。在实例化过程中,分配内存以存储对象,并调用类的构造函数来初始化对象的状态。实例化后,对象可以通过引用进行访问和操作。例如:

Person person = new Person(); // 实例化一个名为"person"的Person类对象

        在上面的示例中,new Person()表示创建一个Person类的实例,并将其分配给名为person的变量。

因此我们可以得知:

        声明是为标识符提供名称和类型,实例化是创建类的对象,而初始化是为变量或对象分配初始值。声明和实例化通常结合在一起,而初始化可以在声明时或稍后的代码中进行。


那么实例变量又怎么理解呢?

成员变量是定义在类中的变量,可以是静态的(static)或非静态的。静态成员变量属于类本身,只有一份副本,而非静态成员变量每个类的实例都有自己的副本。

非静态成员变量也可以称为实例变量,因为它们的值是与类的每个实例(对象)相关联的。每个对象都有自己的实例变量副本,它们的值可以因对象而异。这些实例变量存储在对象的堆内存中,并在对象创建时被初始化。

以下是修正后的示例,展示了成员变量(实例变量)的声明和使用:

public class MyClass {
    // 成员变量声明(实例变量)
    private int num;
    private String name;
​
    public void setValues(int n, String str) {
        // 成员变量赋值
        num = n;
        name = str;
    }
​
    public void displayValues() {
        // 使用成员变量
        System.out.println("num: " + num);
        System.out.println("name: " + name);
    }
​
    public static void main(String[] args) {
        // 创建对象并调用实例方法
        MyClass obj1 = new MyClass();
        obj1.setValues(10, "John");
        obj1.displayValues();
​
        MyClass obj2 = new MyClass();
        obj2.setValues(20, "Jane");
        obj2.displayValues();
    }
}

在上面的示例中,numname都是成员变量(实例变量),因为它们定义在类中但不是静态的(用static修饰)。每个MyClass对象都有自己的numname变量副本,可以通过对象的实例方法来设置和显示这些成员变量的值。

结尾语:记录于2023年7月18号23时51分,以上仅为个人在菜鸟教程的学习过程中遇到的问题,还有记录的个人想法,有错误欢迎指出,感谢!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stevedash

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值