美文网首页
Java中的面向对象

Java中的面向对象

作者: iDevOps | 来源:发表于2019-09-21 18:28 被阅读0次

万物皆对象

  • 类和对象
    类是一组相关属性和行为的合集, 是对一类事物描述,是抽象的、概念上的定义
    对象是实际存在的该类事物的具体体现,因而也称实例(instance)
    类是对象的模板,对象是类的实体
  • 成员变量 vs 局部变量
成员变量 局部变量
位置 类中,方法外 方法内
范围 类中 方法中
初始化值 无,需先定义赋值再使用
内存 堆内存 栈内存
生命周期 随着对象的创建而创建,消失而消失 方法的调用而存在,调用完毕消失
  • 类变量和类方法
    被static修饰的成员变量时,该变量称为类变量
    被static修饰的成员方法时,该变量称为类方法
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不支持多重继承。有了接口,就可以得到多重继承的效果
从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
一个类可以实现多个接口,接口也可以继承其它接口

  • 接口的特点
    用interface来定义。
    接口中的所有成员变量都默认是由public static final修饰的。
    接口中的所有方法都默认是由public abstract修饰的。
    接口没有构造器。
    接口采用多继承机制
public interface Person {
    void say();
}
面向对象的三大特征

封装、继承与多态

  • 封装
    适当的封装可以让代码更容易理解和维护,加强代码的安全性
    final
    可以修饰类,方法,变量
    类: 被修饰的类不能被继承
    方法: 被修饰的方法,不能被重写
    变量:被修饰的变量,不能被重新赋值
    权限修饰符
    public: 公共的
    protected: 受保护的
    default: 默认的
    private: 私有的
public protected default private
同一类中
通一包中
不同包
不同包的无关类
  • 继承
    super和this
    super : 代表父类的存储空间标识,可以理解为父类的引用
    this : 当前对象的引用

  • 多态

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(){
    
    }
}

相关文章

  • 05 类和对象

    面向对象是Java最重要的特性。Java是彻底的、纯粹的面向对象语言,在Java中“一切都是对象”。本章将介绍面向...

  • Java Overview 入门了解

    java Object oriented 面向对象在java中,一切都是面向对象,java可以基于对象模型做很多扩...

  • 【Java 8】二、Java中的面向对象编程

    2.1 面向对象编程 面向对象编程(Object-Oriented Programming,OOP)在Java中处...

  • Java类和对象

    Java类和对象 类 面向对象和面向过程 面向对象:Object Oriented把系统中需要处理的数据和这些数据...

  • java基础-day10-面向对象4.0

    面向对象4.0 1. 面向对象之继承 1.1 生活中的继承 1.2 Java中的继承 1.3 子类对象创建,会调...

  • 3. Java面向对象编程

    类与对象[1] Java是面向对象的汇编语言(面向机器)—— c语言(面向过程)—— java语言(面向对象) 类...

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • 后端(Spring AOP的三种代理)

    springAOP指的是在spring中的AOP,什么是AOP,相对于java中的面向对象(oop),在面向对象中...

  • 王艳华Pythonday03

    Python的面向对象 Java 面向对象 继承

  • java总结

    Java是一门面向对象编程语言. java知识点梳理 java面向对象的特点java面向对象的三个基本特性: 封...

网友评论

      本文标题:Java中的面向对象

      本文链接:https://www.haomeiwen.com/subject/acrsyctx.html