包的使用

不同包下的类调用时 要引用包名

1
2
3
4
5
6
public class Test{
public static void main(String []arg){
heima.test.Student stu=new heima.test.Stuent()
// 假如Student类不在当前包下而是在heima.test的包下
}
}

如果不想用包名来调用类 那就在代码前加入import引入包

1
2
3
4
5
6
7
import heima.test.Studnt

public class Test{
public static void main(String []arg){
Student stu=new Stuent()
}
}
Read more »

在以前 对多态的理解就只停留在 重载 和 重写 其实多态还有很多方面的知识
我们先举一个多态的最典型的运用

1
2
3
4
// 假设我们有一个父类person   两个子类student teacher
Person a=new Student();
Person b=new Teacher();

上面两个对象的创建都是正确的 但是a 和 b 和正常的子类又有一些不同

多态有什么典型的运用场景?


其实很简单 假如有一个场景 用户注册的页面 假如一共有三种对象 老师 学生 管理员

那么我们的注册函数传入的对象参数填什么呢? Stuent? Teacher? Admin? 这个时候没有多态的话,我们就要单独创建出三个注册函数 分别传三个对象 但是有了多态就可以用父类作为参数

1
2
3
4
public static register(Person p){
//注册函数
//此时调用函数时 参数无论时学生老师还是管理员都可以成功调用
}
Read more »

当类与类之间 存在相同的内容 并满足子类是父类的一种 就可以考虑使用继承 来优化代码
Java中只支持单继承 不支持多继承 但支持多层继承

每一个类都直接或者间接的继承于Object

子类不能调用父类中的私有方法

子类到底能继承父类中的那些内容

  • 误区1:父类私有的东西 子类就无法继承
  • 误区2 : 父类中非私有成员 就被子类继承下来了
父类 public private
构造方法 不能 不能
成员变量
成员方法 不能

构造方法是否可以被继承?


其实这个问题很简单 构造方法一定要和类同名对吧? 如果你调用父类的构造方法 子类的名称怎么可能和父类名称一样 构造方法自然就冲突了

成员变量是否可以被继承?


注意表格里面 无论是否父类中成员变量是否私有化 子类貌似都可以继承

实际上 子类确实会继承父类中的私有成员变量 不够不能去之间调用
其实黑马这里也是在放屁 私有化成员变量在类外本来就不能调用 无关子类

成员方法是否可以继承


私有化的成员方法不可继承

​ 对于同一个类的不同对象 如果存在一个共享的变量 那我们可以设置成静态变量
静态变量被该类的所有对象共享 静态变量通常直接通过类名来调用

Read more »

需要重点强调一下 Java中的集合是多种数据结构的统称 并不等同与c++中的set概念

其中 ArrayList就是其中的一种

集合和数组的对比

  • 长度 集合的长度是自动扩容自动收缩的
  • 存储类型 集合中存储基本数据类型时 需要对应的包装类
Read more »

题干 : 返回二叉树层序遍历的结果 同时写出递归和非递归的写法

至于什么是层序遍历不用我赘述 其实就是用BFS的方法去搜索二叉树
同样 包含递归和非递归的写法 非递归写法需要用队列来实现

Read more »

题干: 返回二叉树的前中后序结果 同时写出递归和非递归的写法

递归的写法还是很好想的 简单而且容易理解
但是用栈来实现二叉树的非递归遍历写法就不是那么好理解
特别是中序遍历

Read more »

栈的运用中经典中的经典 不过算法竞赛不会考这些导致当时就没用心去搞懂
题干
给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
1.左括号必须用相同类型的右括号闭合。
2.左括号必须以正确的顺序闭合。
3.每个右括号都有一个对应的相同类型的左括号。

不匹配的情况只有三种 搞懂就是很简单的题目!!

Read more »

虽然python c++中都会有字符串查找的库函数 在刷题的过程中遇到了查找子串的问题 通常直接调用函数就可以解决 但是KMP作为十分重要的算法 很大概率会在面试中手撕 虽然依然要掌握

题干:给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。

Read more »
0%