java中Static&Final的使用方法,&&&Java中两个主要的抽象Abstract&&Implement
2016-05-02 16:39
309 查看
两大修饰符
Static
1. 修饰内部类class Outer{static class Inner{}} //不能对外部类用static
1) 修饰属性(类的内部,方法的外部)//类变量
A) 此变量为类变量,类变量在类加载时初始化,且初始化一次
B) 类变量可以通过类名访问,被所有对象所共享
C) 假如一个类中有多个类变量,初始化顺序从上到下
2) 修饰代码块(类内部,方法外部)
A) 称之为静态代码块
Static { }
B) 类加载时执行,执行一次
c) 可以对类变量赋值,或调用静态方法
Note:需要与普通的代码块做一个比较,
{ },普通的代码块是在构建对象的时候加载,给实例变量赋值。
3) 修饰方法//不能有this这个关键字
A) 称之静态方法,可以通过类名之间访问
B) 静态方法内部只能访问静态成员(类变量,类方法)//由于静态》》》是在类加载时完成初始化,所以只能调用类变变量和类方法
C) 静态方法可以被重写,但不支持多态
//F.show()那个例子
2. Final修饰符
1) 修饰符(类)(此类不能被继承)
Final class A{}
2) 修饰变量(此变量的值不能再改变)
Note:对于类变量和实例变量,用final修饰的变量必须有初始值,但是可以将定义和赋值分开?????也是有例外的,就是在day11讲的那个View(看看)
类变量的:
可以用静态代码块对他赋值
final static int a;
static{
a=10;
}//这就是static对类变量赋值的例子~!
实例变量是用构造函数对其赋值
对于静态实例变量来说,他是在对象创建的时候完成初始化,可以利用
final int c;//在构造函数中赋值
A(){c=10;}
对于参数变量,局部变量,必须对其赋值。(在定义时,必须有值)
3) 修饰方法(此方法不能被重写)
两个抽象
1. 抽象类
抽象类:是java中特殊的一个类,使用abstract关键字修饰,允许包含抽象方法,不能被实例化。
抽象类体现的是一种半成品思想,它抽象子类共性,特性交给子类实现
抽象类的定义:(如果有抽象方法的话)只有方法的声明,没有方法的实现,并且使用了abstract关键字修饰。
Note:抽象类不能被实例化。抽象类中不一定包含抽象方法
抽象类的应用:
1) 以父类的形式出现(封装不变的,变化的交给子类去实现)
2) 允许被继承,不能使用final修饰
3) 不能被实例化(不能直接构建抽象类的对象)
1.接口:
1) 接口是一种规范,是一种标准。
2) Java中的接口是一种抽象。(对规范的一种描述)
2. java 中接口的定义:
1) java中通过interface关键字定义接口
2) 接口中只能定义public static final(也可以在定义时不写,系统是默认的)修饰的变量以及抽象方法(这就对于那些在子类中默认的变量和方法的访问权限必须是public ,这是因为在父类中变量的权限已经变成public、)
在接口中定义的变量都必须是有初始值的
Interface Ia{
Int a=10;(必须有值) public static final是默认存在的,
public static final int a=10;//是等价的
public static final void show();
}
3) 接口允许多层继承,也允许多重继承。
4) 一个类可以实现一个或多个接口,但必须实现接口中所有的方法,否则此类是抽象类。
5) 接口不能被实例化,(实例化的工作交给实现它的类去完成)
3.接口的定义在软件研发中属于一种顶层设计,定义的是一种通讯规范,标准.封装的是不变的,接口的稳定性要求比较强,所有一般会由一些设计人员进行定义.
Static
1. 修饰内部类class Outer{static class Inner{}} //不能对外部类用static
1) 修饰属性(类的内部,方法的外部)//类变量
A) 此变量为类变量,类变量在类加载时初始化,且初始化一次
B) 类变量可以通过类名访问,被所有对象所共享
C) 假如一个类中有多个类变量,初始化顺序从上到下
2) 修饰代码块(类内部,方法外部)
A) 称之为静态代码块
Static { }
B) 类加载时执行,执行一次
c) 可以对类变量赋值,或调用静态方法
Note:需要与普通的代码块做一个比较,
{ },普通的代码块是在构建对象的时候加载,给实例变量赋值。
3) 修饰方法//不能有this这个关键字
A) 称之静态方法,可以通过类名之间访问
B) 静态方法内部只能访问静态成员(类变量,类方法)//由于静态》》》是在类加载时完成初始化,所以只能调用类变变量和类方法
C) 静态方法可以被重写,但不支持多态
//F.show()那个例子
2. Final修饰符
1) 修饰符(类)(此类不能被继承)
Final class A{}
2) 修饰变量(此变量的值不能再改变)
Note:对于类变量和实例变量,用final修饰的变量必须有初始值,但是可以将定义和赋值分开?????也是有例外的,就是在day11讲的那个View(看看)
类变量的:
可以用静态代码块对他赋值
final static int a;
static{
a=10;
}//这就是static对类变量赋值的例子~!
实例变量是用构造函数对其赋值
对于静态实例变量来说,他是在对象创建的时候完成初始化,可以利用
final int c;//在构造函数中赋值
A(){c=10;}
对于参数变量,局部变量,必须对其赋值。(在定义时,必须有值)
3) 修饰方法(此方法不能被重写)
两个抽象
1. 抽象类
抽象类:是java中特殊的一个类,使用abstract关键字修饰,允许包含抽象方法,不能被实例化。
抽象类体现的是一种半成品思想,它抽象子类共性,特性交给子类实现
抽象类的定义:(如果有抽象方法的话)只有方法的声明,没有方法的实现,并且使用了abstract关键字修饰。
Note:抽象类不能被实例化。抽象类中不一定包含抽象方法
抽象类的应用:
1) 以父类的形式出现(封装不变的,变化的交给子类去实现)
2) 允许被继承,不能使用final修饰
3) 不能被实例化(不能直接构建抽象类的对象)
1.接口:
1) 接口是一种规范,是一种标准。
2) Java中的接口是一种抽象。(对规范的一种描述)
2. java 中接口的定义:
1) java中通过interface关键字定义接口
2) 接口中只能定义public static final(也可以在定义时不写,系统是默认的)修饰的变量以及抽象方法(这就对于那些在子类中默认的变量和方法的访问权限必须是public ,这是因为在父类中变量的权限已经变成public、)
在接口中定义的变量都必须是有初始值的
Interface Ia{
Int a=10;(必须有值) public static final是默认存在的,
public static final int a=10;//是等价的
public static final void show();
}
3) 接口允许多层继承,也允许多重继承。
4) 一个类可以实现一个或多个接口,但必须实现接口中所有的方法,否则此类是抽象类。
5) 接口不能被实例化,(实例化的工作交给实现它的类去完成)
3.接口的定义在软件研发中属于一种顶层设计,定义的是一种通讯规范,标准.封装的是不变的,接口的稳定性要求比较强,所有一般会由一些设计人员进行定义.
相关文章推荐
- Google Java编码规范
- maven+springmvc+easyui+fastjson+pagehelper
- RandomAccessFile类
- spring boot 异常处理
- 华为Java编程规范
- Java 多线程编程学习(一)
- Maven——Java项目构建工具
- 对象流
- 安卓开发之java基础笔记【6】
- 内存流
- Javastring类
- system.in的用法,system.out的用法。
- Java日期类
- Java 方法
- Java中的Socket通信(一)Socket介绍
- 20160501--struts2入门3
- Java---类反射(2)---类反射加强
- Java---类反射(2)---类反射加强
- eclipse快捷键
- IO流中以字符流读取和写入。