第二周 预习:Java基本语法2、面向对象入门
1. 方法相关问题
```java
public class Main {static void changeStr(String x) {x = "xyz";}static void changeArr(String[] strs) {for (int i = 0; i < strs.length; i++) {strs[i] = strs[i]+""+i;}}public static void main(String[] args) { String x = "abc";changeStr(x);System.out.println(x);changeArr(args);System.out.println(Arrays.toString(args));}
}
```
对于如上代码:
1.1 changeStr与changeArr的功能各是什么?
(1)将x内字符串改为“xyz”
(2)将每项字符内容后边插入替换前的字符
1.2 main方法的x有没有被改变?为什么?
没有,因为x在调用changeStr前就存放在字符串常量池中了,不会被改变。
1.3 main方法的args数组的内容有没有被改变?为什么?
没有,args中无内容,没有初始化
1.4 args数组中的值是从哪里来的?要怎么才能给他赋值。
值可从在命令行下运行时,在类名后面输入,给他赋值,但在eclipse上无输入直接运行会是一个空数组。
2. 数组相关问题
```java
int[] arr = new int[3];
arr[0] = 1; arr[1] = 1;
int[] arrX = arr;
arr[0] = 2;
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(arrX));
```
2.1 输出结果是什么?为什么?
```java
String[] strArr = {"aa","bb","cc"};
strArr[1] = "xx";
System.out.println(Arrays.toString(strArr));
```
[2, 1, 0]
[2, 1, 0]
数组初始化自动为0,arr和arrX本质上是对同一个数组的引用。
2.2 字符串是不可变类,为什么可以对strArr[1]赋值"xx"。
字符串是不可变类没错,意思是在字符串常量池里不会改变,而可以将String引用指向其他字符串。
3. 使用int[5][] 定义一个二维数组,其第二维到底有多长?尝试补全代码,然后使用foreach获其他循环方法遍历这个二维数组?
第二维在没有赋值或定义时是null。
public class test {public static void main(String[] args) {int[][] a = new int[5][];System.out.println(a.length);//System.out.println(a[0].length);//}
}
4. 类与对象的区别是什么? Math类有对象吗?String类有什么属性是private的,有什么方法是public的,为什么这样设计(尝试举两例说明)?
(1)类是一个抽象的概念,对象是类的一个具体。它是一个实实在在存在的东西。
类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。
对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。
(2)Math类没有对象;
(3)私有对象属性;
5. 将类的属性设置为public可以方便其他类访问,但为什么Java中普遍使用setter/getter模式对对象的属性进行访问呢?这与封装性又有什么关系?
(1)getter setter方法是为了自如地控制一个成员属性的读写权限。
而public和private,要么是可读可写,要么是不可读不可写,权限控制不够自由并且不支持default、protected修饰符的权限。
(2)为了封装内部细节。
6. 对象的属性可在什么时候进行初始化?都有哪些进行初始化的办法?
(1) 声明该属性的时候初始化
(2) 构造方法中初始化
(3) 初始化块
7. 进阶(可选):尝试使用作用域来说明封装性。
public修饰的属性与方法所有的都可访问,protected修饰的属性与方法其他包外不能访问,不做任何修饰的属性与方法其他包与子孙类不能访问,private修饰的属性与方法其只可以在当前类里面被访问。
第二周 预习:Java基本语法2、面向对象入门相关推荐
- 蓝旭前端第二周预习———HTML标签+如何查看控制台
蓝旭前端第二周预习---HTML标签+如何查看控制台 HTML标签 文档 文档生成 文档结构 标签 标签语法 基本标签 如何查看控制台(chrome) HTML标签 文档 文档生成 VScode中&q ...
- 网络131第6周实验——Java基本语法
实验内容来自 教材P275 "实验三 Java基本语法",大家利用这一周的时间来尝试完成四个实验内容. 实验内容 1:闰年之循环判断.编写Java持续,输出1800年-2014年之 ...
- java基础练习题:面向对象入门
面向对象入门 1.类就是自定义数据类型,比如Cat. 2.对象就是一个具体的实例. public class MianXiangDuiXiang{public static void main(Str ...
- 第二周:java异常和常用类 容器
一.java异常类 1.定义 异常就是在运行时产生的问题.通常用Exception描述. 在java中,把异常封装成了一个类,当出现问题时,就会创建异常类对象并抛出异常相关的信息(如详细信息,名称以及 ...
- 第二章:Java基本语法
目录: 1. 关键字 & 标识符 2. 变量 基本数据类型 基本数据类型转换 3. 运算符 4. 程序流程控制 4.1 分之结构 4.2 循环结构 4.3 break&continue ...
- 第二次预习——java异常类和常用类 容器
文章目录 一.异常类 1.概念 2.异常类分类 2.1分类 2.2Error与Exception的区别 2.3Java中常见运行时异常 3.try-catch语句 3.1用法 3.2语句 3.3实例 ...
- Java基础语法和面向对象代码汇总
基础语法 package com.ly.java1030Summary;import java.util.Scanner;public class Function {/** 需求* 抽奖规则:用户输 ...
- 第二周预习:异常类,常用类,容器
异常类 异常 异常:在程序的运行过程中,发生了不正常的现象,阻止了程序的运行,我们称之为发生异常. Java使用throw关键字抛出一个Exception子类的实例表示异常发生. try-catch语 ...
- 第二周预习——html常用标签,认识浏览器
标签分类: 文字 列表 表格 超链接 图像 表单 文字类标签: <h1></h1>~<h6></h6> 标题 <br/> 换行 <p& ...
最新文章
- 祝我亲爱的天蝎GG生日快乐!+相识3周年小纪念
- c++ 头文件 .h 理解与实践
- 「实用」微信扫码 - 关注公众号后网站自动登录
- QT的QActionGroup类的使用
- 六种方式实现生产者消费者(未完)
- 【LeetCode笔记】105. 从前序与中序遍历序列构造二叉树(Java、递归、二叉树、哈希表)
- Linux(CentOS)安装apache(httpd),其他电脑无法访问的原因 【iptables打开某端口】
- 基于Java+SpringBoot+vue+element等动物救助平台设计和实现
- mysql基础知识总结
- pytorch学习笔记(二十):Padding-And-Strides
- php自学笔记四扫雷完成
- mysql 按照年龄段分组查询
- C语言字符串分割 trimmed simplified split
- 部分GDAL工具功能简介
- Excel文件导出,前端导出或者后端导出
- 模拟网易云的H5音乐播放器
- Windows DNS服务器策略
- Allegro Shape菜单详解
- Windows:忘记本地账户开机密码,但记得住PIN码
- 公链求生记:我要干外包