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

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://www.mzph.cn/news/600063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五、书写规则

目录 一、规则举例 三、在规则中使用通配符 四、文件搜寻 五、伪目标 六、多目标 七、静态模式 八、自动生成依赖性 规则包含两个部分,一个是依赖关系,一个是生成目标的方法。 在 Makefile 中,规则的顺序是很重要的,因为&a…

python 数据容器

数据容器概念 一个可以存储多个元素的python数据类型 python有的数据容器 list(列表) tuple(元组) str(字符串) set(集合) dct(字典) 列表 python的列表的数据类型可以是不同的 my_list ["1",123,True,[123,"3333",d,False]]for item in my_list:p…

【uniapp】多规格选择

效果图 VUE <template> <view><view class"wp-80 pd-tb-40 mg-auto"><button type"warn" click"showDrawer(showRight)">筛选</button></view><!-- 筛选-uni-drawer --><uni-drawer ref"s…

Android debug带系统签名

期望是运行直接带系统签名。 gradle 的 android 目录下&#xff1a; signingConfigs {debug {storeFile file("../signAPK/**.jks")storePassword ******keyAlias ******keyPassword ******}release {storeFile file("../signAPK/**.jks")storePassword **…

暗光增强——Zero-DCE网络推理测试

目录 一、Zero-DCE方法1.1 网络优点1.2 网络适用场景1.3 网络不适用场景 二、源码包三、测试四、测试结果五、推理速度六、总结 一、Zero-DCE方法 Zero-DCE&#xff08;Zero-Reference Deep Curve Estimation&#xff09;是一种用于低光照增强的网络。 1.1 网络优点 无需参考…

ClickHouse数据库详解和应用实践

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 概述1.适用场景2.不适用场景 一、核心特性1.完备的DBMS功能2.列式存储与数据压缩 二、安装部署1.在线安装2.离线安装 三、jdbc访问总结 概述 ClickHouse 是一个用于…

你是唯一的 uniq

文章目录 你是唯一的 uniq语法默认无参数统计出现频次仅仅显示重复的行仅仅显示不重复的行更多信息你是唯一的 uniq Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。 官方定义为: uniq - report or omit repeated lines uniq 可检查文本…

wordpress在界面将站点地址直接修改为https导致上不去问题的解决办法

wordpress在界面将站点地址直接修改为https导致上不去问题的解决办法 #修改数据库yz_options

计算机网络——OSI参考模型

1. OSI模型的基本概念 1.1 定义 OSI&#xff08;开放式系统互联&#xff09;模型是一个用于理解和标准化电信系统或计算机网络功能的概念性的框架&#xff0c;用于描述和标准化不同计算机系统或网络设备间通信的功能。 1.2 OSI模型的性质 这个模型由国际标准化组织&#xff08…

StartAI 生图关键词整理 第一期

最近很多小伙伴向小编反馈“StartAI生图效果很差”&#xff0c;“效果不好”...... AI生图的关键在于是否投喂合适的关键词。往往好的创意需要好的词汇去润色~ 小编立刻决定给小伙伴们整理生图关键词&#xff01;&#xff01;&#xff01;&#xff01; 一、生成菠萝的创意切面…

数据结构之哈希——学习笔记

今天看网课学习了哈希的数据结构&#xff0c;写下这一篇博客记录自己的学习过程。 1.哈希简介&#xff1a; 我们发现某些时候映射到小集合的时候会同时有多个值映射到一个下标里面&#xff0c;所以接下来是这种情况的解决方案1&#xff1a; 我们考虑当两个数字映射之后的结果…

FastDFS

docker 安装 1拉取镜像&#xff08;已经内置Nginx&#xff09; docker pull delron/fastdfs 2 构建Tracker # 22122 > Tracker默认端口 docker run --nametracker-server --privilegedtrue -p 22122:22122 -v /var/fdfs/tracker:/var/fdfs -d delron/fastdfs tracker 3 …

【ESP32接入语言大模型之通义千问】

1. 通义千问 讲解视频&#xff1a; ESP32接入语言大模型之通义千问 随着人工智能技术的不断发展&#xff0c;自然语言处理领域也得到了广泛的关注和应用。通义千问由阿里云开发&#xff0c;目标是帮助用户获得准确、有用的信息&#xff0c;解决他们的问题和困惑&#xff0c;也…

数据库 补充 树,红黑树,b树,b+树

01.树 02.二叉树和二叉平衡树 03.平衡二叉树的恢复 将导致不平衡的结点称作被破坏者&#xff0c;破坏了结点的平衡的结点成为破坏者&#xff0c;经过调整可以让该树平衡的结点称为调整结点。 LL型&#xff1a; 以被破坏者的左孩子结点作为调整结点&#xff0c;对其进行右旋…

C# Attribute特性实战(1):Swtich判断优化

文章目录 前言简单Switch问题无参Swtich方法声明Swtich Attribute声明带有Swtich特性方法主方法结果 有参Switch修改代码修改运行过程运行结果 总结 前言 在经过前面两章内容的讲解&#xff0c;我们已经简单了解了如何使用特性和反射。我们这里解决一个简单的案例 C#高级语法 …

WPF美化ItemsControl1:不同颜色间隔

首先我们有的是一个绑定好数据的ItemsControl <ItemsControl ItemsSource"{Binding Starts}"> </ItemsControl> 运行后呢是朴素的将数据竖着排列 如果想要数据之间有间距&#xff0c;可以使用数据模板&#xff0c;将数据放到TextBlock中显示&#xff0…

Flutter PageView属性说明

属性说明scrollDirection滑动反向 Axis.vertical上下滑动 Axis.horizontal左右滑动reverse是否反转 true从最后一个记0controllerPageController见下文physics滚动方式pageSnapping是否有回弹效果onPageChanged监听切换children子组件dragStartBehavior处理拖拽开始行为方式 p…

深度学习(Pytorch版本)

零.前置说明 1、code 2、视频 数据预处理实现_哔哩哔哩_bilibili

回归模型代码实现

回归模型代码实现 1.多元函数线性回归w的求法 import numpy as np# 定义一组自变量&#xff0c;每条数据最后一列为b x np.array([[1,1,1,1],[1,2,3,1],[2,2,4,1],[2,3,5,1]])# 定义w&#xff0c;其中b的值为0.5 y np.dot(x,np.array([2,4,6,0.5])) x_x_1 np.linalg.inv(n…

【2023 CCF 大数据与计算智能大赛】基于TPU平台实现超分辨率重建模型部署 基于Real-ESRGAN的TPU超分模型部署

2023 CCF 大数据与计算智能大赛 《基于TPU平台实现超分辨率重建模型部署》 洋洋很棒 李鹏飞 算法工程师 中国-烟台 2155477673qq.com 团队简介 本人从事工业、互联网场景传统图像算法及深度学习算法开发、部署工作。其中端侧算法开发及部署工作5年时间。 摘要 本文是…