定义变量和声明变量、定义类和声明类

一、定义变量和声明变量

在编程中,定义变量和声明变量是两个相关但不同的概念,尤其是在静态类型的编程语言中。静态类型的编程语言比如Java

1、声明变量

(1)定义:声明变量是指告诉编译器变量的名字、类型和在某些情况下其存在的事实,但不分配内存空间

(2)特点:声明变量可以出现在代码的多个位置。特别是在具有作用域的概念的语言中,比如Java

(3)前向声明:只声明不定义变量的声明变量的方式,它允许编译器知道变量的存在,以便在后面的代码中正确地引用该变量

(4)举例:在Java中,非成员变量x,'int x;'则是声明变量x为整型,但不为该变量分配内存空间和初始化

2、定义变量

(1)定义:定义变量是指不仅声明变量还为变量分配内存空间(实际创建变量的地方)

(2)特点:

  • 定义变量伴随着初始化。即使不显示初始化,比如在定义类中的成员变量时,编译器也会为变量分配空间,并根据变量类型为其赋予默认值
  • 一个变量在任何作用域内只能被定义一次

(3)举例:在Java中, 成员变量x,若显示初始化,‘int x=10;'则是定义变量x为整型,并将变量x的值初始化为10;若不显示初始化,‘int x;’则是定义变量x为整型,并将变量x的值默认初始化为0

3、小结

(1)声明变量是告诉编译器变量的信息,包括名称、类型、某些事实

(2)定义变量是在声明变量的基础上,为变量分配内存并对其进行初始化

(3)定义了变量一定声明了该变量,但声明了变量不一定定义了该变量

二、定义类和声明类

在Java中,不区分“声明类”和“定义类”的概念,因为这两个术语在Java的语境下是同义的。

1、定义类和声明类

(1)“定义”一个类,指的是创建一个类的完整结构,包括访问权限修饰符、类名、成员变量、构造方法、方法。

(2)因为Java不支持单独的前向声明,因此在Java中定义类的这个过程同时完成了声明类的任务。

(3)一旦编写了定义类的代码就定义了这个类的存在同时也声明了这个类的存在

3、举例:定义一个类Person

public class Person {
    int age;

    public Person() {
    }
    
    public void oper(){
        
    }
}

在这个例子中,'Person'类的定义包含了访问权限修饰符public、类名Person、成员变量age、构造方法Person()、方法oper()这5个必要元素,这个类的定义同时是这个类的声明,因为它提供了类的全部信息。使得编译器和Java虚拟机能够理解和使用这个类

4、小结

在Java中,当我们说“定义一个类”时,通常是指创建了一个包含所有必要元素的完整类结构,这同时也完成了类的声明

相关推荐

  1. 定义变量声明变量、定义声明

    2024-07-10 01:02:05       25 阅读
  2. python声明定制构建初始化基本元

    2024-07-10 01:02:05       49 阅读
  3. C++ 变量声明初始化方式

    2024-07-10 01:02:05       28 阅读
  4. 声明是public类型的变量如何赋值

    2024-07-10 01:02:05       26 阅读
  5. Python变量实例变量

    2024-07-10 01:02:05       46 阅读
  6. python的变量实例变量

    2024-07-10 01:02:05       24 阅读
  7. var、let const声明变量有什么区别

    2024-07-10 01:02:05       63 阅读
  8. C++自动变量static声明静态局部变量

    2024-07-10 01:02:05       47 阅读
  9. js【详解】声明常量变量 const let var

    2024-07-10 01:02:05       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 01:02:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 01:02:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 01:02:05       58 阅读
  4. Python语言-面向对象

    2024-07-10 01:02:05       69 阅读

热门阅读

  1. 2024第三届中国医疗机器人大会第一轮通知

    2024-07-10 01:02:05       16 阅读
  2. 反向业务判断逻辑

    2024-07-10 01:02:05       21 阅读
  3. 决策树构建精要:算法步骤与实现细节

    2024-07-10 01:02:05       21 阅读
  4. 我们为什么要学数据库?

    2024-07-10 01:02:05       20 阅读
  5. redis的setnx实现分布式锁

    2024-07-10 01:02:05       30 阅读
  6. Bert 变种, T5模型

    2024-07-10 01:02:05       21 阅读
  7. Docker实战教程(一)

    2024-07-10 01:02:05       24 阅读
  8. Visual Studio编译优化选项

    2024-07-10 01:02:05       19 阅读
  9. Pywinauto:强大的Windows 应用程序测试工具

    2024-07-10 01:02:05       23 阅读