创建多线程的第一种方式_创建Thread类的子类: java.lang .Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类 实现步骤: 1.创建一个Thread类的子类 2.在Thread类的子类中重写Thread类中的run方法,设嚣线程任务(开启线程要做什么?) 3.创建Thread类的子类对象 4.调用Thre
异常注意事项_finally有returm语句 运行时异常被抛出可以不处理。即不捕获也不声明抛出。 如果 finally有 return语句永远返回 Finally中的结果避免该情况 子父类异常 如果父类抛出了多个异常子类覆盖父类方法时只能抛出相同的异常或者是他的子集。 父类方法没有抛出异常,子
子父类的异常:如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。父类所法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出注意:父类异常时什么样,子类异常就什么样父类方法没有
Map集合概念 Collection 中的集合,元素是孤立存在的,向集合中存储元素采用一个个元素的方式存储。 Map 中的集合,元素是成对存在的。每个元素由键与值两部分组成,通过键可以找对所对应的值。Collection中的集合称为单列集合,Map中的集合称为双列集合。需要注意的是,Map 中的集合不能包含
Map常用子类通过查看Map接口描述,看到Map有多个子类,这里我们主要讲解常用的HashMap集合、LinkedHashMap集合。HashMap<K,V>∶存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。.LinkedHashMap<K,V> :Has
Map常用子类 HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。LinkedHashMap:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一
Map集合概述 Map可以理解为双列集合,元素是成对存在的。每个元素由键与值两部分组成,通过键可以找对所对应的值。 特点: 1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value) 2.Map集合中的元素,key和value的数据类型可以相同,也可以不同 3.Map集合中的元素,key是不
概述java.util.Map接口 Map<K,V> 有两个泛型 类型参数:K - 此映射所维护的键的类型V - 映射值的类型 特点:1.Map集合是双列集合,一个元素包含两个值,一个是key,一个是value 2.Map集合中的元素,key和value的数据类型可以相同,也可以不同 3.Map集合中的元素,key不允许重复,但是value可以重复
Map集合概述 将键映射到值对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 现实生活中 我们常会看到这样的一种集合:IP地址与主机名 身份证号与个人 系统用户名与系统用户对象等 这种—对应的关系就 叫做映射 java通过了专门的集合类用来存放这种对象关系的对象 就是Map
Map集合概述 现实生活中,我们常会看到这样的一种集合︰IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种——对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map 接口。我们通过查看Map接口描述,发现 wap接口下的集合与collection接
Map集合 java.util.Map<K,V>集合 Map集合的特点: 1.Map集合是一个双列集合,一个元素包含两个值(Key,Value) 2.Map集合中的元素,key和value的数据类型可以相同,也可以不相同 3.Map集合中的元素,key是不允许重复的,value是可以重复的 4.Map集合中的元素,key和value是一一对应的 Map常用子
接口作为方法的参数或返回值 interface作为方法参数和返回值类型 当接口作为方法的参数时,需要传递什么呢?当接口作为方法的返回值类型时,需要返回什么呢?对,其实都是它的 子类对象。 ArrayList 类我们并不陌生,查看API我们发现,实际上,它是 java.util.List 接口的实现类。所 以,当我们看
匿名内部类 匿名内部类 :是内部类的简化写法。它的本质是一个 带具体实现的 父类或者父接口的 匿名的 子类对象。 开发中,最常用到的内部类就是匿名内部类了。以接口举例,当你使用一个接口时,似乎得做如下几步操作, 1. 定义子类 2. 重写接口中的方法 3. 创建子类对象 4. 调用重写后的方
面向对象(OOP) 面向对象&面向过程 面向过程思想: 步骤清晰简单,第一步做什么、第二步做什么...... 面对过程适合处理一些较为简单的问题 面对对象思想: 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过
抽象方法的定义格式: 修饰符 abstract 返回值类型 方法名称(参数列表); 一个方法写上abstract关键字,去掉{},就是抽象方法 含有抽象方法的类,一定是一个抽象类. 抽象类的格式: 修饰符 abstract class 类名称 { //... } 抽象类的使用: 抽象方法不能直接new对象 必须定义一个子类继
接口和abstract类的比较如下: abstrac类和接口都可以有abstract方法。 接口中只可以有常量,不能够有变量;而abstrac类中既可以有常量也可以有变量。 abstract类中也可以有非abstract方法,接口不可以。 在设计程序时应当根据具体的分析来确定是使用抽象类还是接口。 abstract类除了提供
又是只能回答概念不能提出具体的实例出来论证所讲的观点(具体实例后面再补充吧) 单一职责原则 单一职责原则是指一个类只负责一个职责,它使得类的职责更单一。这样每个类只需要负责自己的那部分,类的复杂度就会下降。如果职责划分的很清楚,那么代码的维护难度降低。如果将所有功能都放
什么是UML类图 Class Diagram:用于表示类、接口、实例等之间相互的静态关系 虽然名字叫类图,但类图中并不只有类 记忆技巧 UML箭头方向: 从子类指向父类 我相信 很多同学都会有和我一样的想法,认为子类是以父类为基础的,箭头应该父类指向子类 那么我们改如何去记忆呢? 定义子类需
如何才能知道一个父类引用的对象,本来是什么子类?格式:对象 instanceof类名称这将会得到一个boolean值结果,也就是判断前面的对象能不能当做后面类型的实例
1对象向上转型其实就是多态写法 格式 父类名称 对象名 = new 子类名称; 含义右侧创建一个子类对象把它当做父类来看待使用 向上转型一对是安全的 从小范围转向了大范围 创建了一致猫当做动物看待 没问题 向上转换称为更大范围的动物 对象的向下转
接口作为方法的参数和或返回值 当接口作为方法的参数时,需要传递什么呢?当接口作为方法的返回值类型时,需要返回什么呢?对,其实都是它的 子类对象。 ArrayList 类我们并不陌生,查看API我们发现,实际上,它是 java.util.List 接口的实现类。所 以,当我们看见 List 接口作为参数或者返回值类
接口的抽象方法定义: 抽象方法:使用 abstract 关键字修饰,可以省略,没有方法体。该方法供子类实现使用。 代码如下: 接口的抽象方法使用: 定义接口: 定义实现类: 定义测试类: 搜索 复制
多态的概述 奥特曼是一个对象,这个对象有蓝色形态,也有红色形态,还有其他的各种形态。 一个对象拥有多种形态,这就是:对象的多态性 多态的格式与使用 代码当中体现多态性,其实就是一句话:父类引用指向子类对象。 格式: 交类名称对象名= new子类名称();l或者: 接口名称对
代码当中体现多态性,其实就是一句话:父类引用指向子类对象。格式:父类名称对象名 = new子类名称();或者:接口名称对象名= new实现类名称(); 1直接通过对象名称访间成员变量:看等号左边是谁,优先用谁,没有则向上找 2间接通过成员方法访问成员变量:看该方法属
概述 引入 多态是继封装、继承之后,面向对象的第三大特性。 生活中,比如跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也 是不一样的。可见,同一行为,通过不同的事物,可以体现出来的不同的形态。多态,描述的就是这样的状态 定义 ~多态: 是指同