java-package,运算符,方法(函数)debug调试方法 方法区 栈内存 带参数的定义和调用(行参和实参) 方法重载12
右键新建一个包
再点击文件右上角的齿轮,把紧凑中间包的√去掉,显示多重目录结构
赋值运算符:
package com.demo.operation;
public class assignment {
public static void main(String[] args) {
int nmb = 20;
nmb +=10;
System.out.println(nmb);//30
int nmb2 = 20;
nmb2 -=10;
System.out.println(nmb2);//10
int nmb3 = 20;
nmb3 *=10;
System.out.println(nmb3);//200
int nmb4 = 20;
nmb4 /=10;
System.out.println(nmb4);//2
int nmb5 = 20;
nmb5 %=10;
System.out.println(nmb5);//0
//赋值运算符,内部自带强转效果
double a = 12.3;
int b = 10;
b+=a;
System.out.println(b);//22
}
}
判断运算符:
public class compare { public static void main(String[] args) { /* * 比较运算符 * > * >= * < * <= * == * != * */ System.out.println(10>20);//false System.out.println(10>=20);//false System.out.println(10<20);//true System.out.println(10<=20);//true System.out.println(10==20);//false System.out.println(10!=20);//true } }
逻辑运算符:
package com.demo.operation; public class logic { public static void main(String[] args) { // 与:遇false则false /* int score = 95 如果(score >= 95 &score <=100){ } */ System.out.println(true & true);//true System.out.println(true & false);//false System.out.println(false & true);//false System.out.println(false & false);//false System.out.println("--------------------------"); // 或:遇true则true /* int id = 3 如果(id == 3|id ==5|id ==12){ } */ System.out.println(true | true);//true System.out.println(true | false);//true System.out.println(false | true);//true System.out.println(false | false);//false System.out.println("--------------------------"); // 非:取反 System.out.println(!true);//false System.out.println(!false);//true System.out.println("--------------------------"); // 异或:相同为false,不同为则true System.out.println(true ^ true);//false System.out.println(true ^ false);//true System.out.println(false ^ true);//true System.out.println(false ^ false);//false System.out.println("--------------------------"); // 短路与&&:具有短路效果,左边为false,右边则不执行,左边为true,右边继续执行 int a = 3; int b = 4; boolean c = a++ > 5 && b-- < 4 ; System.out.println(a); System.out.println(b); System.out.println(c); System.out.println("--------------------------"); // 短路或||:左边为true,右边不执行,左边为false,右边继续执行 } }
三元运算符:
package com.demo.operation; import java.util.Scanner; public class ternary { /* * 三元运算符 * 判断条件?值1:值2 * */ public static void main(String[] args) { /*int a = 10; int b = 20; int max = a>b ?a:b;*/ // System.out.println(max); Scanner sc = new Scanner(System.in); System.out.println("请输入三个整数"); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); // 计算前面两个最大值 int d = a>b?a:b; int max = d>c?d:c; System.out.println(max); } }
运算符优先级:
可以用小括号先括起来优先运算
函数:
package com.demo.method;
import java.util.Scanner;
public class function {
public static void main(String[] args) {
/*
* 方法:一段独立的代码块,不调用就不执行
* 好处:不臃肿,按功能分类管理,提高阅读性
* 提高代码复用性
*public static void 方法名() {
* 方法体(逻辑代码)
* }
* 方法调用:
* 方法名();
* 注意事项:
* 1.方法与方法平级,不能嵌套
* 2.不调用不执行
* 3.方法的定义顺序跟执行顺序无关,要看调用顺序
* */
// 调用方法
// 方法3
// 方法aaa
// 方法a2
System.out.println("开始");
ccc();
aaa();
bbb();
max();
min();
System.out.println("结束");
}
public static void aaa() {
System.out.println("方法aaa");
}
public static void bbb() {
System.out.println("方法a2");
}
public static void ccc() {
System.out.println("方法3");
}
public static void max() {
int a = 10;
int b = 20;
int max = a>b ?a:b;
System.out.println(max);
}
public static void min() {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int max = a<b ?a:b;
System.out.println(max);
}
}
用debug进入方法里面测试:
先断点,然后点击像下载标志的步入即可步入,步入后点击第一个回第一个按钮,那个像下载标志的是第二个按钮
2.跳出方法
方法区- 栈内存:
按调用顺序来
带参数的定义和调用:
package com.demo.test; public class parameter { public static void main(String[] args) { a(10,20); System.out.println("------------"); a(30,80); } public static void a(int numb1,int num2) { int max = numb1>num2?numb1:num2; System.out.println(max); } }
Scanner是面向用户的,方法是面向开发的
package com.demo.test; public class parameter { public static void main(String[] args) { //实参 a(10,20); System.out.println("------------"); //实参 a(30,80); } //形参 public static void a(int numb1,int num2) { int max = numb1>num2?numb1:num2; System.out.println(max); } }
方法返回
return
为什么会有带返回值的方法:因为我们经常需要带结果的方法去计算其他方法,所以就需要带返回值的方法
package com.demo.test;
public class parameter {
public static void main(String[] args) {
// 接收return数据
int result = a(10,20);
System.out.println(result);
}
//要return数据出去,就不能用void了,得用对应的数据类型
// 返回值类型要写上,没有则写void
public static int a(int numb1,int num2) {
int max = numb1>num2?numb1:num2;
System.out.println(max);
return max;
}
}
最后一个箭头多余的
方法重载:
package com.demo.test;
public class parameter {
public static void main(String[] args) {
// 接收return数据
int result = a(10,20);
System.out.println(result);
}
//要return数据出去,就不能用void了,得用对应的数据类型
// 返回值类型要写上,没有则写void
public static int a(int numb1,int num2) {
int max = numb1>num2?numb1:num2;
System.out.println(max);
return max;
}
// 方法名可以重复,形参不能一样
public static int a(int i1,int num2,int id3) {
int max = i1>num2?i1:num2;
System.out.println(max);
return max;
}
// 方法一样,参数一样,会报错,参数名字更改也会报错
// 例如:
/* public static int a(int i,int n2,int i) {
int max = i1>num2?i1:num2;
System.out.println(max);
return max;
}*/
// 参数类型不一样则可以,如下例
public static double a(double i1,int num2,int id3) {
double max = i1>num2?i1:num2;
System.out.println(max);
return max;
}
}
代码改变了我们,也改变了世界