第15次(面向对象深化)

学习主题:面向对象初步

学习目标:

1. 掌握抽象类和抽象方法

2. 掌握接口

3. 掌握内部类

4. 掌握String类的常用方法

对应视频:

http://www.itbaizhan.cn/course/id/1121.html

对应作业:

1. 抽象类和抽象方法

(1) 简述抽象方法的特征

答:使用abstract修饰,没有方法体,只有声明,定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现

(2) 什么情况下使用抽象方法?

答:需要定义模板去让子类实现的时候,且子类必须要去实现,否则报错。

2. 接口的详解

(1) 接口中可以包含哪些内容?

答:抽象方法

(2) 接口和类的关系?

答:接口和实现类是实现规则的关系,并非父子关系

3. 使用接口的意义

(1) 接口有哪些特征?

答:接口不提供任何实现。

接口中所有方法都是抽象方法。

接口完全面对规范,可以更规范地对子类进行约束

接口可以多继承

接口中的属性只能是常量,总以:public static final修饰

接口名和类名采用相同命名机制。

接口不能创建实例,但是可用于声明引用变量类型

(2) 使用接口实现多态的步骤?

答:和类的继承类似,子接口扩展某个父接口,将会获得父接口中所定义的一切。

4. 内部类详解

(1) 内部类有哪些特点?

答:内部类只是一个编译时概念,一旦编译成功就会成为完全不同的两个类。

内部类是相对独立的一种存在,其成员变量/方法名可以和外部类的相同。

内部类可以使用public,default,protected,private以及static修饰。

(2) 内部类可以分哪几类?

答:在Java中内部类主要分为成员内部类(非静态内部类,静态内部类)、匿名内部类,局部内部类。

5. String类常用方法_API文档阅读

(1) String类位于哪个包中,在API中String在的定义是什么?

答:String位于java.lang包中,不可变字符序列。

(2) 请你列举出String类的五个常用方法?

答:1:public String(char[]value);直接将一个字符数组变为一个字符串。

2:public int length();取得字符串长度。

3:public String(byte[]bytes);将一个byte数组全部变为字符串。

4:public String trim();清除左右两端的空格。

5:public int indexOf(String str);从头开始查找指定的字符串位置。

第16次(面向对象深化)

学习主题:面向对象初步

学习目标:

1 掌握常量池

2 掌握多维数组

3 掌握Object如何存储表格数据

4 掌握数组的拷贝

5 掌握java.util.Arrays工具的使用

6 掌握冒泡排序算法

对应视频:

http://www.itbaizhan.cn/course/id/1121.html

对应文档:

对应作业

1. String类和常量池

(1) 请你列举出String类的常用构造方法?

答:1:public String(char[]value):直接将一个字符数组变为一个字符串。

2:public String(char[]value,int offset,int count):将一个指定范围内的字符数组变为字符串。

3:public String(byte[]bytes):将一个byte数组全部变为字符串。

4:public String(byte[]bytes,int offset,int length):将指定范围的byte数组变为字符串。

(2) 请你简述一下常量池?

答:!:全局字符串常量池(String Pool):全局字符串常量池中存放的内容是在类加载完成后存到String Pool中的,在每个VM中只有一份,存放的是字符串常量的引用值(在堆中生成字符串对象实例)。

2:class文件常量池(Class Constant Pool):class常量池是在编译的时候每个class都有的,在编译阶段,存放的是常量(文本字符串。Final常量等)和符号引用。

3:运行时常量池(Runtime Constant Pool):运行时常量池是在类加载完成之后,将每个class常量池中的符号引用值转存到运行时常量池中,也就是说,每个class都有一个运行时常量池,类在解析之后,将符号引用替换成直接引用,与全局常量池的引用值保持一致。

2. 字符串相等的判断

(1) 比较字符串地址是否相等使用什么运算符?

答:使用“==”。

(2) 使用什么方法比较两个字符串的内容是否相等?

答:equals方法用来检测两个字符串内容是否相等

3. 多维数组

(1) 二维数组的初始化有几种方式分别是什么?

答:静态初始化和动态初始化。

(2) 二维数组的遍历有几种方式?

答:1:普通的for循环。

2:加强for循环。

3:加强for循环与普通for循环。

4. Object数组存储表格数据

(1) 数组都可以存储哪些类型的数据?

答:所有类型的数据。

(2) 请你画出使用对象数组存储数据的内存结构图?

答://创建学生数组(对象数组)。

Student[] students = new Student[5];
//创建5个学生对象并赋值。
Student s1 = new Student(“林青霞”,27);
Student s1 = new Student(“风清扬”,30);
Student s1 = new Student(“周润发”,30);
Student s1 = new Student(“周星驰”,60);
Student s1 = new Student(“赵雅芝”,35);
//把c步骤的元素放到数组中。
Student[0] = s1;
Student[1] = s2;
Student[2] = s3;
Student[3] = s4;
Student[4] = s5;
//遍历
for(int x = 0;x < students.length; x++){
//System.out.println(stutents[x]);
Student s = students[x];
System.out.println(s.getName()+”---”+s.getAge());
}




java 有符号byte转无符号byte java无符号byte数组_java byte数组 有符号


5. 数组的拷贝

(1) 数组的拷贝分为哪两种类型的拷贝?

答:int 类型拷贝和String类型拷贝

(2) System类中数组拷贝的方法是什么?参数均是什么含义?

答:System arraycopy();

参数含义:(原数组,原数组的开始位置,目标数组,目标数组的开始位置,拷贝的个数)。

6. java.util.Arrays工具类的使用

(1) Arrays工具类在API中的说明是什么?

答:针对数组进行操作的工具类。

(2) Arrays类中的常用方法有哪些?

答:1:public static String toString(int[] a):

可以将int类型的数组转换成字符串 ([元素1,元素2,元素3...])

2:public static void sort(int[] a):

对指定的 int 型数组按数字升序进行排序

3:public static int binarySearch(int[] a,int key):

二分搜索法: 在int类型的数组中查找key元素的索引

4:public static <T> List<T> asList(T... a) :

将数组转换成固定大小的集合

注意:如果使用此方法,那么集合的长度不可变

7. 冒泡排序的基础算法

(1) 冒泡排序的原理是什么?

答:算法重复地走访过要排序的数列,一次比较两个元素,如果顺序错误就进行交换,这样越大的元素会经由交换慢慢浮到数列顶端

(2) 冒泡排序的外循环条件是什么?内循环条件是什么?

答:外层循环:n个元素排序,则至多需要n-1趟循环

内层循环:每一趟循环都从数列的前两个元素开始进行比较,比较到无序数组的最后。