一篇文章带你入门Java变量
作者:编程界明世隐 发布时间:2021-09-21 07:46:02
引言
♀ 小AD:明哥,我终于出了这口恶气了。
♂ 明世隐:打爽了是吧。
♀ 小AD:那必须的,打十盘我赢九盘,我随意。
♂ 明世隐:那小朋友不是搞哭了吗?
♀ 小AD:必须哭,那家伙鬼哭狼嚎的。
♂ 明世隐:你咋知道?你又没看到
♀ 小AD:那是我表弟,就在我旁边哭的,这不是暑假上我家玩来了吗。
♂ 明世隐:哎呀我擦,可真是牛b啊,欺负小朋友欺负到亲戚身上拉,狠起来还真是六亲不认,还按在地上摩擦吧。
♀ 小AD:要不是他哭了,我妈过来提我耳朵来,我能打到他卸载游戏!
♂ 明世隐:小朋友能有什么坏心思呢?你过分了啊,你扼杀了未来的最强王者、王者界的一支花。
♀ 小AD:我这是让他知道社会的险恶,告诉他别惹女人。
♂ 明世隐:你这明明是为了满足一己私欲,真是丧心病狂。
♀ 小AD:额。。,算是吧,为了感谢明哥,我主动点,今天学点啥?
♂ 明世隐:那就来学习一下变量,就等你送上门来。
概念
在程序运行期间,随时可能产生一些临时数据,程序会将这些数据保存在内存单元中,每个内存单元都用一个标识符来标识。这些内存单元被称为变量。
变量的四个基本属性
属性名 | 描述 |
---|---|
变量名 | 合法的标识符 |
变量的数据类型 | 可以是基本类型和引用类型 |
存储单元 | 存储单元大小是由数据类型决定的, 如:int 为4 个字节32 位 |
变量值 | 在存储单元中放的就是变量值(如果是基本 类型放的就是具体值,如果是引用类型放的是 内存地址,如果null,表示不指向任何对象) |
如何定义变量
定义变量的格式:数据类型 变量名 = 初始化值
/*
* Java变量学习
*/
public class Variable {
public static void main(String[] args) {
//数据类型 变量名 = 初始化值
int a = 10;
}
}
♀ 小AD:明哥,这个代码我知道
♂ 明世隐:你确定?
♀ 小AD:这个好简单,我真的会
♂ 明世隐:那你说说看。
♀ 小AD:结合之前学习的,int 这个是刚学习完的数据类型,int 表示整形,就是整数。
♂ 明世隐:嗯,对,这里只是举例了int,用其他数据类型定义也是一样的。
♀ 小AD:这个a是名称,你上次给我说过的,但是我不知道这个a有什么用?
♂ 明世隐:没错a表示定义的变量名,可以用过a来访问你定义好的变量,一会写代码看看就明白了。
♀ 小AD:这个 = 是表示赋值,这个10就是数据,开始的时候就学了,表示 a 就是赋值为10。
♂ 明世隐:嗯就是这个意思,也蛮好理解。
♀ 小AD:哥,比如我的铭文,可以根据我的配置来发生变化,我的铭文就是变量,而我对铭文的配置就是一个赋值的过程,对不对。
♂ 明世隐:挖槽,你这也太6了,明哥只能高喊666了,天赋真他么的没谁了。
♀ 小AD:那是必须的。
♂ 明世隐:看来你前几天挨小朋友的打,没有白挨。
♀ 小AD:明哥你还要说吗,我现在还会被小学生欺负不成?我已经还回去了。
♂ 明世隐:保不齐人家学两招,再来治你,不说了,还是先来看看如何使用变量的。
如何使用变量
通过使用变量名来访问这块区域的
♀ 小AD:就通过变量名这么简单?
♂ 明世隐:对啊,要不然呢?
♀ 小AD:之前讲了那么多,我还以为变量是什么高级的东西呢?
♂ 明世隐:你这个说的什么话,高级不高级不重要,重要的是要好用。
♀ 小AD:哦
♂ 明世隐:就跟小鲁班的1技能一样,你手指点击它,它就会释放,是不是很简单,这个变量也是一样,你通过变量名就可以直接访问,下面来看一下代码,就很好理解。
/*
* Java变量学习
*/
public class Variable {
public static void main(String[] args) {
//数据类型 变量名 = 初始化值
int a = 10;
System.out.println(a);
}
}
System.out.println(a);
♂ 明世隐:你看简单不,我想访问这个10,我只需要访问 a 就行了
♀ 小AD:看到了呢,这个我明白了。
♂ 明世隐:这是访问的一种方式,还有一种方式是赋值
♀ 小AD:明哥刚才定义的时候不是赋值了吗?为啥又说赋值
♂ 明世隐:刚才定义的赋值,切确的说是初始化赋值,就是定义的同时完成赋值,你也可以在后面再赋值,并且可以多次赋值。
♀ 小AD:多次赋值?
♂ 明世隐:对啊,就是修改值的意思,不然怎么叫变量呢,就是可以变化的。
♀ 小AD:就跟我的花呗,越来越多似的?
♂ 明世隐:正解
初始赋值并多次修改
/*
* Java变量学习
*/
public class Variable {
public static void main(String[] args) {
//数据类型 变量名 = 初始化值
int a = 10;
System.out.println(a);
a=20;
System.out.println(a);
a=30;
System.out.println(a);
}
}
初始不赋值并多次修改
/*
* Java变量学习
*/
public class Variable {
public static void main(String[] args) {
//数据类型 变量名 = 初始化值
int a ;
a=10;
System.out.println(a);
a=20;
System.out.println(a);
a=30;
System.out.println(a);
}
}
2种代码运行结果是一样的
变量的特点
1.Java里变量必须先声明,初始化后使用
2.使用变量名来访问内存中的数据
3.作用域,在其定义所在的一对{}里,只在作用域才生效
4.同一个作用域不能定义重名的变量
1.Java里变量必须先声明,初始化后使用
上述代码,报错信息是“变量a没有被初始化”,所以不能去使用(获取)
修改成
public static void main(String[] args) {
//数据类型 变量名 = 初始化值
int a =10;
System.out.println(a);
}
或者
public static void main(String[] args) {
//数据类型 变量名 = 初始化值
int a;
a=10;
System.out.println(a);
}
2.使用变量名来访问内存中的数据
这个访问的前面已经讲过。
3.作用域,在其定义所在的一对{}里,只在作用域才生效
作用域:顾名思义就是 “能起作用的地方”。通俗地说:在java里面花括号{ } 范围内就是作用域的范围。
♀ 小AD:明哥,这个听起来有点迷糊。
♂ 明世隐:很简单怎么会迷糊呢?这样吧,我问你,我平时间怎么称呼你?
♀ 小AD:小AD?小班班?小姐姐?小傻瓜?
♂ 明世隐:随你怎么着吧?那你在游戏里面别人怎么称呼?
♀ 小AD:***** (此处省略一万字)
♂ 明世隐:就是S*、菜 * 等等
♀ 小AD:。。。
♂ 明世隐:你以为出了明哥这个作用域范围,都这么有耐心的吗?
♀ 小AD:哦。
♂ 明世隐:比如在家里你叫你父亲叫什么?
♀ 小AD:叫“爸”啊
♂ 明世隐:对的,那你叫我什么?
♀ 小AD:小明哥,嘿嘿!
♂ 明世隐:叫知道傻笑,叫别的大老爷们呢?
♀ 小AD:大叔、大哥、奥特曼?
♂ 明世隐:对啊,你不会叫他们“爸”吧
♀ 小AD:当然不会,你想啥呢?再这样不和你玩了啊。
♂ 明世隐:我的意思是你和你爸的关系,出了“家庭”这个作用域以后,它就不生效了,对吧?
♀ 小AD:嗯,明白了
♂ 明世隐:看例子
/*
* Java变量学习
*/
public class Variable {
int a=100;
public static void main(String[] args) {
//数据类型 变量名 = 初始化值
int a;
a=10;
System.out.println(a);
}
}
可以看到在main方法的{}外面也定义了一个 a 值为100,程序运行结果如下:
证明这个a拿到的是10,并不是100,是不是很好的说明了这个作用域。
4.同一个作用域不能定义重名的变量
再次定义a变量,会有编辑错误,提示“重复的变量a”
换个数据类型行不行呢?
可以看到错误是一样的,证明在同一个作用域是不是能重复定义的。
♂ 明世隐:这个在生活中也是很好理解的,比如一夫一妻,在中国范围内,只能一夫一妻,如果一夫多妻就犯法了。
♀ 小AD:哥你的意思是中国就是比作作用域,夫妻这里就不能重复,重复就不行。
♂ 明世隐:是这个意思
♀ 小AD:比如游戏里一个破军180攻击力,再有一个也叫破军加20攻击力,那就乱了套了。
♂ 明世隐:哎呀我擦,万事都离不开游戏了,牛b。
♀ 小AD:哥,学了变量我突然有个好想法。
♂ 明世隐:哦,不会是什么奇奇怪怪的吧
♀ 小AD:不会,绝对的正常。
public static void main(String[] args) {
int gold=300;
System.out.println("第1滴血:");
System.out.println(gold);
gold=200;
System.out.println("第2次击杀获得:");
System.out.println(gold);
gold=160;
System.out.println("第3次击杀获得:");
System.out.println(gold);
gold=110;
System.out.println("第4次击杀获得:");
System.out.println(gold);
gold=40;
System.out.println("第5次击杀获得:");
System.out.println(gold);
}
运行结果
♀ 小AD:哥,这波怎么样?
♂ 明世隐:我不得不说你天赋异禀、学以致用!真的不错!
♀ 小AD:谢谢明哥
♂ 明世隐:学了这波定能更上一分!
♀ 小AD:走开起来
♂ 明世隐:起飞!
来源:https://blog.csdn.net/dkm123456/article/details/118712530
猜你喜欢
- 前言在日常的Android开发中,我们在做登录注册等带有提示性输入校验的时候。常常会写样子写代码:然后你会发现每一次写带有提交信息页面的时候
- 这一篇博客我们来使用UGUI实现图片的拖拽功能。说到拖拽,那必然离不开坐标,UGUI 的坐标有点不一样,它有两种坐标,一种是屏幕坐标,还有一
- 整理文档,搜刮出一个Android图片实现压缩处理的实例代码,稍微整理精简一下做下分享。详解:1.获取本地图片File文件 获取Bitma
- 在maven的pom.xml里面添加一下依赖:<properties><project.build.sourceEncod
- 前言早就听说Go语言开发的服务不用任何架构优化,就可以轻松实现百万级别的qps。这得益于Go语言级别的协程的处理效率。协程不同于线程,线程是
- Spring Boot读取yml文件的主要方式有以下几种:1.@Value注解? 我们可以在bean的属性上使用@Value注解,直接读取y
- 手写一个通用加载中、显示数据、加载失败、空数据的LoadingView框架。定义3个布局:加载中,加载失败,空数据加载中:<?xml
- 本文实例为大家分享了Android音乐播放器的具体代码,供大家参考,具体内容如下1.播放项目内的音乐package com.thm.g150
- 类是使用关键字 class 声明的,如下面的示例所示:访问修饰符 class 类名 { //类成员: // Methods, prope
- 当两个线程竞争同一资源时,如果对资源的访问顺序敏感,就称存在竞态条件。导致竞态条件发生的代码区称作临界区。在临界区中使用适当的同步就可以避免
- 1. 栈1.1 概念栈:是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。特点:栈中的数据元素遵循先进后出的原则,但要注意进的
- 一、历史版本delegate void StudentDelegate(string name, int age);public class
- 一、线程池简介线程池的使用主要是解决两个问题:①当执行大量异步任务的时候线程池能够提供更好的性能,在不使用线程池时候,每当需要执行异步任务的
- 1、点击【File】->【Project Structure】菜单(或使用Shift+Ctrl+Alt+S快捷键),打开【Projec
- 本文实例讲述了Android实现内存中数据保存到sdcard的方法。分享给大家供大家参考,具体如下:public static void w
- 后台管理页面往往需要登录才可以进行操作,这时就需要Seession来记录登录状态要实现起来也是非常简单,只需要自定义一个HandlerInt
- 一、业务需求实现省份与城市的二级联动二、实现效果三、代码实现1. province_city.jsp前端界面实现<%@ p
- Nashorn是什么Nashorn,发音“nass-horn”,是德国二战时一个坦克的命名,同时也是java8新一代的javascript引
- isInstance和isAssignableFromobj instanceof Class判断obj是不是Class或者Class的子类
- 程序中的错误分为编译时的错误和运行时的错误。编译时的错误主要是语法错误,比如:句尾没有加分号,括号不匹配,关键字错误等,这类错误比较容易修改