Java基本概念和使用原则

接口Interface
1. 接口中的成员变量默认都是public、static、final类型的,必须被显式初始化
2. 接口中的方法默认都是public、abstract类型的。
3. 接口中只能包含public、static、final类型的成员变量和public、abstract类型的成员方法。
4. 接口没有构造方法,不能被实例化,在接口中定义构造方法是非法的。
5. 一个接口不能实现另一个接口,但它可以继承多个其他接口。
interface C extends A, B{} // A和B都是接口
6. 当类实现某个接口时,它必须实现接口中所有的抽象方法,否则这个类必须被定义为抽象类。
7. 接口中没有方法体




访问控制修饰符
四种访问级别:public、protected、默认、private
private只能在同一个类中访问
默认,只能在同一个类,同一个包中访问
protected,可以在统一各类,同一个包,子类(子类可以不在同一个包中)访问
public,不限制访问
类可用修饰符: abstract、public、final
构造方法:public、protected、private
局部变量:仅仅final




abstract修饰符
1. 抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类。
2. 没有抽象构造方法,没有抽象静态方法。 static 和 abstract不能连用
3. 抽象类中可以有非抽象的构造方法,创建子类的实例时可能会调用这些构造方法。
4. 抽象类及抽象方法不能被final修饰符修饰。final和abstract 不能连用,同样private和abstract不能连用。
5. 抽象类不能被实例化。因为抽象类可能含有没有方法体的抽象方法




final修饰符
final具有;不可改变的;含义,它可以修饰非抽象类,非抽象成员方法和变量
1. 用final修饰的类不能被继承,没有子类。
2. 用final修饰的方法不能被子类的方法覆盖。
3. 用final修饰的变量表示常量,只能被赋一次值,必须被显式初始化。
4. private修饰的方法默认为是final方法,因而不能被子类的方法覆盖。




static修饰符
1. 静态变量在内存中只有一个拷贝,在类的所有实例中共享。
2. 在静态方法中不能直接访问实例方法和实例变量。
3. 在静态方法中不能使用this和super关键字。
4. 静态方法不能被abstract修饰
5. 静态方法和静态变量都可以通过类名直接被访问。
6. 当类被加载时,静态代码块只被执行一次。类中不同的静态代码块按它们在类中出现的顺序被依次执行
public static void main(String args[]) {} 程序入口方法,可以被final修饰。




super关键字
1. 在类的构造方法中,通过super语句调用这个类的父类的构造方法。
在构造方法中,super语句必须作为构造方法的第一条语句。
2. 在子类中访问父类的被屏蔽的方法和属性
3. 只能在构造方法或实例方法内使用super关键字。 super关键字与类的特定实例相关




方法覆盖(方法重写)
1. 方法的参数签名和返回值类型必须相同,访问控制修饰符可以不同,但是子类方法不能缩小父类方法的访问权限。
2. 子类方法抛出的异常必须和父类方法抛出的异常相同,或者是父类方法抛出的异常类的子类。
3. 父类的静态方法是不能被子类覆盖为非静态方法。
父类的非静态方法不能被子类覆盖为静态方法。
4. 子类可以定义与父类的静态方法同名的静态方法,以便在子类中隐藏父类的静态方法。区别:运行时,JVM把静态方法和所属的类绑定,而把实例方法和所属的实例绑定。
5. 父类的私有方法不能被覆盖
6. 父类的非抽象方法可以被覆盖为抽象方法




方法重(chong)载
1. 在一个类中不允许两个方法名相同,并且参数签名也完全相同的方法。
2. 类的同一种功能,可能有多种实现,到底采用哪种实现方式,取决于调用者给定的参数。
3. 对于类的方法(包括从父类中继承的方法),如果有两个方法的方法名相同,但参数不一致,那么可以说,一个方法是另一个方法的重载方法。




多态
1. 对于一个引用类型的变量,Java编译器按照它声明的类型来处理。
Base base = new Sub();
base.subMethod(); // 编译出错,Base基类,Sub子类,编译器认为base是Base类型的引用变量,Base类没有subMethod()方法。这样子,就必须使用强制转换。(Sub)(base).subMethod();
2. 对于一个引用类型的变量,运行时JVM按照它实际引用的对象来处理。
Base base = new Base();
Sub sub = (Sub)base; // 编译通过,但是运行时抛出ClassCastException
在运行时,子类的引用类型变量可以转换为父类的引用类型,而相反的过程却不可以。
假定可以,即上边两行代码运行正常,那么sub.subMethod(); 执行时,JVM将找不到subMethod。sub实际引用的是Base类的实例。
3. 在运行时环境中,通过引用类型变量来访问所引用对象的方法和属性时,JVM采用以下的绑定规则。
①实例方法与引用变量实际引用的对象的方法绑定,即动态绑定。
②静态方法与引用变量所声明的类型的方法绑定,即静态绑定。 编译阶段即绑定完成。
③成员变量(静态变量和实例变量) 与引用类型所声明的类型的成员变量绑定。静态绑定。










1、 接口修饰符:public
2、 类修饰符:访问控制符非访问控制符两种
访问控制符:公共类修饰符 public
非访问控制符:抽象类修饰符 abstract ;终类修饰符 final
1、公共类修饰符public: Java 语言类
访问控制符: public 即公共每 Java 程序主类都必须 public 类作公共工具供其类程序使用应定义 public 类
2 、抽象类修饰符abstract:凡用 abstract 修饰符修饰类称抽象类所谓抽象类指种类没具体象种概念类类 Java 语言 abstract 类
3、终类修饰符final:类能类用修饰符 final 说明终类定义 final 类通些固定作用、用完某种标准功能类
4、类缺省访问控制符:类没访问控制符说明具缺省访问控制符特性类能同包类访问或引用访问特性称包访问性
3、属性控制修饰符:访问控制符非访问控制符两类
访问控制符 4 种:公共访问控制符: public ;私访问控制符: private ;保护访问控制符: protected ;私保护访问控制符: private protected
非访问控制符 4 种:静态域修饰符: static ;终域修饰符: final ;易失 ( 共享 ) 域修饰符: volatile ;暂性域修饰符: transient
1、公共访问控制符 public :用 public 修饰域称公共域公共域属于公共类则所其类所引用由于 public 修饰符降低运行安全性数据封装性所般应减少 public 域使用
2、私访问控制符 private : 用 private 修饰员变量 ( 域 ) 能该类自身所访问能任何其类 ( 包括类 ) 所引用
3、保护访问控制符 protected :用 protected 修饰员变量三种类所引用:①该类自身;②与同包其类;③其包该类类使用修饰符 protected 主要作用允许其包类访问父类特定属性
4、私保护访问控制符 private protected :用修饰符 private protected 修饰员变量该类本身或该类类两种类访问引用
5、静态域修饰符 static :用 static 修饰员变量仅属于类变量属于任何具体象静态员变量值保存类内存区域公共存储单元保存某象内存区间任何类象访问取都相同数据;任何类象修改 , 都同内存单元进行操作
6、终域修饰符 final :终域修饰符 final 用定义符号量类域 ( 员变量 ) 修饰符 final 说明则取值程序整执行程都变
7、易失 ( 共享 ) 域修饰符 volatile :易失 ( 共享 ) 域修饰符 volatile 用说明员变量能几线程所控制修改说程序运行程员变量能其程序影响或改变取值使用要注意种员变量取值变化通 volatile 用修饰接受外部输入域
8、暂性域修饰符 transient :暂性域修饰符 transient 用定义暂性变量其特点:用修饰符 transient 限定暂性变量指定 Java 虚拟机认定该暂性变量属于永久状态实现同象存档功能否则类所变量都象永久状态部存储象必须同保存些变量
4、控制修饰符:访问控制符非访问控制符两类
访问控制符 4 种:公共访问控制符: public ;私访问控制符: private ;保护访问控制符: protected ;私保护访问控制符: private protected
非访问控制符 5 种:抽象控制符: abstract ;静态控制符: static ;终控制符: final ;本控制符: native ;同步控制符: synchronized
1、抽象控制符 abstract :用修饰符 abstract 修饰称抽象抽象种仅没体操作实现种
2、静态控制符 static :用修饰符 static 修饰称静态静态属于整类类;使用 static 修饰、限定属于某具体类象 由于 static 属于整类所能操纵处理属于某象员变量能处理属于整类员变量即 static 能处理 static 域
3、终控制符 final :用修饰符 final 修饰称终终功能内部语句能更改即终能重载固定所具功能操作防止前类类父类关键错误定义保证程序安全性确性所 private 修饰符限定私及所包含 final 类 ( 终类 ) 都认终
4、本控制符 native :用修饰符 native 修饰称本提高程序运行速度需要用其高级语言书写程序体该定义本用修饰符 native 修饰;
5、同步控制符 synchronized :该修饰符主要用于线程共存程序协调同步



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章