方法 #
Java 运行的最小单元是 方法 就是实现某一功能的代码块,可以返回处理后的结果
定义格式:
修饰符 返回值类型 方法名(形参列表){
方法体代码
return 返回值;
}
// 功能:求最大值
public static int max(int a, int b){
int max = a>b?a:b;
return max;
}
方法必须调用才能执行
方法的其他形式 #
不需要返回值,返回值类型需要声明成
void
方法可以重载
一个类中,可以出现多个方法的名称相同,但是形参列表不同(类型不同,个数不同,或者顺序不同),那么这些方法则是方法重载
public static void print(int a) {
System.out.println(a);
}
public static void print(char a) {
System.out.println(a);
}
public static void print(int a, String b) {
System.out.println(a);
System.out.println(b);
}
在无返回值的犯方法里,可以使用
return提前结束执行
类型转换 #
在Java中,有4种8个类型的变量,分别是
Byte 1个字节 Short 2个字节 Int 4个字节 Long 8个字节
double 8个字节 float 4个字节
Char 2个字节 Boolean 1个字节
小的可以自动的向大的进行类型转换,反过来不行,需要进行强制转化
如
Byte a = 20;
Int b = 300;
Int c = a + b
Byte d = (Byte) b + a
输入输出 #
需要调用API来进行输入输出
import java.util.Scanner;
public static void print() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = scanner.next();
System.out.println("请输入密码:");
int password = scanner.nextInt();
System.out.println("用户名:" + name);
System.out.println("密码:" + password);
}
运算符 #
几种常规的算术运算符和逻辑运算符,以及三元运算符
public static void print() {
int a = 10;
int b = 20;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a >= b);
System.out.println(a <= b);
System.out.println(a == b);
System.out.println(a != b);
System.out.println(!true);
System.out.println(!false);
System.out.println(a & b);
System.out.println(a | b);
System.out.println(a ^ b);
System.out.println(a << 2);
System.out.println(a >> 2);
System.out.println(a >>> 2);
// 三元运算符
int c = a > b?a:b;
System.out.println(c);
}
程序控制流程 #
-
顺序结构
按顺序执行 -
分支结构
- if-else
public static void drive() { // 定义三种灯的状态 boolean red = true; boolean yellow = false; boolean green = false; if (red) { System.out.println("红灯停"); } else if (yellow) { System.out.println("黄灯等"); } else { System.out.println("绿灯行"); } }- switch
public static void printBook() { String sex = "男"; switch (sex) { case "男": System.out.println("推荐《java从入门到放弃》"); break; case "女": System.out.println("推荐《java从入门到精通》"); break; default: System.out.println("没有推荐"); } }
switch注意事项:
1 不支持小数比较,不支持double,float,long比较
2 case值不能重复,只能是字面量,不能是自变量
3 不要忘记
1 不支持小数比较,不支持double,float,long比较
2 case值不能重复,只能是字面量,不能是自变量
3 不要忘记
break ,会出现穿透现象(可以利用简洁代码)
- 循环结构
- for
- while
- do-while
- 死循环
- 嵌套循环
public static int print(int n) {
// 使用for循环,求1-n的累加和
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
// 使用while循环,求1-n的累加和
public static int print2(int n) {
int sum = 0;
int i = 1;
while (i <= n) {
sum += i;
i++;
}
return sum;
}
// 使用do-while循环,求1-n的累加和
public static int print3(int n) {
int sum = 0;
int i = 1;
do {
sum += i;
i++;
} while (i <= n);
return sum;
}
// 死循环
public static void print4() {
for (; ;){
System.out.println("hello world");
}
}
public static void print5() {
while (true) {
System.out.println("hello world");
}
}
for 和 while 都是先判断后执行
do-while 是先执行后判断
数组 #
- 一维数组
- 二维数组
定义数组时本身存储的是指向一片连续空间的地址,然后根据索引去访问
在定义数组时可以动态分配数组
int[] arr = {10, 20, 30, 40};
System.out.println(arr[0]);
String[] names = {"张三", "李四", "王五"};
System.out.println(names[1]);
int[][] arr2 = {{1, 2, 3},
{4, 5, 6},
{4,4,4,6,7}};
System.out.println(arr2[1][1]);
for (int[] ints : arr2) {
for (int anInt : ints) {
System.out.print(anInt);
}
System.out.println();
}
public static void print() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入二维数组的行数:");
int n = sc.nextInt();
String[][] names = new String[n][n];
for (int i = 0; i < names.length; i++) {
for (int j = 0; j < names[i].length; j++) {
System.out.println("请输入第" + (i + 1) + "行第" + (j + 1) + "列的值:");
names[i][j] = sc.next();
}
}
inOut(names);
}
内置函数 #
Math.random()返回[0,1)的小数
// 生成0-100的随机整数
int num = (int)(Math.random() * 100) +1;
Math.sqrt(a)给数开平方