Java中的面向对象

2019-09-21  本文已影响0人  iDevOps

万物皆对象

成员变量 局部变量
位置 类中,方法外 方法内
范围 类中 方法中
初始化值 无,需先定义赋值再使用
内存 堆内存 栈内存
生命周期 随着对象的创建而创建,消失而消失 方法的调用而存在,调用完毕消失
public class Person {

    //成员变量
    private String name;
    //类变量
    private static Integer age;

    /**
     * 成员方法
     */
    public void say(){
        //局部变量
        String name = "";
    }

    /**
     * 类方法
     */
    public static void run(){

    }
}

注:

  1. 类方法可以访问类变量和类方法
  2. 类方法不能访问普通成员变量和成员方法,反之,成员方法可以直接访问类变量和类方法
  3. 类方法中,不能使用this
抽象类
/**
 * 抽象类
 */
public abstract class Person {

}
public abstract class Person {
    /**
     * 抽象方法
     * 没有方法体的方法, abstract修饰
     */
    abstract void say();
}
  1. 含有抽象方法的类一定是抽象类,抽象类里不一定含有抽象方法
  2. 抽象类存在的意义是用来被继承的,一个类继承了一个抽象类,必须实现抽象类里面所有的抽象方法,否则,此类也是抽象类
  3. 用abstract修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化
  4. 用abstract修饰的方法表示抽象方法,抽象方法没有方法体。抽象方法用来描述系统具有什么功能,但不提供具体的实现
  5. 抽象类没有构造方法,也没有抽象静态方法。但是可以有非抽象的构造方法
  6. 不能用final 修饰符修饰
接口

有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果
从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
一个类可以实现多个接口,接口也可以继承其它接口

public interface Person {
    void say();
}
面向对象的三大特征

封装、继承与多态

public protected default private
同一类中
通一包中
不同包
不同包的无关类
public interface test{
    //抽象方法, abstract可以省略,没有方法体,供子类实现使用
    public abstract void method1();
    //默认方法, default修饰,不可省略,供子类调用或者子类重写
    public default void method2(){

    }
    //静态方法, static修饰,供接口直接调用
    public static void method3(){

    }
    //私有方法, 供接口中的默认方法或者静态方法调用
    private void method4(){

    }
    private static void method5(){
    
    }
}
上一篇 下一篇

猜你喜欢

热点阅读