1.变量 -----> 用来存储数据的
语法:
数据类型 变量名 = 值; ----> "jack" jack
1.先声明 ,后赋值
数据类型 变量名;
变量名 = 值;
String name;
name = "jack";
2.声明的同时赋值
String name = "jack";
常见的数据类型 ---> 字符串类型 和 数字类型
String 字符串数据类型 必须要用"" 引起来 // equals 这个是一个方法 用来比较字符串 是否相等
int 整数类型 默认就是 int 类型
float 单精度小数 值 记得加 f
double 双精度小数 小数默认就是 double
char 字符型 2个字节 必须要用 '' 引起来 并且'' 只能有一个字符
数据类型
基本数据类型:
整数类型
byte 1个字节 -128 -- 127
short 2个字节
int 4个字节 默认值 0
long 8个字节
范围:从小到大 byte < short < int < long
浮点数类型
float 4个字节 记得加 f 默认值 0.0
double 8个字节 默认值 0.0
字符型
char 2个字节 '' 默认值 空字符
布尔型:
boolean 1个字节 只有 true(真) 和 false(假) 默认值:false
引用数据类型: null
类/自定义的类 数组 接口...
String 系统定义的类
变量名的规则和规范
规则
1.只能由字母,数字,下划线,美元符号组成
2.不能以数字开头 1name; 错误
3.不能与关键字重名 系统保留的字 特殊含义
4.严格区分大小写 String name; String Name; 2个不同的变量
规范
知名达意 驼峰命名法
String myName;
String my_name;
2.注释 解释代码 不参与执行
// 单行 ctrl + / 取消 ctrl + /
/*
多行注释 ctrl + shift + / 取消ctrl + shift + \
*/
/**
文档注释
*/
3.程序结构
1.顺序结构
2.分支结构
1.if(条件){
// 如果条件成立,就执行代码 如果条件不成立 ,就不会到这里来
}
2.if(条件){ // 代码1 和 代码2 不会同时执行,也不会同时不执行
// 如果条件成立,就执行代码1
}else{
// 如果条件不成立 ,就执行代码2
}
3.
if(条件1){
// 如果条件1 成立,就执行代码 1
}else if(条件2){
// 如果条件2 成立,就执行代码 2
}else if(条件3){
// 如果条件3 成立,就执行代码 3
}else{
// 如果条件1 2 3 都不成立,就执行代码 4
}
3.循环结构
4.运算符
算术运算符: + - * / %
赋值运算符: = += -= *= /= %= int num = 10; num += 2; // num = num + 2;
自增自减: ++ --
++num : 先取自身的值+1,作为整个表达式的值;
num++ : 先取自身的值作为表达式的值,再自身+1;
注意: 一定要分清楚 到底是表达式的值 参与运算 还是变量自身的值
比较\关系 运算符: > >= < <= == !=
// > >= < <= == !=
boolean b = 2 < 4; // 由比较运算符连接起来的式子 比较表达式 表达式的值
// 比较表达式的结果 一定是boolean类型 不是ture 就是 false
逻辑运算符: && || !
&& 并且
&& 两边同时为true 逻辑与表达式的值 就是true 只要有一边为false 逻辑与表达式的值 就是 false
|| 或者
|| 只要一边为true 逻辑或表达式的值 就是 true 只有两边同时为false 逻辑或表达式的值 就是false
! 取反 真变假 假变真
true 变 false
false 变 true
结论:
逻辑运算符2边的数据 一定是boolean类型 不是true false
逻辑表达式的值 一定是boolean 类型 不是true false
|| 短路问题 左边一旦为 true 右边就不运算了
&& 短路问题 左边 一旦为 false 右边的就不运算了
public class Itheima{
public void test(){
// && 短路问题 左边 一旦为 false 右边的就不运算了
int num = 1;
boolean res = (2 > 3) && (num++ < 2); //
System.out.println(res);//
System.out.println(num);// 1
// || 短路问题 左边一旦为 true 右边就不运算了
int num2 = 2;
boolean res2 = (2 < 3) || (num2++ < 2); // true || 不算 了
System.out.println(res2);// true
System.out.println(num2);// 2
boolean b = true;
boolean res = !b;
System.out.println(res);
boolean b2 = !false;
System.out.println(b2);
// boolean b1 = true || true;
// System.out.println(b1); // true
//
// boolean b2 = true || false;
// System.out.println(b2); // true
//
// boolean b3 = false || false;
// System.out.println(b3); // false
//
// boolean b4 = false || true;
// System.out.println(b4); // true
// boolean b = true && false;
// System.out.println(b);// false
//
// boolean b2 = true && true;
// System.out.println(b2);// true
//
// boolean b3 = false && false;
// System.out.println(b3);// false
}
}
5.类的定义和方法的定义
public class 类名 // 从第一个单词开始每个单词首字母大写 其余的就是小写 MyItheima
{
}
public 返回值类型 方法名(参数列表){ // 从第二个单词开始每个单词首字母大写
// 方法体
}
最基本的方法: 无参数无返回值的方法
无返回值: 返回值类型就写 void
无参数: () 空着
public void test(){
}
自己定义的方法
1.方法的功能是什么 这个方法干啥用的 ---> 方法体
2.掌握返回值类型
3.方法名
4.掌握参数 : 几个参数 分别是什么类型
调用别人的方法
1.方法有什么功能, 如何调用方法
方法名(实际参数); // 实际的数 ----> 数据类型 形参的数据类型
2.掌握参数
3.掌握返回值类型
4.掌握方法名
// 方法 函数 ---> 同一个东西
输出 输入
public 返回值类型 方法名(参数列表){ // 从第二个单词开始每个单词首字母大写
返回值类型 : 根据方法需要返回的数据的类型 返回的数据是什么类型 那么 返回值类型就是该数据的数据类型 返回的数据决定方法的返回值类型
// 如果有返回值 ,一定有return 语句 语法: return 返回数据;
// 如果没有返回值 ,那么 返回值类型 就写 void
方法名: 自己取名称 符合标识符命名规则和规范
参数: 用来传数据的 传进来的数据是要给 方法体用的 --------> 声明变量 但是不初始化
如果方法体 不需要外界传值 ,那么不需要定义参数 () 空着
如果方法体 需要外界传值进来执行, 那么久需要定义参数 参数的数据类型
多个参数 : ()里面 用逗号隔开
// 方法体
}
public 返回值类型 方法名(数据类型 形参1,数据类型 形参2,...){
}
*/
// 没有输入有输出 没有参数有返回值
// 有输入有输出 有参数有返回值
// 有输入没有输出 有参数没有返回值
// 没有输入没有输出 没有参数没有返回值
// 调用方法 方法名(实际参数);
// 如果调用的方法有返回值 在语法上 你可以接收 也可以不接收
// 如果接收 定义一个变量接收 变量的类型 ----> 返回值的类型
// 调用者\调用方法 test
// 被调用者\被调用方法 test2
public class Itheima{
public void test(){
int res = test1();
System.out.println(res);
String str = test2(12,"jack");
System.out.println(str);
}
// 没有输入有输出 没有参数有返回值的方法
public int test1(){
// 返回 一个数 7 ----> int
return 7;
}
// 有输入有输出 有参数有返回值的方法 让调用者输入一个整数 然后 +1 之后返回出去
public String test2(int num,String str){
return num + str;
}
// 有输入没有输出 有参数没有返回值 的方法 传一个整数给我,打印一下
public void test3(int num){
System.out.println(num);
}
// 没有输入没有输出 没有参数没有返回值
public void test4(){
}
}
1.必须要写注释 ---> 必须写思路
1.理清楚思路
2.问题 代码难产
1.没有思路 -------> 练习思维 多分析思路
2.有思路 , 写不出代码 ----> 有思路,语法不熟悉
3.没思路,写出代码 ----> 语法熟悉,思路不熟悉
4.有思路,写出代码
// 强制类型转换: 大范围的数据 给小 的数据类型
int num = (int)1.2; // 本来是想把1.2存到内存 把小数赋值个int类型变量 , 取整数部分
System.out.println(num);
int num2 = (int)1.2f; // 本来是想把1.2存到内存 把小数赋值个int类型变量 , 取整数部分
System.out.println(num2);
// 隐式类型转换: 小范围的数据 给 大 的数据类型 ----> 系统自动转换的
double d = 12;// 提高精度
System.out.println(d);