变量和数据类型
使用Eclipse开发第一个Java程序
工作空间(workspace):存储 Java 程序的目录
项目/工程(project):一个程序,例如:QQ、迅雷
-
点击导航栏区域的 "create a java project" 超链接
在创建了项目后,在导航栏区域就不再提供该超链接了。
-
可以通过在导航栏区域右键 -> 选择 New -> 选择 Java Project
-
点击 File 菜单 -> 选择 New -> 选择 Java Project
-
-
在创建 java 项目的窗口,输入项目名,然后回车即可
注意: 其他的存储位置、JRE等记得不要动,用默认值,但是看清楚是否和老师上课一致。
创建好的项目,在 Eclipse 中打开,会看到有两个部分,1是 JRE(必须有,不要管) 2是src目录。
创建好的项目,在工作空间本质上就是一个文件夹,这个文件夹中有一大堆的文件和目录。
Eclipse的配置文件:
-
.classpath文件
-
.project文件
-
.settings目录
项目的内容:
-
bin(binary):Eclipse帮你编译好的 class 文件的存储位置
-
src(source):Java 源代码的存储位置
-
-
在 Eclipse 中,项目的 src 目录上右键,选择 New -> 选择 Class(创建 Java 类)
-
在弹出的创建类的窗口中,输入类名(Java 源文件的文件名),然后回车即可
-
在代码编辑区自动打开了新创建好的 Java 类,继续编写完 Java 基本语法结构和指令
-
在代码编辑区,任意位置右键,选择 run as,选择 Java Application(表示将其作为一个 Java 应用程序运行)
注意: Eclipse 会自动帮你编译
-
然后在 Console(控制台)可以看到输出的内容等
程序运行原理
例如:在计算机上想要使用 QQ 程序。
-
下载 QQ 程序(找到官网下载)
QQ 程序安装包,包含了两个核心组成:
-
QQ程序的引导安装程序(负责帮你把 QQ 程序安装和初始化好的)
-
QQ程序(我们想要使用的,用来聊天的)
-
-
安装 QQ 程序(大多数现代桌面程序,都提供了引导安装程序)
安装程序本质: 将程序相关的文件,解压到计算机指定位置。(硬盘)
引导安装程序是一个优秀的产品设计,可以帮助小白用户,快速对程序进行解压安装及初始化个性配置。
-
双击 QQ 程序的启动/入口程序
-
QQ 程序正常运行,然后被我们使用
CPU(中央处理器) 会从计算机的硬盘上,将程序加载到内存中。
在内存中,会开辟一块内存空间供给程序使用,CPU 会执行着程序指令,在其中处理数据(存储)。
-
后续不需要再使用了,可以卸载 QQ 程序
卸载程序的本质:将计算机上和这个程序有关的内容全部删除/重置
一般程序都会提供一个卸载程序
所有程序(无论简单或是复杂的)想要在计算机上使用,都是类似的。
例如:使用 Eclipse 程序,使用自己开发的第一个 Java 程序
变量的概述
变量来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念。
变量可以通过变量名访问。
在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象。
变量:可以变化的量/值,所以变量是可以改变值的。
可以拿变量和酒店房间类比。
变量的定义
先声明变量再赋值变量:
// 声明变量 数据类型 变量名; // 赋值变量 变量名 = 变量值;
声明变量的同时并赋值:
数据类型 变量名 = 变量值;
变量的组成:
-
数据类型 :数据的类型,理解为入住酒店的房间类型(单人间、双人间...)
-
变量名 :内存的标识,理解为入住酒店的房间号
-
变量值 :存储到内存中的数据,理解为入住酒店的客人
注意: 变量的定义有很多语法,但目前让你掌握,以后推荐你采用的是上方这两种。
数据类型
8种基本数据类型。
数值类型:
-
整数类型: 例如:1、-5。可以用来存储年龄,人数等。
-
byte
-
short
-
int Java默认将一个整数数据,存储为 int 类型
-
long
规范: 在定义 long 类型数据时,在值后加一个小写的 L 或 大写的 L 和 int 区分。
-
-
浮点类型: 例如:3.14、0.01。可以用来存储金钱,身高,体重等。
-
float
规范: 在定义 float 类型数据时,在值后加一个小写的 f 或 大写的 F 和 double 区分。
-
double Java默认将一个浮点数据,存储为 double 类型
-
非数值类型:
-
布尔类型: 可以用来存储 婚否 等一些判断型的数据。
-
boolean :true(真)、false(假),boolean 只有两个值。
-
-
字符类型: 例如:
'a'
、'你'
、'1'
,用单引号引起来的,存储着一个符号的。可以用来存储性别等信息。-
char
-
-
字符串类型: 例如:
"张三"
、"1"
,用双引号引起来的,存储着一个或多个符号的。可以用来存储姓名、爱好等信息。-
String
它不属于 8 种基本类型,它是一个引用数据类型。
-
变量名
-
语法要求: 不按要求来程序会出错。
-
可以由字母、数字、下划线(_)、美元符号($)构成,数字不能开头。
-
反例:123abc、abc-123
-
正例:abc123、abc、a_b_c...
-
-
不能使用关键字,保留字
关键字:语言已经给其定义了特殊含义的单词,如果你使用了可能导致语言识别出错。
保留字:语言中现在还没有使用,但未来很可能会使用的一些单词。
-
生活中也没见着有人起名叫:博物馆、动物园 ....
-
目前你认识过的关键字:public、class、static、void、int、double ...
-
-
-
规范要求: 不按要求,程序继续运行,你可能会出错(“保命”)。
-
见名知义
存储一个姓名。
-
正例:name、xingming
-
反例:a
-
-
多个单词采用驼峰命名法或蛇形命名法
小驼峰命名法 :多个单词,开头单词首字母小写,后面的单词每个单词首字母大写。
存储一个学生姓名
-
正例:studentName
-
反例:studentname
帕斯卡命名法(大驼峰):每个单词首字母大写,一般用于类名规范。例如:HelloWorld
蛇形命名法/下划线连接法 :例如:student_name
-
-
不要将中英文混合
拼音、单词不要混合使用。
反例:myXingMing
-
输入语句
动态的变量赋值。
Scanner:扫描器 ,可以实现键盘输入功能。
-
导包(导入 Scanner)
import java.util.Scanner;
-
创建Scanner对象
Scanner 对象名 = new Scanner(System.in);
-
使用(输入内容)
对象名.方法名();
输入整数:nextInt()
输入浮点数:nextDouble()
输入字符串:next()
可以借助输出语句,实现输入前的提示。
常量
在程序中,如果有一些值不需要被改变,可以将这种值存储到常量中。
final 数据类型 变量名 = 变量值; final 数据类型 变量名; 变量名 = 变量值;
常量一经赋值,不允许再改动值。
为了方便的区分变量和常量,我们通常会在给常量命名时,将常量名的所有单词都大写,多个单词用下划线分隔开。
例如:PI、STUDENT_NAME
常见的运算符
赋值运算符
-
=
代表赋值,不代表相等
算术运算符
-
+
-
-
-
*
-
/
int num1 = 10; // int num2 = 4; // int result = num1 / num2; // double num1 = 10; // double num2 = 4; // double result = num1 / num2; int num1 = 10; int num2 = 4; double result = num1 * 1.0 / num2; System.out.println("结果为:" + result);在进行运算时,参与运算的数据都是整数类型,那么结果一定是整数类型。(哪怕结果是小数,最终也只会保留整数部分)
但是,当参与运算的数据其中有一方式浮点类型,那么结果一定是浮点类型。(正常的保留小数)
-
%
可以用来帮助我们判定是否可以整除(余数为0)。// 取模,暂时理解为求余数 int num1 = 9; int num2 = 2; // 模于 int mod = num1 % num2; System.out.println(mod);
-
++
自增1int num1 = 10; // ++ num1; num1 ++; // 理解:num1 = num1 + 1 System.out.println(num1); // 11
-
--
自减1
注意: ++或--,单独作为一条语句时,前++或后++,没什么区别。
但是,如果在使用变量时,对其进行了自增或自减,前++代表先对变量自增1,然后再使用。后++代表先使用变量,再对变量自增1,自减也是同理。
int num1 = 10; // System.out.println(num1 ++); // 10 // System.out.println(num1); // 11 System.out.println(++ num1); // 11 System.out.println(num1); // 11
复合赋值运算符
把算术及赋值运算符合并使用。
-
+=
-
-=
-
*=
-
/=
-
%=
先去进行算术运算,然后再赋值给变量。
int num1 = 10; // 理解:num1 = num1 + 1 // num1 ++; // num1 += 1; num1 += 2; // num1 = num1 + 2 System.out.println(num1);