当前位置: 首页 > news >正文

java空字符_Java学习之路008天

b5ab3dc11448d2bd76efd4c8e2dcb21a.png

第15次(面向对象深化)

学习主题:面向对象初步

学习目标:

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

2. 掌握接口

3. 掌握内部类

4. 掌握String类的常用方法

对应视频:

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

对应文档:

对应作业:

1. 抽象类和抽象方法

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

1、 抽象方法不可以有方法体,只能以“;”结束

2、 抽象方法必须被子类实现

3、 抽象类可以有0个或多个抽象方法

4、 抽象方法只能声明在抽象类中

5、 如果子类不能实现父类的抽象方法,那么子类必须是抽象方法

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

通过抽象类,可以避免子类设计的随意性。通过抽象类,我们可以做到严格限制子类的设计,是子类之间更加通用。(程序的可扩展性和可维护性)

对于创建的类比较抽象,可以创建一个抽象方法,以便限制子类设计的随机性。

(3)抽象类特征(被abstract修饰的类)

1、抽象类不可以创建对象

2、抽象类可以有构造方法(提供给子类调用)

3、抽象类中可以包含成员变量(也称实例变量或属性),成员方法(也称实例方法),静态方法,被final修饰的方法(只能被子类调用,不可以被子类重写),抽象方法(只能声明在抽象类中)

4、抽象类可以有0个或多个抽象方法

2. 接口的详解(如果一个类中所有方法都是抽象方法,那这个类可以声明为接口)

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

1、 抽象方法(jdk1.7 public abstract可以不写)

2、 非抽象方法(jdk1.8,必须使用default关键字 如:public default void method(){})

3、 可以包含属性(必须是public static final修饰的常量:public static final String=“张三”; public static final可以不写)

(2) 接口和类的关系?

1、类去实现接口中的方法,实现关系,implement(类需实现接口中的所有抽象方法)

(3)如果父类与接口中有完全一样的方法,子类/实现类所实现的方法是父类的?实现类的?

父类优先于接口,子类实现的是父类的方法

(4)如果父类中于接口中有同名方法,对子类/实现类有什么要求?

父类与接口中的方法,在子类/实现类中构成方法的重载

注意:接口中不允许定义构造方法,接口是一种引用数据类型

3. 使用接口的意义(接口体现的是一中能力)

(1) 接口有哪些特征?

1、 传递性(interface B extends interface A,interface C extends interface B)

2、 继承性(多继承)

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

1、 编写接口

2、 编写实现类来实现接口的方法

3、 创建对象(接口(类型)new 实现类对象)

4. 内部类详解

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

1、 内部类作为外部类的成员,可以直接访问外部类的成员(包括private成员),反之则不行

2、 内部类作为外部类的成员,课声明为private,default,protected,public

3、 内部类成员只有在内部类范围之内是有效的

4、 用内部类定义在外部类中不可访问的属性。这样就在外部类中实现了比外部类的private还要小的访问权限

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

1、 成员内部类(内部类相当于外部类的成员,四种访问控制符)

2、 静态内部类(不允许访问外部类的非static属性;如果内部类中方法为static方法,那么内部类也必须为静态的)

3、 方法中的内部类(相当于方法中的局部变量,使用范围只能在show方法中)

4、 匿名内部类(前提:存在继承或实现关系 )

A:可以实现一个接口,或者继承一个父类;

B:只能实现一个接口;

C:适合创建那种只需一次使用的类,不能重复使用。比较常见的是在图形界面编程GUI里用得到

Jdk1.8新特性:

1、 jdk1.8之前方法中的内部类要访问外部类的局部变量,局部变量必须加上final关键字(即只能访问常量)

2、 jdk1.8开始,在访问外部类的局部变量时,则可以不加final关键字

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

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

位于Java.lang包中 不可变的字符序列

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

1、 char charAt(int index)返回字符串中低index个字符,index从0开始

2、 boolean equalsIgnoreCase(String other)如果字符串与other相等(忽略大小写),则返回true

3、 int indexOf(String str)(找到返回索引,找不到返回-1) lastIndexOf()查找指定字符在字符串中的位置(反向搜索)

4、 int length()返回字符串长度

5、 String replace(char oldChar,char newChar)返回一个新串

第16次(面向对象深化)

学习主题:面向对象初步

学习目标:

1 掌握常量池

2 掌握多维数组

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

4 掌握数组的拷贝

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

6 掌握冒泡排序算法

对应视频:

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

对应文档:

对应作业

1. String类和常量池

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

1、String()

初始化新创建的 String对象,它代表了一个空字符序列。

2、String(byte[] bytes)

通过使用平台的默认字符集解码指定的字节数组构造了一个新的 String。

3、String(char[] value)

分配一个新的 String,它代表了目前包含在字符数组参数字符序列。

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

用于存储在编译期确定,被保存在已编译的字节码文件中的一些数据,包括final修饰变量即字符串变量,和符号引用量

2. 字符串相等的判断

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

“==”

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

equals()方法

3. 多维数组

(1) 二维数组的初始化有几种方式分别是什么?(二维数组就是存储一维数组的数组,存储的是一维数组的内存地址/引用)

1、 int intA[][]={{1,2},{3,4,5},{3,4,5,6}}(//二维数组不是规则的矩阵)

2、 int [][]intB=new int[3][];(//声明一个二维数组,用于存储3个一维数组,每一个一维数组存储多少个数据,不知道,二维数组初值为null)

intB[0]=new int[2];

intB[1]={1,2,3,4};

intB[2]=new int[5];

3、int intA[][]=new int[3][5];(//)

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

1、 普通for循环

2、 加强for循环

3、 普通for循环 + 加强for循环

4. Object数组存储表格数据

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

1、 基本数据类型

2、 引用数据类型

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

21b84c11992629fee819aec65539f575.png

5. 数组的拷贝

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

1、 地址拷贝

int []array={1,2,3,4};

int []arrayB=new int [5];

arrayB=array;

2、 值的拷贝

int []array={1,2,3,4};

int []arrayB=new int[5];

arrayB[0]=array[0]

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

arrayCopy() arraycopy(源数组,开始拷贝位置,目标数组,开始拷贝位置,拷贝几个元素)

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

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

这个类包含用于操作数组(如排序和搜索)的各种方法。此类还包含一个允许数组被视为列表的静态工厂

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

1、 toString()打印数组

2、 equals()比较两个数组是否相同

3、 copyOf()复制指定的数组

4、 fill()填充

5、 sort()数组排序,对象数组的排序

7. 冒泡排序的基础算法

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

1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

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

外循环:比较的次数,即数组长度减一 内循环:比较相邻两数的大小,小的放前面,大的放后面

相关文章:

  • py怎么运行_Mac Tensorflow Faster R-CNN CPU实现环境配置及Demo运行
  • 一个数等于两个不同素数的乘机_【朝夕的ACM笔记】数论-反素数
  • spring是什么_Spring 源码第三弹!EntityResolver 是个什么鬼?
  • python界面开发webview_Python使用Pyqt5实现简易浏览器!非常实用!
  • 程序实例python_Python花式编程案例集锦(5)
  • python装饰器作用和功能_Python装饰器实现类Java注解功能
  • 树莓派无屏幕安装kali_树莓派制作魔镜屏幕旋转不正确的处理方法
  • 没有与参数列表匹配的重载函数_C++覆盖和重载的区别
  • python嵌入式系统开发_python能开发单片机吗
  • python根据excel生成报表_python提取Excel中的特定列生成新的表格
  • python显示数据长度_python 读取数据再写入,文件大小总会出现变差?
  • datagrid如何获取一行数据中的某个字段值_UI测试中,我们应该注意哪些?
  • python常考题_python 一个批量出考题,生成不同考卷的小例题
  • python简历项目经验在哪里找_Linux运维工程师简历项目经验
  • matlab函数编写_实验二 | M函数与M文件的编写与应用
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • ECMAScript入门(七)--Module语法
  • ERLANG 网工修炼笔记 ---- UDP
  • fetch 从初识到应用
  • Linux CTF 逆向入门
  • Shell编程
  • vue--为什么data属性必须是一个函数
  • 关于for循环的简单归纳
  • 排序算法之--选择排序
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 因为阿里,他们成了“杭漂”
  • 优化 Vue 项目编译文件大小
  • 字符串匹配基础上
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • elasticsearch-head插件安装
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #考研#计算机文化知识1(局域网及网络互联)
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (12)Linux 常见的三种进程状态
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2)STL算法之元素计数
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (python)数据结构---字典
  • (二)正点原子I.MX6ULL u-boot移植
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • *p++,*(p++),*++p,(*p)++区别?
  • .bashrc在哪里,alias妙用
  • .CSS-hover 的解释
  • .gitignore文件—git忽略文件
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .net 调用php,php 调用.net com组件 --
  • .NET 命令行参数包含应用程序路径吗?
  • .NET中统一的存储过程调用方法(收藏)
  • @property python知乎_Python3基础之:property
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...