第02周 预习:Java基本语法2、面向对象入门

网络2113陈龙 网络21级 2022-09-08 12:09:32

. 方法相关问题
```java


 
  1. public class Main {

  2. static void changeStr(String x) {

  3. x = "xyz";

  4. }

  5. static void changeArr(String[] strs) {

  6. for (int i = 0; i < strs.length; i++) {

  7. strs[i] = strs[i]+""+i;

  8. }

  9. }

  10.  
  11. public static void main(String[] args) {

  12. String x = "abc";

  13. changeStr(x);

  14. System.out.println(x);

  15. changeArr(args);

  16. System.out.println(Arrays.toString(args));

  17. }

  18. }

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

  • changeStr是将字符串x改为xyz,changeArr是对字符串数组str[i]改为str[i]+" "+i。

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

没有,因为x还是对“abc”的引用,changeStr()是重新创建一个引用所以对mian里面的x无影响

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

没有,数组没有初始化
1.4 args数组中的值是从哪里来的?要怎么才能给他赋值。

键盘输入,直接写代码赋值

2. 数组相关问题

 


 
  1. int[] arr = new int[3];

  2. arr[0] = 1; arr[1] = 1;

  3. int[] arrX = arr;

  4. arr[0] = 2;

  5. System.out.println(Arrays.toString(arr));

  6. System.out.println(Arrays.toString(arrX));

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

2 1 0

2 1 0

因为是int,arr[2]会自动赋值为0;然后arrX = arr,所以arrX的引用对象与arr的一样


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

  2. strArr[1] = "xx";

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

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

strArr[1]是对重新创建的“xx”进行引用,原来的“bb”还是存在的

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

取决于输入的数据多少

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

类是对象的抽象,而对象是类的具体实例。没有,Math只有方法。value、coder,加强封装性

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

因为setter和getter可以访问private所以不用担心是public还是private,想要访问private封装的属性需要使用getter或setter

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

开始运行前都可以初始化,定义初始化、初始化块、构造初始化。

...全文
59 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-Java 发布问题, 以便更快地解决您的疑问

4,027

社区成员

发帖
与我相关
我的任务
社区描述
为初学Java的大学生提供一个学习、交流的社区。 社区包括:技术文章、学习任务、在线课程、在线编程练习。
javajava-eeeclipse 高校
社区管理员
  • zhrb
  • 驼同学.
  • 兰翔呀
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

社区板块说明:
1. Java技术:包含Java技术的各种新闻、文章。
2. 教学频道:包含Java基础技术与Java教学中常用的一些文章。建议初学者、在线学习的同学在这里交流、提问、浏览课程学习相关文章。
3. 学习任务:老师发布的教学任务。
4. 其他技术:其他技术文章。

社区链接说明:
1. 在线学习:本社区对应的在线课程(免费学习)。
2. 编程练习:本社区使用的在线编程练习平台(加入在线课程后,免费练习)。
3. 项目实例:一个简单的Java项目示例。
 

试试用AI创作助手写篇文章吧