java笔记

java类中可以包括:成员变量、方法、构造器、初始块、内部类

类成员:(类变量、类方法、静态初始块、静态内部类)。类成员既是有static关键字修饰的成分。

对于static关键字而言,有一条非常的重要的规则:类成员不能访问实例成员。因为类成员是属于类的,类成员的作用域比实例成员的作用域要大,完全可以出现类成员已将初始化完成,但是实例成员还不曾初始化的情况。


final修饰符:

1: final修饰成员变量和局部变量 

final修饰变量时,表示该变量一旦获得了初始值就不可被修改。既可以修饰成员变量,也可以修饰局部变量、形参。

final修饰成员变量时必须由程序员显式的指定初始值。(final成员变量在显式初始化之前不能直接访问,但可以通过方法直接访问) 

可执行宏替换的final变量:对于一个final变量来说,不管他是类变量、实例变量还是局部变量,只要该变量满足以下三个条件,这个final变量就不再是一个变量,而是一个直接量。

  • 使用final修饰符修饰
  • 在定义该final变量时指定了初始值
  • 该初始值可以在编译时就被确定下来

 2: final方法

final方法不可以被重写;当private final连用的时候,父类里面的方法,在子类中可以重新定义,不是重写。因为private关键字修饰的方法在子类中是没有办法被访问的。

3:final类 

 final类不可以有子类


抽象类

抽象方法和抽象类

  1.  抽象方法和抽象类必须有abstract修饰符来修饰,抽象方法不能有方法体
  2. 抽象类不能被实例化,无法使用new关键字来调用构造器创建实例
  3. 抽象类可以包括成员变量、方法、构造器、初始化块和内部类。抽象类的构造器不能用于创建实例,主要用于被其子类调用
  4. 含有抽象方法的类只能被定义成抽象类。

abstract修饰的类表明这个类只能被继承,final修饰的类不能被继承,因此这两个关键字是不能同时出现的。 

static和abstract不能同时修饰同一个方法,static类方法,类可以直接调用,但是abstract修饰的方法没有方法体。

抽象类的作用

抽象类可以作为父类的模板,从而避免了子类设计的随意性 


 接口

接口的定义是一种规范,因此接口里不能包含构造器和初始化块。接口里可以包含成员变量(只能是静态变量)、方法(只能是抽象实例方法、类方法、默认方法和私有方法)、内部类。 

 接口里的成员变量默认是public static final修饰的。

接口和抽象类的不同点:

  1. 接口里只能包含抽象方法、静态方法、默认方法和私有方法,不能为普通方法提供方法实现,抽象类则完全可以包含普通方法。
  2. 接口只能定义静态常量,不能定义普通成员变量。抽象类里既可以定义普通成员变量也可以定义静态常量。
  3. 接口里不包括构造器;抽象类里有构造器,但是此构造器不是为了创建对象,而是让其子类调用这些构造来完成属于抽象类的初始化操作。
  4. 接口里不能包含初始化块 ;但抽象类可以包含初始化块。
  5. 一个类最多只能有一个直接父类,包括抽象类。但是一个类可以直接实现多个接口 。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值