【自学笔记】01Java基础-02java基础语法-02变量、对象与类

news/2024/7/7 18:51:04

1 变量、对象、类

  1. 变量
    变量是在编程中用来存储数据的占位符,它具有名称和值。在程序执行过程中,变量的值可以改变。根据作用域和生命周期的不同,变量可分为全局变量、局部变量、类变量(静态变量)、实例变量等。例如,在Java中,可以声明一个整型变量并赋值:

    int age = 25;
    

    在这段代码中,age 是一个变量,用于存储年龄这个数据。

  2. 对象
    对象是面向对象编程中的基本实体,它是类的一个实例。类是一个模板或蓝图,描述了一组相关属性(变量)和方法(行为)。当创建一个类的实例时,就得到了一个具体的对象。例如,假设有一个 Person 类,包含姓名和年龄两个属性,以及一个介绍自己的方法:

    public class Person {
        String name;
        int age;
    
        public void introduce() {
            System.out.println("Hello, my name is " + name + ", and I am " + age + " years old.");
        }
    }
    
    // 创建一个Person对象
    Person person = new Person();
    person.name = "坤";
    person.age = 30;
    person.introduce(); // 输出 "Hello, my name is 坤, and I am 30 years old."
    

    在这里,person 就是一个对象,它是 Person 类的一个实例,拥有 nameage 属性,并且可以调用 introduce() 方法。


  3. 类是一种用户自定义的数据类型,它封装了数据(成员变量/属性)和操作数据的方法(成员函数/方法)。类是对现实世界中某个概念或实体的抽象,它可以被用来创建多个相同类型的对象。类定义了对象的状态和行为。

    继续上述例子,Person 类就是一个定义了人这一概念的基本特性和行为的结构体。通过创建 Person 类的对象,我们能够表示世界上无数个不同的人,并为他们设置不同的名字和年龄,同时也具备自我介绍的能力。

2 Java中变量的分类

  1. 按作用域(声明位置)区分

    • 局部变量:定义在方法、构造器或者代码块内部的变量,其作用范围仅限于它们所在的代码块内。当控制流离开该代码块时,局部变量就会被销毁。
    • 成员变量:声明在类体中但不在任何方法内的变量,每个类实例都有自己的一份成员变量副本。成员变量的作用范围是整个类实例,从对象创建到垃圾回收为止。
    • 类变量:使用 static 关键字修饰的成员变量,它属于类本身,而不是单个类实例。所有该类的对象共享同一份类变量副本,可以通过类名直接访问。
  2. 按生命周期(Lifetime)区分

    • 局部变量:生命周期最短,仅存在于创建它的方法或代码块执行期间。
    • 成员变量(非静态):生命周期与对象相同,从对象创建开始,直到对象被垃圾回收结束。
    • 类变量(静态变量):生命周期始于类加载完成,终于类卸载。即使没有创建类的实例,也可以通过类名访问类变量。
  3. 按存储位置(Storage Location)区分

    • 寄存器变量(Register Variables):这是编译器层面的概念,在Java中不明确指出,由JVM根据需要优化存储位置。
    • 堆变量(Heap Variables):对象实例(包括非静态成员变量)存储在堆内存中。
    • 方法区变量(Method Area Variables):类变量(静态变量)、常量池内容以及类结构信息存储在Java虚拟机的方法区内。
  4. 按数据类型区分

    • 基本类型变量:如int, double, boolean, char等。
    • 引用类型变量:指向对象的引用,如String, Object以及其他自定义类的引用。
  5. 按是否可修改区分

    • 可变变量(Mutable Variables):值可以被改变的变量。
    • 不可变变量(Immutable Variables):一旦初始化后就不能更改其值的变量,例如final修饰的基本类型变量和不可变对象引用。

http://lihuaxi.xjx100.cn/news/1939803.html

相关文章

Ansible的安装及简单使用

## Ansible的安装及简单使用 ## 一.Ubuntu安装Ansible sudo apt update sudo apt install ansible #使用以下命令检查安装是否成功: ansible --version二.配置Ansible #进入配置文件目录 cd /etc/ansible/ ls#文件含义 ansible.cfg #ansible配置文件,默认基本不用…

透明OLED屏的稳定性:从技术角度及应用案例解析

在显示技术日新月异的今天,透明OLED屏以其独特的透明特性和出色的显示效果,吸引了众多关注。然而,对于这种新型技术的稳定性,人们难免会有所疑虑。作为一名专注于OLED技术研发的工程师,尼伽小编将从专业角度出发&#…

南某人:从工厂到品牌的华丽转身!

南某人,这个名字在中国的市场上已经响当当,但你知道吗?这个品牌其实并没有自己的工厂和门店。那么,他们是如何做到年收入高达40亿的呢? 起初,南某人和许多中国品牌一样,从生产保暖内衣起家。然…

嵌入式中的数据初始化

1. 数值类 变量初始化 整型、浮点型的变量可以在定义的同时进行初始化,一般初始化为 0. int num 0; float fnum 0.21f; double dnum 0.32; 2. 字符型 变量初始化 字符型变量也可在定义的同时进行初始化,一般初始化为 \0。 char ch \0; 3. 字符…

快递物流怎么寄最便宜?你一定要知道的5个方法 !

家人们,临近年关,大家的钱包是不是鼓鼓的了,难免的亲戚朋友之间会相互寄送一些东西,所以最近因为需要经常寄快递物流,小编所以特地整理了5个我们平时个人寄快递便宜的方法攻略,推荐第五个,实用干…

大数据情况下如何保证企业数据交换安全

数据交换是指在网络或其他方式下,不同主体按照规定的规则和标准实现数据的共享、传输和处理的过程。大数据时代的到来使得数据交换的重要性更为凸显,大数据带来了海量、多样、高速、低价值密度等特点,也带来了更多的价值挖掘和应用场景。 保障…

Ubuntu18.04 安装 qt 5.15.2

安装qt 1.下载 在线安装包 使用国内镜像源在线安装QT(2023.3.25更新)_qt国内镜像-CSDN博客 2.安装 注意:我安装时 勾选 Qt Design studio 会导致报错,直接不勾选。 Ubuntu 18.04 安装Qt5.15.2开发环境_ubuntu安装qt5.15.2-CSDN博客 3.配置

220.【2023年华为OD机试真题(C卷)】考勤信息(滑动窗口算法-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-考勤信息二.解题思路三.题解代码Python题解代码…