类,接口,数组的一些知识

学习主题:面向对象初步
学习目标:
1.掌握抽象类和抽象方法
2.掌握接口
3.掌握内部类
4.掌握String类的常用方法

1.抽象类和抽象方法
(1)简述抽象方法的特征
1、抽象方法没有方法体,只能以“;”结尾
2、抽象方法只能声明在抽象类中
3、抽象类可以有0个或多个抽象方法
4、抽象方法必须被子类实现
5、如果子类不能实现父类中的抽象方法,那子类本身必须是抽象方法
(2)什么情况下使用抽象方法?
通过抽象类,可以避免子类设计的随意性。通过抽象类可以严格控制子类的设计,使子类更加通用。所以当父类的名称比较抽象,创建对象无意义的情况下使用抽象方法。
2.接口的详解
(1)接口中可以包含哪些内容?
1、抽象方法
Public abstract方法
2、非抽象方法
Public default void 方法
3、属性(public static final)常量
Public static final可以省略不写
public interface MyInterface {
String name =“张三”;
public static final String name2=“张三”;
(2)接口和类的关系?
1、实现关系,类去实现接口中的抽象方法
2、如果一个类中同时存在继承关系和实现关系,则先继承后实现
3、如果父类和接口中有相同的方法(一模一样),则子类实现的方法是父类中的。
4、如果父类和子类有相同的方法名,则要求父类和子类的方法在子类/实现类中构成方法的重载

3.使用接口的意义
(1)接口有哪些特征?
1、传递性
2、继承性
(2)使用接口实现多态的步骤?
1、编写接口
2、实现类实现接口中的方法
3、接口(类型)new 实现类对象
4.内部类详解
(1)内部类有哪些特点?
1、内部类可以直接访问外部类的成员,反之则不行。
2、内部类作为外部类成员,可声明为private、默认、protected或public
3、内部类成员只有在内部类的范围之内是有效的
4、用内部类定义在外部类中不可访问的属性。这样就在外部在实现了比外部类的private还要小的访问权限。

(2)内部类可以分哪几类?
1、成员内部类
2、静态内部类
3、匿名内部类
5.String类常用方法_API文档阅读
(1)String类位于哪个包中,在API中String在的定义是什么?
不可变字符序列
(2)请你列举出String类的五个常用方法?
1、char charAt(int index)返回字符串第index个字符
2、Boolean equalsIgnoreCase(String other)如果字符串与other相等,则返回true
3、int indexOf(String str) 查找字符串出现位置
4、int length() 返回字符串的长度
5、String replace(char oldChar,char newChar) 返回一个新串,
分享/讲解/扩展思考
点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。

第16次(面向对象深化)
学习主题:面向对象初步
学习目标:
1 掌握常量池
2 掌握多维数组
3 掌握Object如何存储表格数据
4 掌握数组的拷贝
5 掌握java.util.Arrays工具的使用
6 掌握冒泡排序算法

1.String类和常量池
(1)请你列举出String类的常用构造方法?
1、char类型的数组
2、byte类型的数组

(2)请你简述一下常量池?
用于存储在编译期确定,并被保存在自己编译的字节码文件中的一些数据,包括final修饰变量及字符串变量和符号引用量。

2.字符串相等的判断
(1)比较字符串地址是否相等使用什么运算符?
= =
(2)使用什么方法比较两个字符串的内容是否相等?
Equals(Object obj) 比较对应位置上的字符是否相等,如果所有的位置上的字符均相等,返回true,否则返回false.
3.多维数组
(1)二维数组的初始化有几种方式分别是什么?
1、int[][] intA = {{1},{1,2},{1,2,3}}
2、int intB[][] = new int[3][4]
3、int[] intC[] = new int[3][]
intC[0] = int[1];
intC[1] = int[2];
intC[2] = int[3];
(2)二维数组的遍历有几种方式?
1、普通for循环
2、加强for循环
3、普通for循环+加强for循环

4.Object数组存储表格数据
(1)数组都可以存储哪些类型的数据?
基本数据类型和引用数据类型
(2)请你画出使用对象数组存储数据的内存结构图?

5.数组的拷贝
(1)数组的拷贝分为哪两种类型的拷贝?
地址拷贝和值得拷贝
(2)System类中数组拷贝的方法是什么?参数均是什么含义?
Arrycopy()
src – 源数组
Srcpos --源数组的起始位置
Dest – 目标数组
Destpos – 目的地数据中的起始位置
length – 要复制的数组元素的数量

6.java.util.Arrays工具类的使用
(1)Arrays工具类在API中的说明是什么?
此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为List来查看的静态工厂。
除非特别注明,否则如果指定数组引用为 null,则此类中的方法都会抛出 NullPointerException。

(2)Arrays类中的常用方法有哪些?
1、toString()打印数组
2、equals()比较两个数组是否相同
3、copyOf(…)复制指定的数组
4、fill(…)填充
5、sort(…)数组排序
对象数组排序

7.冒泡排序的基础算法
(1)冒泡排序的原理是什么?
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一个数字需要比较

(2)冒泡排序的外循环条件是什么?内循环条件是什么?
外循环条件:i<数组名.length-1
内循环条件:j<数组名.length-1-i

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值