软件园学生在线

  • {{ item.name }}
  • 2023试用期

登录与注册

后端0 + 崔恩卓

  • cuienzhuo
  • 2023-10-12
  • 0

一.标识符

1.1Mul:错误
2.pri_div:正确
3.goto:错误
4.may be:错误
5.MulForm:正确,并在一定程度上显示了自身的含义5.MulForm:正确,并在一定程度上显示了自身的含义

二.变量的作用域

1.局部变量:

for(int i;;){

}
System.out.println(i);
//报错,i在for循环结束时被销毁

2.全局变量:
(1).有默认值
(2).可以被访问修饰符修饰,且访问修饰符决定其使用范围
3.静态变量:
被所有实例所共用,且有默认值

三.运算符

1.算术运算符:
(1)."/" 若两侧均为整型数,那么商也会取整

int i = 5;
int j = 9;
System.out.println(i/j);//0

若要输出小数,可以将i或j的任意一项或两项转为浮点数
(2).a++,++a的区别(--逻辑相同):
运算逻辑的先后不同:

int i = 5;
j = i++;//j = 5,i = 6
a = ++i;//a = 7 = i
int i = 5,j = 6;
if(i++ == 6 && ++j == 7){
//关于这个问题,i++ == 6,是在i = 5时与6相比
//所以这项错误,if内语句无法输出,
//为何j = 6,
//因为&&有截断效果,若第一项错误,则后项则不判断,直接跳出
i = 17;
j = 11
}
System.out.println(i);//6
System.out.println(j);//6

2.逻辑运算符:
&&和||都有类似的截断效果,若&&第一项错误,后项不予判断,若||第一项正确,则后项不予判断
3.赋值运算符:
可以省略类似a = a + 2;的繁复过程,直接a += 2;
此外,赋值运算符有自带的强转

byte i = 3;
i = i + 2;会报错
i += 2;不会报错

四.分支

1.if-else if-else

//输出闰年
import java.util.Scanner;
public class RunNian{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
if((n % 4 == 0 && n % 100 != 0) || n % 400 == 0){
System.out.println(n + "年是闰年")
}
}
}

2.switch:
(1).若通过了一个case,那么后续case不再判断,直接输出,直到遇见break或default
(2).case后接的值不可以使用变量
(3).若没有设置default,在程序执行完后也会退出
(4).多个case可以对应同一输出结果

case 1:
case 2:
case 3:
System.out.println();
break;

五.循环

1.

for((最先执行,且只执行一次)循环变量初始化;1.循环条件;3.循环变量迭代){
    2.语句块
}

也可以这么写

循环变量初始化
for(;循环条件;){
语句块
循环变量迭代
}
(其中;不可缺少)

2.for-each
for(数据类型 标识符:要遍历的数组或集合)
3.while(condition)
当condition为true时执行代码块
4.do-while
无论如何至少执行一次的循环

六.类与对象:

1.静态方法:可以通过类名使用,Math是典型的静态方法集
2.非静态方法在使用前要创建对象,以对象.方法名(参数)的方式使用
3.静态方法只可以使用静态变量和局部变量
4.private修饰的变量不可以通过(对象名.变量名)修改,就要借用构造器和set的方法去修改

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int r1 = scanner.nextInt();
        int r2 = scanner.nextInt();
        System.out.println(AreaCalculation.PI);
        AreaCalculation a = new AreaCalculation(r1,r2);
        System.out.println(a.add());
        AreaCalculation.AreaCal(r1,r2);
    }
}

class AreaCalculation {
    private int r1;
    private int r2;
    private int rSum;
    public static double PI = 3.14;

    public AreaCalculation(int r1, int r2) {
        this.r1 = r1;
        this.r2 = r2;
    }

    public int add() {
        rSum = r1 + r2;
        return rSum;
    }

    public void setr1(int r1) {
        this.r1 = r1;
    }

    public int getr1() {
        return r1;
    }
    //r2同理,不过多赘述

    public static void AreaCal(int r1,int r2) {
        for (int i = r1; i <= r2; i++) {
            double area = PI * Math.pow(i, 2);
            System.out.println(area);
        }
    }
}

5.封装可以避免内部数据被篡改,也可以让用户不需了解内部运行的情况下使用

七.数组

1.多维数组从第二维开始的内存可以待定,便于后续使用,杨辉三角的实现就是使用了二维数组的待定

public class YangHui{
    public static void main(String[] args){
        int[][] arr = new int[10][];//定义一个10行的数组
        for(int i = 0;i < arr.length;i++){
            arr[i] = new int[i + 1];//对每行数组进行列数赋值
            for(int j = 0;j < arr[i].length;j++){
                if(j == 0 || j == i){
                    arr[i][j] = 1;//对数组进行赋值
                }else{
                arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
            }
            }
        }
        for(int i = 0;i < arr.length;i++){
            for(int j = 0;j < arr[i].length;j++){
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}

2.for-each仅是对数组的拷贝,不会影响数组本身,但是以for遍历会改变数值

public class Test1 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        for(int i : arr){
            i++;
            System.out.println(i);//2,3,4,5,6
        }
        for(int i : arr){
            System.out.println(i);//1,2,3,4,5
        }
        for (int i = 0; i < arr.length; i++) {
            arr[i]++;
            System.out.println(arr[i]);//2,3,4,5,6
        }
        for(int i : arr){
            System.out.println(i);//2,3,4,5,6
        }
    }
}

3.可变参数:
数据类型... 标记符
基本可以当作数组看待
一个方法中不可以有两个以上的可变参数,且可变参数要放于形参列表最后

八.继承

class 子代 extends 父代{

}

1.子代可以继承父代的所有方法,并且可以进行改写
2.子代最多只能有一个父代
3.若父代有构造器将无参构造器掩盖,创造子代时报错,有以下方法解决
(1).在父代中创建一个无参构造器
(2).在子代的构造方法中使用super来使用父代构造器
(3).在子代中对父代的构造器进行改写

cuienzhuo
cuienzhuo
© 2025 软件园学生在线
Theme by Wing