您的位置:首页 > 编程语言 > Java开发

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.接口的定义在软件研发中属于一种顶层设计,定义的是一种通讯规范,标准.封装的是不变的,接口的稳定性要求比较强,所有一般会由一些设计人员进行定义.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: