1、方法相关问题
1.1 changeStr与changeArr的功能各是什么?
changerStr是交换字符串,changeArr是在数组后面加上数组的序号。
1.2 main方法的x有没有被改变?为什么?
没有,因为changerStr函数是void类型,没有返回值,所以不能改变x的值。
1.3 main方法的args数组的内容有没有被改变?为什么?
args数组的内容没有被改变,因为args数组没有初始化。
1.4 args数组中的值是从哪里来的?要怎么才能给他赋值。
java 语言中数组必须先初始化,然后才可以使用。所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。
初始化数组有以下 3 种方式:
1)使用 new 指定数组大小后进行初始化
使用 new 关键字创建数组,在创建时指定数组的大小。语法如下:type[] arrayName = new int[size];
示例:int[] number = new int[5];
2)使用 new 指定数组元素的值
使用上述方式初始化数组时,只有在为元素赋值时才确定值。可以不使用上述方式,而是在初始化时就已经确定值。语法如下:type[] arrayName = new type[]{值 1,值 2,值 3,值 4,• • •,值 n};
3)直接指定数组元素的值
在上述两种方式的语法中,type 可以省略,如果已经声明数组变量,那么直接使用这两种方式进行初始化。如果不想使用上述两种方式,那么可以不使用 new 直接指定数组元素的值。语法如下:type[] arrayName = {值 1,值 2,值 3,...,值 n};
2、 数组相关问题
2.1 输出结果是什么?为什么?
[2,1,0]
[2,1,0]
使用数组的动态初始化的时候会默认给数组赋值,而且该数组是int类型所以arr[2]=0, arrX[2]=0
2.2 字符串是不可变类,为什么可以对strArr[1]赋值"xx"。
字符串是不可变类但仍可以赋值的原因是赋值的时候并没有改变字符串的值而是自动装箱又产生了一个新对象。
3. 使用int[5][] 定义一个二维数组,其第二维到底有多长?尝试补全代码,然后使用foreach获其他循环方法遍历这个二维数组?
第二维的长度是可以自己定义的
4. 类与对象的区别是什么? Math类有对象吗?String类有什么属性是private的,有什么方法是public的,为什么这样设计(尝试举两例说明)?
- 类与对象的区别:
(1)、定义不同
类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。
(2)、范畴不同
类是一个抽象的概念,它不存在于现实中的时间、空间里,类知识为所有的对象定义了抽象的属性与行为。
对象是类的一个具体。它是一个实实在在存在的东西。
(3)、状态不同
类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何数据时,类本身不存在于内存空间
Math类有对象,Math对象是一个固有对象
将类的属性设置为public可以方便其他类访问,private类是不允许其他类访问
5. 将类的属性设置为public可以方便其他类访问,但为什么Java中普遍使用setter/getter模式对对象的属性进行访问呢?这与封装性又有什么关系?
让任何对象都可以获取到这个成员而不可修改这个成员,封装性即是只需知道外部使用,无需了解内部构造。使用setter/getter模式恰好解决了这个问题。
6. 对象的属性可在什么时候进行初始化?都有哪些进行初始化的办法?
在需要的时候初始化即可
对象属性初始化有3种
(1). 声明该属性的时候初始化
(2). 构造方法中初始化
(3). 初始化块
















