(一)变量:在程序的执行过程中,其值发生改变的量
数据类型的分类
基本数据类型:4类8中
整数类型: (整数类型默认int类型) 占用的字节数 范围
byte :字节类型 1 -128~127
short :短整型 2
int :整数类型 4
long :长整型 8
浮点类型:(浮点类型默认double类型)
float :单精度 4
double:双精度 8
字符类型:
char 2
布尔类型
boolean(true/false) 1
引用数据类型(数组讲)
定义long类型的变量
:由于整数类型默认是int类型 ,所有在long类型变量值后面加上一个标记:L或者l ,建议使用L
定义变量的注意事项:
1)定义变量,不能是Java中的关键字
2)不能是以数字开头
3)一个变量名不能重复定义
4)建议:一行定义一个变量
关于变量中的一些问题
在进行变量计算的时候 :尽量同一个的数据类型之间进行换算
不同类型之间的数据:数据类型的默认提示
byte,short,char 三个之间相互不转换的,但是一旦参与运算,都默认转换转换成int类型
强制类型转换:
目标数据类型 变量名 = (目标数据类型)(变量值);
(二)常量
常量:在程序的执行过程中,其值不发生改变的量
常用的分类:
A 字面值常量
a:字符串常量 : 用双引号括起来的内容
"hello"
b:字符常量: 用单引号括起来的单个内容
'A','a','0' ,
'ab'(错误的)
c:整数常量
100
d:小数常量
3.1415926
e:布尔常量:
true(false)
f:空常量
null (在讲面向对象的时候,如果一个对象为null,那么一定要给对象进行非空判断)
if(xxx!=null){
}
B 自定义常量(在继承部分讲)
alt+/ 代码提示(神键)
ctrl+d 删除某一行
ctrl+/ 单行注释
ctrl+shift+/ 多行注释
(三)JAVA中的注释
java中的注释
三种注释: // 单行注释 多行注释/ 星 书写注释的文字 星/ 文档注释:/星 星 注释的文字 星/
关键字:在java中被赋予特定含义的单词
class:java中最基本单元
public:权限修饰符:公开的
private:私有的
(四) Java中的标识符:
给类,接口,方法,包(package)等起名字的字符序列
标识符的组成规则:
1)英文的字母大小写
2)数字字符
3)$和
注意事项:
不能以数字字符开头
针对包(目录)名命名的规则: 字母全部都小写
单级包:
westos
多级包:
org
westos
makename
类,接口命名的规则:
单个单词:第一个字母大写
举例:class Demo
多个单词:每个单词的首字母都大写
举例:class HelloWorld
给方法命名的规则:
单个单词:字母全部都系小写
比如:main()
多个单词:一个单词全部小写,从第二个单词每个单词首字母大写
比如:checkUserName()
给常量命名的规则:
单个单词:字母全部大写
HELLO
多个单词:字母全部大写,每个单词用下划线隔开
(五)JAVA中的运算符
Java中的运算符
算术运算符
赋值运算符
比较运算符
逻辑运算符
三目(三元)运算符
键盘录入
1、算术运算符:
基本算术运算符
+,-,,/,%(模)
注意事项:
/:取的是整数
扩展的算术运算符:
++或者--
单独使用:
结论:无论++或者--再数据前还是数据后,都是自增1或者自减1
参与运算使用:
结论:如果++或者--再数据的前面,先自增或者自减,再参与运算
如果++或者--再数据的后面,先运算,再进行自增或者自减
在实际开发中,++在后用的多(比如:流程空语句 for循环语句 步长语句变量名++)
关于+的用法
+:可以作为运算符
+ :表示一个数是正整数
+ :可以作为字符串的拼接符
2、 比较运算符:
>,>=,
注意事项:
== 不能写成=
3、 赋值运算符
基本的赋值运算符:=
举例: int a = 10 ; 将10赋值给int类型的变量a
扩展的赋值运算符:
+=,-=,=,/=,%=
y += 10 ; 把右边的数据赋值给左边,然后在和左边的数据求和
4、逻辑运算符:
基本逻辑运算符
&:逻辑与 |:逻辑或 ^(逻辑异或) !(逻辑非)
结论:
逻辑&: 有false,则false
逻辑或|:有true,则true
逻辑异或:^:相同则为false,不同则为true
简单记:(男女关系) 男男 男女 女男 女女
逻辑非!:非true则false,非false,则true,偶数个是他本身
扩展的逻辑运算符:
逻辑双与:&&
逻辑双或:||
5、三目运算符--->三元运算符
语法:
(表达式)? true的结果:false的结果;
表达式: 举例: (x>y)
(100>150)
执行流程:
首先判断表达式是否成立,如果比表达式成立,就执行true的结果,否则,false的结果;
package org.westos键盘录入;
//导包
//ctrl+shift+o 快速导包
import java.util.Scanner;
/
之前运算符,变量,值都写死的,程序不灵活,所以引入键盘录入!
键盘录入的步骤:
1)创建一个键盘录入对象
Scanner scanner = new Scanner(System.in) ;
2)由于java.lang. 包不是不用导包的,但是Scanner它是java.util.Scanner
导包: import java.util.Scanner;
3)接收键盘录入的数据(以int类型为例)
int number = sc.nextInt() ; //nextXXX() ;
4)输出数据
格式
/
public class ScannerDemo {
public static void main(String[] args) {
//1)创建键盘录入对象 并且导包了
Scanner sc = new Scanner(System.in) ;
//2)提示用户并且接收键盘录入
System.out.println("请您输入一个数据:");
int number = sc.nextInt();
//输出
System.out.println("您输入的数据是:"+number);
}
}
(六)JAVA中的流程控制语句
流程控制语句
顺序结构语句
选择结构语句
if语句
switch语句
循环结构语句
for
while
do-while循环
1、顺序结构语句
顺序结构语句: 代码从main方法中从上而下依次执行的!
2、选择结构语句
1)if语句
分类:
三种格式
if(条件表达式){
语句;
}
执行流程:如果表达式成立,那么执行语句,否则,不执行
应用场景:适合单个条件的判断
if语句的注意事项:
1)if语句中的大括号,可以省略,但是不建议省略
2)有大括号的地方不能有分号,有分号的地方不能有大括号!
3)这种格式的if语句,适合单个条件的判断
if语句的第二种格式:
if(条件表达式){ 条件表达式:无论是简单的表达式还是复杂的表达式 值都是boolean类型
语句1;
}else{
语句2;
}
执行流程
判断条件表达式是否成立,成立,就执行语句1;
if语句的第三种格式:
if(条件表达式1){
语句1;
}else if(条件表达式2){
语句2;
}else if(..){
语句3;
}else{
语句n+1;
}
执行流程:
先判断条件表达式1是否成立,成立,则执行语句1
不成立,判断条件表达式2是否成立,
成立,执行语句2
...
如果都不成立,最终执行else中的语句
2)switch语句
格式
switch(表达式){
case 值1:
语句1;
break ;
case 值2:
语句2;
break;
case 值3:
语句3;
break;
....
default:
语句n+1;
break;
}
执行流程:
case语句中的值1和表达式中的值比较,如果一致,执行语句1
如果不一致,走case 值2,再进行比较,如果椅子,执行语句2
....
如果上述都不一致,执行default中的语句
格式的解释:
switch:当前是一个选择结构语句,它的作用和if语句是一样
case语句:它后面的值是和表达式进行比较
break:表示结束当前switch语句
default:是和if语句中的else意识时候一样的,如果条件都不成立,执行default中的语句
关于switch语句中的注意事项:
1)case语句的后面只能跟常量(根据具体的需求),不能跟变量! javascript中的case后面是可以跟变量并且还可以表达式
2)default语句可以在switch语句中的任何位置,不影响代码执行,如果是在语句中,那么break最好带上
3)建议把break带上,否则会造成一个现象:case穿透!
4)switch语句的结束条件:
1)语句break语句结束
2)执行默认执行到末尾语句结束
5)case语句的后面是冒号,表示和switch语句中的表达式进行比较
6)跳转控制语句: break,continue,retrun (后面讲)
3、循环结构语句
1)for循环
for(初始化语句;条件语句;步长语句){
循环体语句;
}
执行流程:
初始化语句:给当前变量进行赋值,如果满足条件语句,那么执行循环体语句
执行步长语句,对变量进行自增或自减---->在对条件语句进行判断,如果满足条件,再次执行循环体---->步长语句
直到不满足条件为止,循环语句结束...
循环语句的注意事项:
1)条件语句,不管是一个简单的表达式还是复杂的表达式,都是boolean类型
2)初始化语句,和条件表语句后面都要带上分号;
2) while循环
;格式:
基本格式:
while(条件表达式){
循环语句体;
}
扩展格式:(优于基本格式)
初始化语句 ;
while(条件表达式){
循环体语句;
步长语句;
}
执行流程:
初始化语句对变量进行赋值,如果满足条件表达式,那么执行循环体语句,执行步长语句---->继续判断是否满足条件
--->满足条件,继续执行循环体语句,步长语句---->当满足不足条件为止结束
while循环和for循环的区别?
1)如果从内存角度考虑,for循环要优于while循环,for循环语句执行完毕之后,变量会及时被GC垃圾回收期回收掉
while循环,它可以去访问循环语句中的变量
2)根据具体需求具体分析,
如果循环次数明确的情况下,应用for循环
如果不知道要循环多少次,应该去使用while循环
举例:吃葡萄
3) do-whle:
基本格式
do{
循环体语句
}whiel(判断条件语句) ;
扩展格式:
初始化语句;
do{
循环体语句;
控制体语句;(步长语句)
}while(条件判断语句) ;
循环结构语句
for循环,while循环,do-while循环,他们之间的区别?
do-while和前两者之间最大的区别:
循环体语句至少执行一次
实际开发:优先考虑 for循环,其次while循环,最后,do-while
4) for循环嵌套:
格式
for(){
for(){
}
}
4、 跳转控制语句:
break:表示中断,结束的意思,结束语句;
break可以单独使用吗?
break:不能单独使用,一般在switch语句,或者循环语句中使用
continue:继续的意思,跳出当前循环,直接进入一次循环
continue:单独是不能使用的,在循环语句中使用多
跳转控制语句:
retrun :方法的返回值 ,会带回一个结果
(七)JAVA中的方法
方法:完成特定功能的代码块
方法的格式: 形式参数
public static 返回值 方法名(参数类型1 变量1,参数类型2 变量名){
return ...
}
方法格式的解释:
public static:方法是静态的,并且是公共的方法 (今天写方法,public static)
返回值(数据类型): 根据具体的需求,返回什么类型,用什么样的数据类型结束
方法名:给当前代码块起名字,命名规则:单个单词:字母全小写 多个单词:第一个单词全部小写,第二个单词开始每个单词首字母大写
return: 将当前代码的计算的结果,返回给调用者
有返回值类型的方法:
需求:
计算两个数据的和
方法调用:
1)单独调用
单独调用,没有意义,没有输出结果
2)输出调用
直接输出了结果,写死了,不能对结果进行操作
3)赋值调用 :有返回值类型的方法,推荐使用赋值调用,它可以结果进一步操作
int result = sum(a,b) ;
定义一个方法的注意事项:
1)方法和方法是平级关系,一个方法中不能再定义个方法
2)定义一个方法 时候,形式参数必须有数据类型,否则有问题
3)在主main()中,调用方法的时候,实际参数中不需要带数据类型的
4)有大括号的地方,不能有分号,有分号的地方不能有大括号
Java中定义方法的格式
public static 返回值 方法名(形式参数列表){
return ;
}
当前需求中,形状是直接输出在控制台的,没有具体的返回值,但是又要符合方法规范,--->关键字:void替代语法中 返回值
单独调用
没有具体的返回值的方法,适合单独调用
输出调用
错误
赋值调用
错误
命名规则:起名字-->见名知意
Java就给提供一个专业名词:给多个方法起同一个名字,还不报错---->方法重载 (面向对象:继承中讲方法重写)
方法重载:指的是方法名相同,参数不同,返回值没有关系
参数不同:
1)参数个数不同
2)参数类型不同
方法和C语言中的函数功能相似!**