Java期末复习重点易错点
Java期末复习重点易错点
woodfish方法重载满足:
1.方法名必须相同
2.参数列表不同(参数的个数不同、参数的类型不同、类型的次序不同)
3.与返回值类型是否相同无关(即返回值不作为判断重载的条件)
有抽象方法,就一定是抽象类
抽象类中可以包含非抽象方法(普通方法)
分析下面代码, 当调用nPrint(‘a’, 4)方法时会出现什么结果?。
1 | static void nPrint(String message, int 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’ B) between ‘a’ and ‘y’
C) between ‘b’ and ‘z’ D) between ‘b’ and ‘y’
选A
抽象类和接口
对比维度 | 抽象类(is what) | 接口(can do) |
---|---|---|
定义方式 | 借助 abstract class 来定义 | 通过 interface 进行定义 |
实现手段 | 利用 extends 关键字实现继承 | 使用 implements 关键字实现接口 |
成员变量 | 可以包含普通变量和常量 | 只能是 public static final 类型的常量 |
方法类型 | 能够有抽象方法,也能有具体实现的方法 | 所有方法默认是 public abstract 的(Java 8 及之后版本允许有默认方法和静态方法),而且不能有方法体{} |
多继承支持 | 仅支持单继承(一个类只能继承一个抽象类) | 支持多实现(一个类可实现多个接口) |
设计侧重点 | 强调 “是什么”,用于对一组相关类的共同特征进行抽象 | 着重 “能做什么”,定义了一种行为规范或契约 |
相同点:
1、多是抽象形式,都可以有抽象方法,都不能创建对象。 2、都是派生子类形式:抽象类是被子类继承使用,接口是被实现类实现。 3、若未全部重写抽象方法,该类需被定义为抽象类,否则编译报错****4、都能支持的多态,都能够实现解耦合。
不同点:
1、抽象类中可以定义类的全部普通成员,接口只能定义常量,抽象方法(JDK8新增的三种方式) 2、抽象类只能被类单继承,接口可以被类多实现。 3、一个类继承抽象类就不能再继承其他类,一个类实现了接口(还可以继承其他类或者实现其他接口)。 4、抽象类体现模板思想:更利于做父类,实现代码的复用性。 5、接口更适合做功能的解耦合:解耦合性更强更灵活。
请简述Java中this和super关键字的含义和作用
this
主要用于引用当前对象,可解决变量名冲突问题,还能调用本类的构造函数。super
主要用于引用父类的成员,可调用父类的构造函数以及访问父类的方法和字段。
1 | this 关键字 |
1 | super 关键字 |
开头
1 | import java.until,scanner; |
权限修饰符
就是用来限制类中的成员 (成员变量、成员方法、构造器) 能够被访问的范围。
本类 | 修饰符 | 同一个包中的类 | 子孙类 | 任意类 |
---|---|---|---|---|
private | √ | |||
默认 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
private < 默认 < protected< public
包装类的valueOf和parseInt简略介绍
valueOf
平时应该多用用静态的valueOf方法创建实例,通过valueOf创造的实例可以被共享,这没有问题,因为包装对象是不可变的。
1 | Integer x1 = new Interger("32"); |
课本原题
以下哪个语句可以编译成功
1 | a. Integer i = new Integer("23");//字符串形构造 |
答案
a、b、c、d、f、g、h、i、j
parseInt
基本用法
1 | int num = Integer.parseInt("123"); // 返回 123 |
指定进制转换
1 | int binary = Integer.parseInt("101", 2); // 二进制转十进制,返回 5 |
字符串必须是 纯数字(允许以 +
或 -
开头)
类似的,还有parseLong,parseDouble,parseByte等,不考不赘述
.length返回数组的长度
.length()返回字符串的长度
.charAt(index)返回字符串中指定位置的字符
Final,static,继承,多态,去我的别的博客看