黑马程序员_JAVA高级属性

来源:互联网 发布:airplay windows 编辑:程序博客网 时间:2024/05/17 15:40

JAVA的高级语言特性

静态变量:一个类只有一份, 被类的所有实例共享。

能在没有生成任何类的实例时就被访问到,在某种意义上类似于全局变量,直接使用类名来访问。

静态方法:可以在没有任何实例时调用,不能在static方法内部访问非static成员,不能被非static方法覆盖。

例子public class StaticTest {

    int x;

    public static void main(String[] args){

        System.out.println(Algorithm.add(2 ,3));

        //x = Algorithm.add(4,5); //illegal

    }

}

classAlgorithm {

    public static int add(int a, int b) {

        return a + b;

    }

}

Final关键字:final用来修饰一个类,方法属性或局部变量。

final 类不能被继承。 

 final 方法不能被覆盖,

final 变量的值不能被改变。

abstract抽象类:编译器是不会让你初始化抽象类的,抽象类除了被继承之外,是没有用途

抽象方法:抽象的方法没有实体,如果一个类中有抽象方法,就必须把类也标记为抽象的。抽象方法的意义在于,就算无法实现出方法的内容,但还是可以定义出一组子类型共同的协议

有抽象方法的好处是?多态。…

你必须实现所有的抽象方法,除非子类也是抽象的,实现抽象方法就如同覆盖方法一样。

接口:接口是一种特殊的抽象类

    接口中所有的方法都是抽象方法,

一个类可以实现多个接口。

接口中的所有属性都会自动声明为public final static。

接口与接口之间可以多重继承。

接口中没有构造方法。当我们用类去实现接口时。

如果不希望实现类是抽象类的话,那么就要实现接口中定义的所有的方法。

一个类在继承另外一个类的同时,还可以实现多个接口。

接口的作用:

1. 多继承

     不会破坏类和类之间的树状关系,接口是对类关系的补充,附加类型信息,不影响类的主干继承关系

     区分类的主类型和副类型,可以对类再抽象,抽象出附加类型(接口)

  2. 解耦合的工具

     把制定标准,使用标准和实现标准三者分开,标准的使用者和标准的实现者通过标准间接发生联系,耦合度减弱

接口的回调,先有接口的使用者,后有接口的实现者时,一般我们把使用这种接口的方式叫做回调。

Object类:所有类的源头,所有类的父类(java中的上帝类)。

没有继承过其他类的类会隐含在继承Object类。

你可以用Object的引用指向任何对象(多态?)。

Object类的两个方法:equals

==运算符用来判断两个引用值是否相等(是否指向同一个对象)

equals(Objecto) 方法一般在定义类时被覆盖(改写),该方法用来判断两个对象值是否相同。

toString

返回描述某个对象的字符串

当直接输出一个对象时,这个方法被隐含的调用

0 0