视频链接
目录
package软件包
选中模块右键新建就可以,例如com.itheima.scanner,有三个层级
在新版idea中选中树外观,把压缩空的中间软件包取消选中,就可以看到具体各层级的package
运算符
赋值运算符
其中需要注意的是扩展赋值运算符内部自带强制转换
package com.itheima.operator;
public class operatordemo1
{
public static void main(String[] args)
{
//扩展赋值运算符,内部自带强转效果
short a=1;
a+=1;//a=(short)(a+1);
System.out.println(a);//2
double b=12.3;
int c=15;
c+=b;//c=(int)(15+12.3)
System.out.println(c);//27
}
}
关系(比较)运算符
关系运算符的结果都是boolean类型,只有true和false两种可能的结果
逻辑运算符
连接boolean的表达式或者值,可以用来整合多个条件
package com.itheima.operator;
import java.util.Scanner;
public class operatordemo3 {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("enter the number:");
int score = sc.nextInt();
System.out.println(score>=90 & score<=100);
System.out.println(!(score==57|score==58|score==59));
}
}
和if语句结合效果会更好,如果输入98的话输出就是true true
短路逻辑运算符(更常用)
&&和||在代码中效率会比不短路的&和|高很多
package com.itheima.operator;
public class operatordemo4 {
/*
&:没有短路效果
&&:具有短路效果,左边为false,右边就不执行了
|:没有短路效果
||:具有短路效果,左边为true,右边就不执行了
常用的逻辑运算符:&& || !,效率高
*/
public static void main(String[] args) {
int x=3;
int y=4;
int a=5;
int b=6;
boolean result1=++x >5 && y-- < 4;
boolean result2=++a >5 || b-- < 6;
System.out.println(x);//4
System.out.println(y);//4
System.out.println(a);//6
System.out.println(b);//6
System.out.println(result1);//false
System.out.println(result2);//true
}
}
&&左边遇到false就不执行右边剩下的了,||左边遇到true就不执行右边剩下的了
三元运算符
格式:判断条件 ? 值1 : 值2;
执行流程:
- 首先计算判断条件的值
- 如果结果是true,值1就是运算结果
- 如果结果是false,值2就是运算结果
package com.itheima.operator;
public class operatordemo5 {
public static void main(String[] args) {
int num1=10;
int num2=20;
int max=num1>num2?num1:num2;
System.out.println(max);
}
}
根据判断结果,两份数据中二者选一
练习:求最大值
package com.itheima.test;
import java.util.Scanner;
public class operator3test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个数字:");
int num1=sc.nextInt();
System.out.println("请输入第二个数字:");
int num2=sc.nextInt();
System.out.println("请输入第三个数字:");
int num3=sc.nextInt();
int tempmax=num1>num2?num1:num2;
int max=tempmax>num3?tempmax:num3;
System.out.println("三个数字之中的最大值为:"+max);
}
}
连续运用两次三目运算符,tempmax比较出来前两个值中的最大值,并用这个最大值再和第三个数进行比较,最大的数字用max变量保存并拼接字符串输出
运算符优先级
&&大于||
第一优先级为小括号,需要改变运算属性,用好小括号就可以
方法
方法介绍
方法method是一段具有独立功能的代码块,不调用就不执行
- 可以将代码进行分类管理
- 让代码具有复用性
方法定义
格式照着main函数仿写就行
练习:定义一个方法求最大值
package com.itheima.method;
public class metoddemo1
{
/*
注意事项:
1、方法与方法是平级关系,不允许嵌套定义
2、方法不调用就不执行
3、方法的定义顺序和执行顺序无关,想要梳理执行顺序就看调用顺序
*/
public static void main(String[] args)
{
max();
}
public static void max()
{
int num1 =77;
int num2 =99;
int max = num1 > num2 ? num1 : num2;
System.out.println("两个数字的最大值为"+max);
}
}
注意事项:
1、方法与方法是平级关系,不允许嵌套定义
2、方法不调用就不执行
3、方法的定义顺序和执行顺序无关,想要梳理执行顺序就看调用顺序
方法的执行流程
debug时候,第一个折线的按钮F8步过点击后不能进入方法,需要点击第二个按钮F7步入
调用的图解
- 方法在没有被调用的时候,在方法区中的字节码文件中存放
- 方法被调用的时候,需要进入栈内存中运行
先将字节码文件中所有的方法放在方法区中,首先main方法进栈内存,之后getmax函数进入栈内存。
方法代码执行完毕后,依次从栈内存中退出(弹栈)。
调用参数
package com.itheima.method;
public class methodDemo2 {
public static void main(String[] args)
{
System.out.println("开始");
getmax(30,40);
System.out.println("结束");
}
public static void getmax(int num1,int num2)
{
int max = num1 > num2 ? num1 : num2;
System.out.println("两个数字的最大值为"+max);
}
}
形参和实参
形参:全称形式参数,是指在定义方法的时候,所声明的参数
实参:全程实际参数,调用方法时,所传入的参数
带返回值方法的定义和调用
我们经常会根据一个方法产出的结果,来去组织另外一段代码逻辑;为了拿到这个方法产生的结果,就需要定义带有返回值的方法。
定义格式
package com.itheima.method;
public class methodDemo2 {
public static void main(String[] args)
{
int result = getmax(30,40);
System.out.println("两个数字的最大值为"+ result);
//check(40);
}
public static int getmax(int num1,int num2)
{
int max = num1 > num2 ? num1 : num2;
return max;
}
}
方法通用定义格式
定义方法做到两个明确:
- 明确参数:明确参数的类型和数量
- 明确返回值类型:明确方法操作完毕之后是否有结果数据,如果有,写对应的数据类型,若没有就写void
常见问题:
- 没有返回值的方法可以省略retutn语句不写
- return下面不能写代码,因为永远执行不到
方法重载
- 在同一个类中,定义了多个同名的方法,但每个方法有不同的参数个数或者不同的参数类型,这些同名的方法构成了重载关系
- 识别方法之间是否是重载关系,只看方法名和参数,跟返回值无关