Java中变量的学习

news2024/11/15 13:35:43

目录

概述:Java中的成员包含五部分

第一部分:变量

(1)Java中的变量分类

 (2)成员变量和局部变量的位置区别

(3)Java中成员变量作用域/Java权限修饰符

(4)Java中成员变量和成员属性的区别

(5)成员变量初始化方式

(6)成员变量初始化顺序

概述:Java中的成员包含五部分

Java的基本单位是类,类中包含五个部分。

(1)变量

(2)方法

(3)构造器

(4)初始化块

(5)内部类

第一部分:变量

(1)Java中的变量分类

①Java中的变量根据数据类型分为几类?

两类:Java中的变量根据数据类型分为两类:基本数据类型变量和引用数据类型变量。

②Java中的变量定义位置?

两类:变量根据定义位置的不同分为成员变量和局部变量。成员变量直接定义在类中局部变量定义在方法体中或者语句块中。

③Java成员变量分为哪两种?Java成员变量和类变量的区别是什么?

Java成员变量根据修饰符不同又分为实例变量和类变量(静态变量)。Java成员变量和类变量的区别是成员变量包含类变量。

(2)成员变量和局部变量的位置区别

①成员变量直接定义在类中,整个类可以使用。

class Ver_1
{
    //成员变量,定义在类里
    int a = 10;

 
}

②局部变量定义在方法块中,必须赋一个初始值,只有在方法中才可以使用,出了方法就不可以使用。

public void test(){
        //局部变量
        int a = 100;
    }

③内存位置不一样。成员变量位于堆当中。局部变量位于栈当中。

④生命周期不同。成员变量随着对象创建而诞生,随着对象被回收消失。局部变量随着方法进栈诞生,随着方法出栈消失。

(3)Java中成员变量作用域/Java权限修饰符

对于类的成员(包括成员变量和成员方法)而言,其能否被其他类所访问,取决于该成员的修饰词。

①其中public成员变量可以被任何类访问和使用。可以通过类名.成员变量名的方式来访问public成员变量。 

②protected成员变量只能在类内部和子类中使用。在子类中,可以通过super关键字来访问父类的protected成员变量。

③(如图)

④private成员变量只能在类内部使用,要访问private成员变量必须通过类提供的公共方法来访问。

(4)Java中成员变量和成员属性的区别

①属性的官方定义:属性是指get或者set方法名,去掉get或者set后,把剩余的部分首字母改为小写后,即为这个类的属性。

②图中紫色P为类的属性,黄色f为成员变量。从图中可以看出age是成员变量,size和name为类的属性,不是类的成员变量。

(5)成员变量初始化方式

①直接无值初始化,会给一个默认值

class Ver_1
{
   
    //成员变量初始化时不赋值会有默认值
    private boolean flag;   // false
	private int _int;       // 0

	private char _char;     //'0000'
	
	private float _float;   //Default value: 0.0
	private long _long;     //Default value: 0
	private double _double; //Default value: 0.0

	//引用类型默认值是 null
}

②直接赋值初始化

class Ver_1
{
    //成员变量,定义在类里
    int a = 10;

}

③构造方法初始化,在进入构造函数之前,默认初始化num为0,进入构造函数后赋值为20。

public class Ver_1{
  int num ;  
  public Ver_1(){
    num = 20;
  }
}

(6)成员变量初始化顺序

①非静态成员变量,在构造函数之前初始化,并且按定义顺序初始化。

②静态代码块和静态成员变量执行顺序和代码中出现的顺序有关。

③静态成员变量优先于非静态成员变量,静态初始化只在Class对象第一次创建时发生一次。下面搬运了一段代码举例:

public class StaticInitialization {
	public static void main(String[] args) {
		System.out.println("Creating new Cupboard() in main");
		new Cupboard();
		System.out.println("Creating new Cupboard() in main");
		new Cupboard();
		t2.f2(1);
		t3.f3(1);
	}
	static Table t2 = new Table(); 
	static Cupboard t3 = new Cupboard(); 
}
class Bowl{
	Bowl(int i){
		System.out.println("Bowl"+i);
	}
	void f(int i){
		System.out.println("f"+i);
	}
}
class Table{
	static Bowl b1 = new Bowl(1); 
	Table(){
		System.out.println("Table()");
		b2.f(1);
	}
	void f2(int i){
		System.out.println("f2("+i+")");
	}
	static Bowl b2 = new Bowl(2); 	
}
class Cupboard{
	Bowl b3 = new Bowl(3);
	static Bowl b4 = new Bowl(4); 
	Cupboard(){
		System.out.println("Cupboard()");
		b4.f(2);
	}
	void f3(int i){
		System.out.println("f3("+i+")");
	}
	static Bowl b5 = new Bowl(5); 
}

输出结果如下:

Bowl1
Bowl2
Table()
f1
Bowl4
Bowl5
Bowl3
Cupboard()
f2
Creating new Cupboard() in main
Bowl3
Cupboard()
f2
Creating new Cupboard() in main
Bowl3
Cupboard()
f2
f2(1)
f3(1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/487832.html

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

相关文章

IntelliJ IDEA 社区版2021.3配置SpringBoot项目详细教程及错误解决方法

目录 一、SpringBoot的定义 二、Spring Boot 优点 三、创建一个springboot的项目 四、使用IDEA创建SpringBoot失败案例 一、SpringBoot的定义 Spring 的诞⽣是为了简化 Java 程序的开发的,⽽ Spring Boot 的诞⽣是为了简化 Spring 程序开发的。 Spring Boot 翻…

maven从入门到精通 第一章 Maven核心程序解压与配置

这里写自定义目录标题 一 为什么要使用Maven1 依赖管理 帮助管jar包2 构建管理 脱离IDE进行运行2.1 传统方式,就是打包成war包,然后放在tomacat上运行2.2 一个程序的运行步骤 二 maven的工作机制1 配置maven1.1 关注 Maven 的核心配置文件:co…

Android Glide加载图片、网络监听、设置资源监听

再搞事情之前首先创建一个项目,就命名为GlideDemo吧。    一、项目配置 创建好之后,在app模块下build.gradle的dependencies闭包中添加如下依赖: //glide//glideimplementation com.github.bumptech.glide:glide:4.11.0annotationProcess…

mysql的一次死锁记录

表结构 create table lzy_test.test_lzy (id int not null primary key,name varchar(128) default null,age int default 0 null,constraint key_name unique (name) );表中数据 idnameage1lzy104lzy412336lzy609lzy90 事务死锁的过程 隔离级别RC 事务A…

【沐风老师】3dMax创建缝线插件StitchLines使用方法详解

3dMax创建缝线插件使用方法详解 3dMax创建缝线插件StitchLines,一键生成车缝线建模,该脚本与可编辑多边形、可编辑样条线或 编辑多边形修改器一起使用,创建一条样条曲线(车缝线),它将以几何体形式在视口中和…

云时通OMS:为零售品牌商打造高效的全渠道订单管理!

传统的零售企业围绕“人、货、场” 三要素来展开营销,其目标是基于“场”将货销售给更多的人。随着数字技术的应用,新零售模式下的“场”除了传统的线下店铺外,还拓展了多元化的线上渠道,比如小程序、企业APP、第三方平台、电商直…

学系统集成项目管理工程师(中项)系列17a_范围管理(上)

1. 包括确保项目做且只做所需的全部工作,以成功完成项目的各个过程 2. 项目工作明确划定边界 2.1. 什么是包括在项目之内的 2.2. 什么是不包括在项目之内的 3. 项目其他各方面管理的基础 4. 编制范围管理计划过程 4.1. 对如何定义、确认和控制项目范围的过程进…

归一化处理(2023寒假每日一题 14)

在机器学习中,对数据进行归一化处理是一种常用的技术。 将数据从各种各样分布调整为平均值为 0 0 0、方差为 1 1 1 的标准分布,在很多情况下都可以有效地加速模型的训练。 这里假定需要处理的数据为 n n n 个整数 a 1 , a 2 , ⋯ , a n a_1,a_2,⋯…

零入门kubernetes网络实战-30->基于bridge+veth pair+DNAT技术来实现外网可以访问内网的方案

《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 通过DNAT技术可以将brige虚拟网桥管理的内网中的服务暴露出来,以供外网访问。 1、测试环境介绍 两台centos虚拟机 # 查看操作系统版本 cat /…

Typora 文字快捷修改颜色

Typora 设置字体上色快捷键 1. 安装AutoHotKey AutoHotkey 是一种 免费 和 开源 的微软Windows自定义脚本语言,最初旨在 提供简单的键盘快捷键或热键 , 快速创建宏和软件自动化 。 基于成熟的做法,本脚本也采用 AutoHotKey 实现。 AutoHot…

精炼计算机网络——物理层(一)

文章目录 前言2.1物理层的基本概念2.2 数据通信的基础知识2.2.1 数据通信系统的模型2.2.3 信道的极限容量 2.3 物理层下面的传输媒体2.3.1 导引型传输媒体2.3.2 非导引型传输媒体 总结 前言 经历了两篇文章的学习,相信读者们一定对计算机网络有了一个基础的了解。接…

vue3+element-plus 通过v-infinite实现下拉滚动无限加载

v-infinite官网 v-infinite-scroll无限滚动组件使用详解 1、v-infinite-scroll"load" //load无限滚动加载的方法2、infinite-scroll-disabled //是否禁用无限滚动加载3、infinite-scroll-delay //节流时延,单位为ms4、infinite-scroll-distance //触发加载…

深入理解Java Class文件格式 constant_UTF_info

首先, 让我们回顾一下关于class文件格式的之前两篇博客的主要内容。 在 深入理解Java Class文件格式(一) 中, 讲解了class文件在整个java体系结构中的位置和作用, 讲解了class文件中的魔数和版本号相关的信息&#xff…

GitHub上“千金难求”的Spring Boot趣味实战全彩版手册,太干了

本书内容极其丰富,不仅涵盖了Spring MVC、MyBatis Plus、SpringData JPA、Spring Security、Quartz等主流框架,整合了MySQL、Druid、Redis、RabbitMQ、Elasticsearch等互联网常用技术与中间件,还涉及单元测试、异常处理、日志、Swagger等技术…

Vue——Vue2项目开发流程以及Element组件库的使用

Vue项目开发流程(Vue2演示) 在使用Vue提供的脚手架创建的项目文件里面,可以看见引入了三个组件 一个是Vue组件,有了这个下面才可以新建一个Vue实例 一个是App组件,下面将其使用一个render函数打包成了一个DOM元素放…

Redis分片集群和亿级访问量数据处理

一、redis分片集群 1.简介 业务场景,需要存储50G的数据。对于内存和硬盘配置不足,选用两种方式 一种:纵向扩展:加内存,加硬盘,提高CPU。简单、直接。RDB存储效率要考虑。成本要考虑。 二种:横…

016+limou+C语言常用的32个关键字

0.前言 本博文是在对C语言有一定深入了解后,对C语言最为主要的32个关键字进行了简要的概述和一些容易被忽略的细节研究,您可以当作学习或复习C语言基础使用(毕竟关键字就是构成C语言语法的基石),也可以提出您所不认同…

java版企业电子招投标采购系统源码之首页设计

功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外部…

易岸教育:公务员两科目考试内容是什么?

(一)《行政能力测验》 《行政能力测验》分为常识判断、言语理解与表达、数量关系、推理判断、资料分析五大部分。 1、常识判断题共20道题,涵盖面广,内容丰富,可归纳为自然科学、社会科学、时事热点三大类。 2、语言…

风扇的气动性能简介

1 风扇的定义 & 分类 风扇是很常见的设备,应用于通风、设备散热等多种场景,典型如家用的电风扇、抽风机,各类电子设备的散热风扇等。 风扇是通过外力驱动叶片旋转引发气体运动的设备。根据AMCA Standard 210-16的规定,风扇对气…