第二周 预习任务学习

 

1.1 changeStr与changeArr的功能各是什么?

changeStr将x赋值为xyz,但在返回main后,x还是abc;changeArr将每个元素都增加一个他们的下标。

1.2main方法的x有没有被改变?为什么?

没有改变,changeStr复制的是x的引用,函数无返回值,x不改变。

1.3main方法的args数组的内容有没有被改变?为什么?

有改变,因为在函数内部直接将字符串赋给String。

1.4args数组中的值是从哪里来的?要怎么才能给他赋值。

值可从在命令行下运行时,在类名后面输入,给他赋值,但在eclipse上无输入直接运行会是一个空数组

 

2.1输出结果是什么?为什么?

[2, 1, 0]
[2, 1, 0]

首先arr是一个由三个int型元素组成的数组,如果没有赋值,系统将统一赋初值0,再加上程序的赋值,结果就算是[2, 1, 0],又arrX=arr,两个数组指向同一块区域

 
  1. java

  2. String[] strArr = {"aa","bb","cc"};

  3. strArr[1] = "xx";

  4. System.out.println(Arrays.toString(strArr));

2.2字符串是不可变类,为什么可以对strArr[1]赋值"xx"。

字符串是不可变类没错,意思是在字符串常量池里不会改变,而可以将String引用指向其他字符串

3.使用int[5][] 定义一个二维数组,其第二维到底有多长?尝试补全代码,然后使用foreach获其他循环方法遍历这个二维数组?

第二维在没有赋值或定义时是null

假设赋值后可这样遍历

 
  1. int[][] a=new int[5][];

  2. for(int[] x:a)

  3. {

  4. for(int y:x)

  5. {

  6. System.out.println(y);

  7. }

  8. }

4. 类与对象的区别是什么? Math类有对象吗?String类有什么属性是private的,有什么方法是public的,为什么这样设计(尝试举两例说明)?

对象是实例化的类,Math没有对象,它的构造方法“私有”了,因为它内部都是“静态方法”

String有如下public属性

 
  1. private final byte[] value;

  2. private final byte coder;

  3. private int hash;

  4. private boolean hashIsZero;

  5. 。。。

public方法

 
  1. public String()

  2. public String(String original)

  3. public String(char value[])

为了封装和避免一些固定的值改变(安全) 

5.将类的属性设置为public可以方便其他类访问,但为什么Java中普遍使用setter/getter模式对对象的属性进行访问呢?这与封装性又有什么关系?

个人看法

1.对于一些只读变量,不设置getter;

2.在setter,可生成合理赋值

3.节省内存,只在一个类里有

封装性的话,就是避免随意的访问,和报错的时候可以快速的找到吧

6.对象的属性可在什么时候进行初始化?都有哪些进行初始化的办法?

1.定义时、使用时、得到其值时

2.set,初始化块,构造

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值