JAVASE--面向对象(五)

static关键字

1.静态的:可以用来修饰方法,属性,代码块,内部类

2.static修饰属性(类成员变量)

   a.由类创建的的所有对象都共用这一个静态属性

   b.当其中一个对象对静态属性进行修改,所有的对象都能看到变化。 (实例变量:每个对象都有一个副本)

  c.随着类的加载而加载,而且独一份

  d.静态变量可以直接通过“类名.静态变量名”调用

  e.类的静态变量要早于对象加载,所以用“类.变量名”,而实例变量只有实例化对象之后才会被分配空间,所以不能用“类.实例化变量”,只能用“实例对象.实例变量”

f.静态变量存在于静态域中

static修饰方法

1.随着类的加载而加载,在内存中也是独一份。

2.可以直接通过“类.方法名”调用

3.内部可以调用静态方法和静态属性,不可以调用非静态的属性和方法,反之,非静态的方法可以访问静态属性或静态方法。

静态的方法内不可以有this和super关键字(因为静态先于对象存在,同时回收也晚于非静态结构)

代码块

用来初始化类的属性,只能用static来修饰

静态代码块

1、里面可以有输出语句

2.随着类的加载而加载,而且只被加载一次

3.多个静态代码块之间按照顺序执行

4.静态代码块的加载要先于非静态代码块

5.静态代码块中只能执行静态的结构(类方法,属性)

非静态代码块

1.可以对类的属性进行初始化操作(静态的&非静态的),同时也可以调用本类声明的方法(静态的&非静态的)

2.可以有输出语句

3.多个代码块按顺序执行

4.没创建一个对象 ,非静态代码块就加载一次

5.非静态代码块要先于构造器执行

  关于属性赋值的操作:
①默认的初始化
②显式的初始化或代码块初始化(此处两个结构按照顺序执行) 
③构造器中;
—————————以上是对象的属性初始化的过程—————————————
④通过方法对对象的相应属性进行修改

final关键字

最终的:用来修饰类,属性,方法

1.final修饰的类:这个类就不能被继承。如:String类,StringBuffer类,System类

2.final修饰的方法:不能被重写。如:object类的getClass()

3.final修饰属性:此属性就是一个常量,一旦初始化后,不可再被赋值

 变量用static final修饰:全局常量。比如:Math 类的PI

abstract关键字

抽象的:可以用来修饰类和方法

abstract修饰类:

1.不可以被实例化

2.抽象类有构造器(凡是类都有构造器)

3.抽象方法所在的类一定是抽象类

4.抽象类中可以没有抽象方法

当我们设计一个类,不需要创建此类的实例时候,就可以考虑将其设置为抽象的,由其子类实现这个类的抽象方法以后,就能实例化

abstract修饰方法

1.格式,没有方法体,没有{}。public abstract void eat();

2.抽象方法只保留方法的功能,而具体的执行实现,交给继承的子类去重写此抽象方法

3.若子类继承了抽象类,并重写了所有的抽象方法,则此类是一个实体类,即可以实例化

4.若子类继承了抽象类,重写了一部分抽象方法,还有一部分抽象方法存在,则该类仍然是抽象类。

/////模版方法设计模式

interface 接口

与类并行的一个概念(class  CC implements  AA)

1.接口可以看成一个特殊的抽象类,是常量和抽象方法的一个集合,不能包含一般的方法和属性

2.接口是没有构造器的

3.接口定义的就是一种功能,此功能可以被类所实现

4.实现接口的类,必须实现其所有的抽象方法,方可实例化,不然还是一个抽象类

5.类可以实现多个接口

6.接口与接口之间可以继承,而且还可以多继承

7.接口与类之间也存在多态性

内部类

类的成员

1.我们可以在类的内部再定义类

2.成员内部类(声明在类内方法外),局部内部类(声明在类的方法内)

3.成员内部类:

     可以有修饰符(static,final),可以调用外部类的属性方法

     可以在其内部定义属性、方法、构造器

《Think in java》):

      1、内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。

      2、在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类。

      3、创建内部类对象的时刻并不依赖于外围类对象的创建。

      4、内部类并没有令人迷惑的“is-a”关系,他就是一个独立的实体。

      5、内部类提供了更好的封装,除了该外围类,其他类都不能访问。

猜你喜欢

转载自blog.csdn.net/XiaoLongFight/article/details/82853211