方法重载满足:
1.方法名必须相同
2.参数列表不同(参数的个数不同、参数的类型不同、类型的次序不同)
3.与返回值类型是否相同无关(即返回值不作为判断重载的条件)
有抽象方法,就一定是抽象类
抽象类中可以包含非抽象方法(普通方法)
分析下面代码, 当调用nPrint(‘a’, 4)方法时会出现什么结果?。
123456static void nPrint(String message, int n) { while (n > 0) { System.out.print(message); n--; }}
A) aaaaa B) aaaa
C) aaa D) 非法调用
选D,因为传入’a’的类型为char,而函数参数是String
Math.random()
其取值范围是大于等于 0.0 且小于 1.0,也就是区间 [0.0, 1.0)
e.g.
(char)(‘a’ + Math.random() * (‘z’ - ‘a’ + 1)) 返回下面哪个区间的随机字符?
A) between ‘a’ and ‘z’ ...
1. 资本主义帝国侵略中国的方式(简答)
军事侵略
政治控制
经济掠夺
文化渗透
2. 中国反侵略战争失败的原因
根本原因:社会制度腐败(半殖民地半封建社会制度)
直接原因:经济技术落后
3. 太平天国运动失败的原因
主观原因:农民阶级局限性(无科学纲领、依赖宗教、内斗腐败、治国无能)
客观原因:中外势力联合绞杀(汉臣抵制、宗教冲突、列强与清廷勾结)
4. 洋务运动失败原因
封建性:“中体西用” 思想限制发展
依赖性:依赖外国,遭列强压制
腐朽性:企业管理腐败,营私舞弊严重
5. 戊戌维新运动失败的原因
自身局限:不敢反封建、幻想帝国主义、脱离群众
外部阻力:守旧势力强大,无实权与军队
6. 辛亥革命爆发的历史条件
民不聊生:列强侵略加剧、清廷横征暴敛、各阶层反抗不断
统治危机:皇室派系内斗、新政激化矛盾、立宪派离心
7. 辛亥革命的意义
推翻清王朝,打击中外反动势力
终结封建君主专制,建立资产阶级共和国
促进思想解放,传播民主共和观念
推动社会经济、风俗、思想的积极变革
影响亚洲民族解放运动
8. 辛亥革命失败的原因
根本原因:民族资产阶级软弱性(妥协、依赖帝封势力)
...
final 关键字是最终的意思,可以修饰:类、方法、变量。
修饰类:该类被称为最终类,特点是不能被继承了。
修饰方法:该方法被称为最终方法,特点是不能被重写了。
修饰变量:该变量有且仅能被赋值一次。
final 修饰变量的注意
final 修饰基本类型的变量,变量存储的数据不能被改变。
final 修饰引用类型的变量,变量存储的地址不能被改变,但地址所指向对象的内容是可以被改变的。
什么是权限修饰符就是用来限制类中的成员 (成员变量、成员方法、构造器) 能够被访问的范围。
本类
修饰符
同一个包中的类
子孙类
任意类
private
√
默认
√
√
protected
√
√
√
public
√
√
√
√
private < 默认 < protected< publicJava 中的类是什么继承模式?Java 是单继承的:一个类只能继承一个直接父类。
Java 中的类可以多继承吗?Java 中的祖宗类是啥?不可以,但是可以多层继承。Object 类是 Java 中所有类的祖宗。
在子类方法中访问成员 (成员变量、成员方法) 是什么特点?就近原则,子类没有找子类、子类没有找父类、父类没有就报错借!
如果子父类中出现了重名的成员此时一定要在子类中使用父类的怎么办?super. 父类成员变量 / 父类成员方法
方法重写
当子类觉得父类中的某个方法不好用,或者无法满足自己的需求时,子类可以重写一个方法名称、参数列表一样的方法,去覆盖父类的这个方法,这就是方法重写。
重写小技巧:使用 Override ...
什么是多态?多态是在继承 / 实现情况下的一种现象,表现为:对象多态、行为多态。多态的具体代码体现
12345People p1 = new Student ()p1.run (); People p2 = new Teacher ()p2.run ();
多态的前提
有继承 / 实现关系;存在父类引用子类对象;存在方法重写。
多态的一个注意事项
多态是对象、行为的多态,Java 中的属性 (成员变量) 不谈多态。
使用多态有什么好处?存在什么问题?
解耦合;使用父类类型的变量作为方法的形参时,可以接收一切子类对象。
多态下不能直接调用子类的独有方法。
多态下的类型转换问题自动类型转换:父类 变量名 = new 子类 (); 例如:
1People = new Teacher ();
强制类型转换:子类变量名 =(子类) 父类变量 例如
1Teacher t = (Teacher) p;
强制类型转换的一个注意事项
存在继承 / 实现关系就可以在编译阶段进行强制类型转换,编译降阶段不会报错。
运行时,如果发现对象的真实类型 ...
List继承了Collection
1、List 系列集合的特点是什么?
● ArrayList、LinkedList:有序,可重复,有索引。
2、List 提供了哪些独有的方法?
方法名称
说明
void add(int index,E element)
在此集合中的指定位置插入指定的元素
E remove(int index)
删除指定索引处的元素,返回被删除的元素
E set(int index,E element)
修改指定索引处的元素,返回被修改的元素
E get(int index)
返回指定索引处的元素
单列集合
Collection 集合有哪两大常用的集合体系,各自有啥特点?
List 系列集合:添加的元素是有序、可重复、有索引。
Set 系列集合:添加的元素是无序、不重复、无索引。
Collection遍历方法
迭代器
1、如何获取集合的迭代器?迭代器遍历集合的代码具体怎么写?● Iterator iterator ():得到迭代器对象,默认指向当前集合的索引 0
2、通过迭代器获取集合的元素,如果取元素越界会出现什么异常?● 会出现 NoSuchElementException 异常。
for-each(增强for)
就for循环就行
lambda表达式
类似以下三种lambda表达式
1234567891011121314151617Collection<String> names = new ArrayList<>();names.add ("张无忌");names.add ("玄冥二老");names.add ("宋青书");names.add ("殷素素");nam ...
为什么要有包装类,包装类有哪些?
为了万物皆对象,并且泛型和集合都不支持基本类型,支持包装类
8 种,int -> Integer,char -> Character,其他的都是首字母大写
包装类提供了哪些常用的功能?
可以把基本类型的数据转换成字符串类型。
public static String toString(double d)
public String toString()
可以把字符串类型的数值转换成真实的数据类型。
public static int parseInt(String s)
public static Integer valueOf(String s)
装箱与拆箱装箱:将一个基本数据类型变为包装类称为装箱操作
拆箱:将一个包装类变回基本数据类型,称为拆箱操作,转换的方法由Number类提供
下面看具体操作,这里以整形为例:
1234567public class WrapperDemo{ public static void main(String[] args){ int x1 = 1; //基本数据类型 ...
成员内部类成员内部类直接定义在外部类里,与外部类的属性和方法处于同一层级。它能够访问外部类的所有成员,包括私有成员。
1234567891011121314151617181920212223public class OuterClass { private int outerField = 10; public class InnerClass { public void display() { System.out.println("外部类的字段: " + outerField); } } public void createInner() { InnerClass inner = new InnerClass(); inner.display(); } public static void main(String[] args) { OuterClass ...
对比维度
抽象类(is what)
接口(can do)
定义方式
借助 abstract class 来定义
通过 interface 进行定义
实现手段
利用 extends 关键字实现继承
使用 implements 关键字实现接口
成员变量
可以包含普通变量和常量
只能是 public static final 类型的常量
方法类型
能够有抽象方法,也能有具体实现的方法
所有方法默认是 public abstract 的(Java 8 及之后版本允许有默认方法和静态方法)
多继承支持
仅支持单继承(一个类只能继承一个抽象类)
支持多实现(一个类可实现多个接口)
设计侧重点
强调 “是什么”,用于对一组相关类的共同特征进行抽象
着重 “能做什么”,定义了一种行为规范或契约
相同点:1、多是抽象形式,都可以有抽象方法,都不能创建对象。2、都是派生子类形式:抽象类是被子类继承使用,接口是被实现类实现。3、一个类继承抽象类,或者实现接口,都必须重写完他们的抽像方法,否则自己要成为抽象类或者报错!4、都能支持的多态,都能够实现解耦合。
不同点:1、抽象 ...


