摘要:
一,背景 为什么要是用多态? 举个很简单的例子(下面很多理解的概念都以这个例子为基础): 那我们在主人类里面喂食就应该写成: 言外之意就是每增加一个子类进食方法,那master类里面就要多加一个喂食方法 代码扩展性和维护性太差了,所以利用多态性可以把子类的进食方法写成: 二,什么是多态 同一事物,由 阅读全文
摘要:
Q:为什么使用继承? 为了提取两个类中公共的代码,可以使用继承抽取重复性的代码到一个公共类中,这个公共的类称为父类(super class)。继承于父类的类称为子类(sub class) 一,java继承的特性 [1] 单根性。在java中,一个类只能有一个直接父类。 [2] 传递性。C继承于B,B 阅读全文
摘要:
一,包 包(package) 用于管理程序中的类,主要用于解决类的同名问题。包可以看成目录。 包的作用: [1] 防止命名冲突。 [2] 允许类组成一个单元(模块),便于管理和维护 [3] 更好的保护类、属性和方法 二,定义包 包名必须写到第一行: 三,包命名 包命名原则:始终保持类的全路径唯一。 阅读全文
摘要:
封装: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问 封装的步骤: [1]属性私有化 [2]提供公共的设置器和访问器 [3]在设置器和访问器中添加业务校验逻辑 减少缺少逻辑的实例元素。 阅读全文
摘要:
对象初始化内存图: this 是一个关键字,表示对象本身,本质上this中存有一个引用,引用对象本身。 this用于访问本对象属性,同时解决局部变量和成员变量同名的问题(接有参构造中第二种解决方案。。。) 举例代码: 通过打印this中的引用,可以看出对象dog和this指向同一内存。 一般而言,d 阅读全文
摘要:
构造方法根据有无参数分为无参构造和有参构造 无参构造语句: 有参构造语句: 它俩构成了方法重载。 局部变量和成员变量的优先级问题:(如下述代码) 此时标记的name是无法赋值给name的,因为局部变量的优先级高于成员变量,name只会找到name name这种情况怎么解决呢? 第一种方法: 将这个形 阅读全文
摘要:
一,类(class)的概念 类是对一组具有相同特征和行为的对象的抽象描述。 理解: [1] 类包含了两个要素:特性和行为 => 同一类事物具有相同的特征和行为。 [2] 类是一个群体性概念。例如:网红、明星、草根、宅男、萝莉、沙雕 [3] 类可以理解为现实生活中所说的 “类型” 为什么会有类的概念? 阅读全文
摘要:
一:背景 jdk中为了便于开发,给开发者提供了Arrays类,其中包含了很多数组的常用操作。例如快速输出、排序、查找等 二: // 【2】sort对数组排序(只能升序)-> 内部使用快速排序。 // 【3】fill 填充数组 // 【4】equals(arr1,arr2) 判断两个数组是否相等。 / 阅读全文
摘要:
首先图面理解二维数组(数组里面的元素不是字符或者数字类型而是另外一个数组)! 一,二维数组的声明 int[ ] [ ] arr; 初始化一个能存3个一维数组的二维数组 arr = new int [3] [ ]; (此时只声明了一个二维数组的空间,并没有声明一维数组的空间哈!!) 赋值: 【3】赋值 阅读全文
摘要:
一,插入算法 一个数组有序,在添加一个元素后,求数组依然有序 //先定义一个数组(如要添加元素,咱们得在元素末尾空出来一个预备位0),顺便定义要加入的元素t int []a=new int[]{1,3,7,9,12,20,0}; int t=8; //首先咱们得找到该元素 的位置排在第几位:让t和数 阅读全文