Java复习题-练习题

第一周

  1. Java 的 注释不会出现在可执行程序中
  2. Java的四种整形
整形范围字节答案
byte-2^7,2^7-11-128~127
short-2^15,2^15-12-32768~32767
int-2^31,2^31-14-2147483648~2147483647
long-2^63,2^63-18-9223372036854775808~922372036854775807
  1. 高效构建String 使用 StringBuilder
1.构建一个空的字符串构建器:
StringBuilder builder = new StringBuilder()
2.每次需要添加一部分内容时,就调用append方法:
builder.append(ch);//appends a single character
bulider.append(str);//appends a string
3.在需要构建字符串时就调用toString方法,将可以得到一个String对象,其中包含了构建器中的字符序列:
String completedString = builder.toString();
延伸:在JDK5.0中引入StringBuilder类。这个类的前身是StringBuffer,其效率略微有些低,但允许采用多线程的方式执行添加或删除字符的操作。如果所有字符串在一个单线程中(通常都是这样)编辑,则应该用StringBuilder替代它。这两个类的API是相同的。
  1. Scanner 定义在 java.util 包上
  2. Double bouns= 500 输出 bouns 是 500.0
  3. 存在问题,因为不能在嵌套的两个块中声明同名的变量

第三周

1.接口
接口只能 extends 接口
接口 的修饰 只能是 public 和 默认不写
接口中的成员变量必须初始化 因为都是静态成员变量, public static int a = 1;
接口中的类默认 为 public int a();
1.8 以后 可以在接口中声明静态方法 的必须有实现 public static void method(){System.out.println("这是接口的静态方法");}。
1.8 以后可以声明默认方法 必须有实现 public default void method(){ XXXX;}' 可以继承更改
1.9 以后接口可以声明私有方法
1.普通私有方法:解决多个默认方法之间重复代码的问题
格式:private 返回值类型 方法名称(参数列表){ 方法体 }
2.静态私有方法:解决多个静态方法之间的重复代码问题
格式:private static 返回值类型 方法名称(参数列表){ 方法体 }

  • 注意:
    1.接口没有静态代码块,不能有构造方法
    2.一个类可以实现多个接口
    3.如果实现类所有实现的多个接口中,存在重复的抽象方法,覆盖重写一次即可
    4.如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么这个实现类必须是一个抽象类
    5.接口可以多继承,但是如果继承来多个defalut方法相同,那么必须对冲突的defalut方法进行覆盖重写
    6.一个类如果直接继承父类当中的方法,和接口当中的默认方法产生了冲突,优先用父类的方法

2.内部类
成员内部类创建时必须先创建外部类 再创建内部类 Outer.Inner in = new Outer().new Inner();
静态内部类 创建时 直接使用类创建即可 Outer.Inner in = new Outer.Inner();
内部类的特点

  1. 可以使用private、protected修饰。也可以使用abstract、final等修饰.
  2. 内部类可以直接或利用引用访问外部类的属性和方法,包括私有属性和方法(但静态内部类不能访问外部类的非静态成员变量和方法)。内部类所访问的外部属性的值由构造时的外部类对象决定.
  3. 外部类要访问内部类的成员,则只能通过引用的方式进行,可问内部类所有成员
  4. 内部类可以继承同级的内部类,也可继承其它类(除内部类和外部类)
  5. 内部类可以定义为接口,并且可以定义另外一个类来实现它
  6. 内部类可以定义为抽象类,可以定义另外一个内部类继承它
  7. 方法内的内部类不能加范围限定(protected public private),方法内的内部类不能加static修饰符,方法内的内部类只能在方法内构建其实,方法内的内部类如果访问方法局部变量,则此局部变量必须使用final修饰

super
你不写默认是在第一行系统有会加上的。 创建子类对象时,调用子类构造方法之前会先调用父类构造方法
如果你不写第一行,默认你是可以写一个继承过来的属性赋值的,尽管你认为你可以不这样写,但是系统为了以防万一有人这么干,所以super要在第一行,如果不在第一行,你写了个继承来的属性,那这时候没调用super,还没那个属性呢。 因为都是实例属性,必须先有实例,才能使用。
JAVA规定了super()要写在第一行,不写第一行会要报错!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值