第二周课前问题

第二周课前问题

1、方法相关问题

在这里插入图片描述
1.1 changeStr方法的功能是尝试将传入的字符串参数x的值改为"xyz",但是,由于Java中的字符串是不可变的,这个方法不会改变外部传入的字符串对象,它只是将局部变量x指向了一个新的字符串"xyz"
changeArr方法的功能是遍历传入的字符串数组strs,将数组中每个字符串后面加上它在数组中的位置编号
1.2 main方法中的x没有被改变,原因是Java中字符串是不可变的,而且传递的是值的一个副本,在changeStr方法中,虽然局部变量x被赋予了一个新的字符串引用,但这个操作并不影响main方法中的x变量
1.3 main方法中的args数组的内容被改变了,因为数组是可变的对象,changeArr方法接收的是args数组的引用,在changeArr方法中,通过这个引用修改了数组的内容,所以main方法中的args数组内容也发生了变化
1.4 args数组中的值通常是从命令行参数传递来的。在运行Java程序时,可以在命令行中添加参数,这些参数将被存储在args字符串数组中

2、数组相关问题

在这里插入图片描述
2.1 输出结果:
[2, 1, 0] [2, 1, 0]
原因:arrXarr指向同一个数组,修改arr也会影响arrX

2.2 可以对strArr[1]赋值"xx"因为strArr是字符串引用的数组,不是字符串本身,赋值操作改变的是引用,不是字符串本身的内容

在这里插入图片描述
3.1. 二维数组的第二维长度是不固定的,可以无限长。
3.2

public class Main {
    public static void main(String[] args) {
        int[5][] twoDimArray = new int[5][];
        twoDimArray[0] = new int[2]; 
        twoDimArray[1] = new int[3]; 
        twoDimArray[2] = new int[1]; 
        twoDimArray[3] = new int[4]; 
        twoDimArray[4] = new int[5]; 
        // 初始化二维数组
        int value = 0;
        for (int i = 0; i < twoDimArray.length; i++) {
            for (int j = 0; j < twoDimArray[i].length; j++) {
                twoDimArray[i][j] = value++;
            }
        }
        // 使用foreach遍历二维数组
        for (int[] row : twoDimArray) {
            for (int item : row) {
                System.out.print(item + " ");
            }
            System.out.println();
        }
    }
}

4 类是对象的蓝图或模板,定义了对象的属性和行为;对象是类的实例,具有类定义的属性和行为。Math类是一个工具类,它没有公开的构造函数,因此不能创建Math类的对象。String类中的属性如value(字符串的内部表示)通常是私有的,而方法如length()charAt(int index)是公开的,这样的设计是为了保护字符串的内部表示不被外部直接修改,同时提供安全的公共接口来访问和操作字符串

5.将类的属性设置为public虽然方便访问,但破坏了封装性,使得属性可以被外部直接修改,可能导致对象状态的不一致性。使用setter/getter模式可以控制对属性的访问,允许进行数据验证、日志记录、延迟初始化等操作,同时保持了封装性

6.1对象的属性可以在声明时初始化、构造器中初始化、或者在类的方法中进行初始化
6.2方法:
声明时初始化: 在声明属性时就直接赋初值
构造器中初始化: 在类的构造器中对属性进行赋值
初始化块: 使用初始化块来设置属性的初始值,它在构造器之前执行
静态初始化块: 对于静态属性,可以使用静态初始化块来初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值