变量:定义与使用
环境准备
代码
package com.itheima._01变量;
/**
- @Description Demo011
- @Author songyu
@Date 2025-05-16 9:41
*/
public class Demo011 {public static void main(String[] args) {
//目标:定义变量和使用 //语法: 数据类型 变量名 = 值; //特点: 数据可以修改 // 1.整型, 年龄 int age = 18; System.out.println("年龄:"+age); // 2.修改变量值,过了一年,年龄长了一岁 age = age + 1; System.out.println("过了一年,年龄长了一岁:"+age); // 2.小数, 定义成绩99.5分 double score = 99.5; System.out.println("成绩:"+score); // 3.定义存储微信余额,100元 double money = 100; System.out.println("微信余额:"+money); // 4.买好吃的零食花了 50 元素 money = money - 50; System.out.println("买好吃的零食花了 50 元,微信余额:"+money); // 5.妈妈给转了200元 money = money + 200; System.out.println("妈妈给转了200元,微信余额:"+money);}
}
变量:使用注意事项
package com.itheima._01变量;
/**
- @Description Demo012
- @Author songyu
@Date 2025-05-16 10:10
*/
public class Demo012 {public static void main(String[] args) {
//目标:理解变量使用的注意事项 //1.变量先声明,后使用 //System.out.println(age); //没有定义age变量所以报错 //2.变量是什么类型就装什么类型的数据 //int age = 1.1; //1.1是double类型,变量age只能存储int类型数据,所以报错 //3.变量定义使用范围,从定义当前位置开始到最近“}”结束 int age = 18; //这个位置使用age是可以的 System.out.println(age); //4重复定义变量名age,是不可以的 //int age = 22; //5.变量定义的时候可以不赋值,但使用前必须赋值 int money; money = 100; System.out.println(money); //6.定义变量规范 //类名:推荐大驼峰(每个单词首字母都要大写,其他字符小写) //变量名,方法名:推荐小驼峰(第一个单词字母全部小写,第二个单词开始每个单词首字母都要大写,其他字符小写) int userMoney = 100;}
//这个位置是不可以使用age
//age = 20; 报错
}
变量:不同进制写法
package com.itheima._02不同进制写法;
/**
- @Description Demo021
- @Author songyu
@Date 2025-05-16 11:14
*/
public class Demo021 {public static void main(String[] args) {
//目标:在java程序中不同进制的写法 // 规范: 二进制 以 0b/0B 开头 // 规范: 八进制 以 0 开头 // 规范: 十进制 直接写(默认) // 规范: 十六进制 以 0x或0X 开头 //1.二进制 int a = 0b110; System.out.println("二进制0b110:"+a); //6=4+2+0 //2.十进制 int b = 6; System.out.println("十进制6:"+b);//6 //3.八进制 int c = 0141; System.out.println("八进制0141:"+c);//97=1*8∧2 + 4*8∧1 + 1*8∧0=64+32+1=97 //4.十六进制 int d = 0x5A5F; System.out.println("十六进制0x5A5F:"+d);//23135 //5. java的对象内存地址就是十六进制 Object obj = new Object(); System.out.println(obj);//打印对象的内存地址:7699a589
}
}
AI:十六进制0x5A5F换算成10进制等于多少
变量:基本数据类型
基本数据类型
注释素材
//目标:基本数据类型的使用
//1.整型-字节
//2.整型-短整型
//3.整型-整型
//4.整型-长整型
//5.浮点型-单精度
//6.浮点型-双精度
//7.字符型
//8.布尔型
代码
package com.itheima._03基本数据类型;
/**
- @Description Demo031
- @Author songyu
@Date 2025-05-16 11:43
*/
public class Demo031 {public static void main(String[] args) {
//目标:基本数据类型的使用 //1.整型-字节 byte b1 = 127;//正确 //byte b2 = 128;//错误,范围 -128~127 //byte b3 = -129;//错误 //2.整型-短整型 short s1 = 32767; //short s2 = 32768;//错误,范围 -32768~32767 //short s3 = -32769;//错误 //3.整型-整型 int i1 = 2147483647; //int i2 = 2147483648; //错误,范围 -2147483648~2147483647 //4.整型-长整型,注意值的范围在整型内可以不用l或L,但是在长整型内必须使用l或L, // 推荐无论什么情况,long都写上L(可读性好) long l1 = 9223372036854775807L; //5.浮点型-单精度, 注意:浮点型数据后面添加f/F,推荐F // 注意:单精度浮点数精确只有7位(小数点前后加起来的位数),科学计算法精准9位数字 float f1 = 3.24111111111111111111111111111111111111111111111111111111111111111F; System.out.println(f1); float f2 = 123456789999F; System.out.println(f2);//1.2345678E7 //6.浮点型-双精度 ,注意:双精度浮点数后面D或d可有可无,推荐加上D,默认小数是double // 科学计算法精确位数17位(数点前后加起来的位数) double d1 = 1234567890123456789123456789D; System.out.println(d1); // 扩展:如果希望小数精准,后面会学习BigDecimal //7.字符型 char c1 = 'a'; System.out.println(c1); System.out.println((int)c1);//97 //8.布尔型 boolean bl1 = true; //起变量名字的注意事项 // 1.不能以关键字作为变量名、方法名或类名 //long long = 100; 报错 //String String ="abc"; 可以,String不是关键字 // 2.不能以数字开头,并且包含特殊字符&,%,#,;等 //String 123a = "abc"; 报错 //String a123; = "abc"; 报错 // 3.变量名、方法名建议小驼峰命名,类名建议大驼峰命名,包名要求全部小写}
}
方法:定义与使用
package com.itheima._04方法;
/**
- @Description 学习java代码的方法
- @Author songyu
- @Date 2025-05-16 15:05
* - 方法概念:是一个代码块,封装了一个功能或任务的多条语句
* - 方法作用:代码块的复用,功能的复用
* - 方法定义: [访问修饰符] [static] 返回值类型 方法名([形参列表]) {
- 方法体
- [return 返回值];
- }
- 例子:
- public static void main(String[] args) {
* - }
- 解释:
- public 访问修饰符,后面讲解
- static 标识为静态方法,后面讲解
- 返回值类型,void 表示没有返回值,如果有返回值要写名返回值的数据类型,就是功能方法最终处理返回的结果
- main,方法名
- String[] args, 参数,只需要定义类型和参数名即可,多个参数使用“,”隔开
- 参数作用:外部调用方法传入的数据(已知条件)
- 方法体,是实现业务逻辑处理的代码
- [return 返回值],返回最终处理的结果
* - 调用方法: 方法名([实参])
实参是真正的输入数据
*/
public class Demo041 {//定义main方法:程序的入口
public static void main(String[] args) {//调用无参无返回值方法,可以调用多次,进行重用
sum();
sum();//调用有参方法,没有返回值
sum2(1,2);
sum2(1000,2000);//调用有参有返回值方法,返回结果
int result = sum3(12, 25);
System.out.println("求和:"+result);//println(数据)在输出数据后添加换行
}//1.定义无参和无返回值方法:计算求和任务
public static void sum(){
//定义第一个数
int a = 100;//定义第二个数
int b = 200;//求和
int c = a + b;//打印
System.out.println("第一个数:"+a+",第二个数:"+b+",求和:"+c);
}//2.定义有参和无返回值方法:计算求和任务
public static void sum2(int a,int b){//求和
int c = a + b;//打印
System.out.println("第一个数:"+a+",第二个数:"+b+",求和:"+c);
}//3.定义有参和有返回值方法:计算求和任务
public static int sum3(int a,int b){
System.out.print("第一个数:"+a+",");
System.out.print("第二个数:"+b+",");//求和
int c = a + b;//返回
return c;}
}
方法:方法重载
package com.itheima._04方法;
/**
- @Description 方法重载
- 方法重载
- 概念:在一个类中方法名一样,但是参数个数或类型或顺序有一个不一样,就是方法重载,与返回值没有关系。
好处:在一个类中,可以重用方法名,简化起名字。功能类似可以使用相同的方法名,但是参数不可以一样
*/
public class Demo042 {public static void main(String[] args) {
demo();
demo(1);
return;//可以直接结束当前方法运行,要求当前方法没有返回值
}//方法
public static void demo(){
System.out.println("无参方法");
}/
下面的方法定义会报错:因为方法名一样,参数也一样(都没有参数) 这样是不允许
public static void demo(){
System.out.println("无参方法xxxx");
} ///方法重载1: 参数个数不一样
public static void demo(int a){
System.out.println("1个参数的方法");
}//方法重载2: 参数个数不一样
public static void demo(int a,double b){
System.out.println("2个参数的方法");
}//方法重载3:参数类型的顺序不一样
public static void demo(double b,int a){
System.out.println("2个参数的方法");}
//方法重载4:参数类型不一样
public static void demo(int a,int b){
System.out.println("2个参数的方法");
}
}
类型转换:自动类型转换
package com.itheima._05类型转换;
/**
- @Description Demo051
- @Author songyu
@Date 2025-05-16 16:21
*/
public class Demo051 {public static void main(String[] args) {
//目标:自动类型转换,范围小自动转换范围大 //字节 自动转 整型 byte b1 = 10; print(b1);//10 //短整型 自动转 整型 short s1 = 129; print(s1);//129 //字符 自动转 整型 char c1 = 'a'; print(c1);//97 //整型 自动转 long int i1 = 100; long l1 = i1; l1=1234567890123456789L; System.out.println(l1); float f1 = l1; System.out.println(f1);//精确8位,其他科学技术法 double d1 = f1;
}
/**
* 打印整型数据
* @param a
*/
public static void print(int a){
System.out.println(a);
}
}
类型转换:表达式自动类型提升
package com.itheima._05类型转换;
/**
- @Description Demo052
- @Author songyu
@Date 2025-05-16 16:59
*/
public class Demo052 {public static void main(String[] args) {
//目标:参与运算表达式类型自动提升, 提升位参与运算范围较大的变量类型 // 注意点:short,byte,char参与运算直接提升位int类型
// byte + int 最后是int
byte b1 = 10;
int i1 = 20;
//byte b2 = b1 + i1; //报错, 因为里面有int,最终结果也是int
int i2 = b1 + i1;
//char + int + long 最终 long
char c1 = 'a';
int i3 = 10;
long l1 = 100L;
long l4 = c1+ i3 + l1;
//面试题:2个byte类型相加,返回什么类型? 答:int
byte b2 = 5;
byte b3 = 6;
//byte b4 = b2 + b3; 报错,因为byte参与运算会自动提升为int
int i4 = b2 + b3;
int i5 = 100;
int i6 = i4 + i5;
}
}
类型转换:强制类型转换
package com.itheima._05类型转换;
/**
- @Description Demo053
- @Author songyu
@Date 2025-05-16 17:24
*/
public class Demo053 {public static void main(String[] args) {
//目标:强制类型转换 // 语法: 数据类型 范围小的变量名 = (数据类型)范围大的变量名; // 整型 120 转换为 字节 结果还是 120 int i1 = 120; byte b1 = (byte) i1;//万能快捷键,在红线处使用 alt+enter 提示解决 System.out.println(b1); int i2 = 1500; byte b2 = (byte) i2;//万能快捷键,在红线处使用 alt+enter 提示解决 System.out.println(b2); // -36 double d1 = 99.5D; int i3 = (int) d1;//99 System.out.println(i3); double d2 = 991111111111.9D; int i4 = (int) d2;//有可能被截断(超过int的4个字节就会被截断) System.out.println(i4); //String 转换 整型 会直接报错, 因为String是引用数据类型,不能转换成基本数据类型直接会报错 // String str = "99abc"; // int i5 = (int)str;}
}