美文网首页
1.1、面向对象

1.1、面向对象

作者: zhou_gai | 来源:发表于2020-04-08 20:15 被阅读0次

一、面向对象
面向对象的三大特征:封装、继承、多态。

五大基本原则:单一职责原则(每个类只做一件事)、开放封闭原则(可扩展,不可修改)、依赖倒置原则(依赖抽象)、接口隔离(使用多的小接口,而非一个总接口)、里氏替换原则(子类能够替换基类)。

1、值传递与引用传递
Java中传递的参数分为两类,一类是基本类型,一类是引用类型,传递基本类型时是直接将值进行传递,引用类型的传参是传递应用类型的地址值。所以都可以叫做值传递。

2、三大特征的分析
多态:同一个接口使用不同的实例可以执行不同的操作。存在的必要条件:继承、重写、父类指向子类的引用。即子类继承自父类并重写父类中的方法,创建对象时,父类进行向上转型。例:Parent p = new Child(). 构造函数分为无参和带参构造函数,构造函数为了类提供了不同的创建实例方式。

3、变量
类变量:由static修饰的成员变量,为类的所有的实例对象所共享

成员变量:每个实例对象都有自己的成员变量,实例之间不进行成员变量的共享

局部变量:方法体之内的变量,只能在该方法之内被使用


public class VariableTest {

       // 类变量(静态变量)

       private static int STATIC_INTEGER = 10;

      // 成员变量

      private int i = 100;

      // 测试类变量

      public int staticTest() {

            STATIC_INTEGER++; return STATIC_INTEGER;

      }

      // 测试成员变量

      public int commonTest() {

            i++; return i;

      }

}

public class VariableTest01 {

    public static void main(String[] args) {

        // 测试静态变量是否为对象共享

         VariableTest v1 = new VariableTest();

        System.out.println(v1.staticTest()); // 11

         VariableTest v2 = new VariableTest();

        System.out.println(v2.staticTest()); // 12

         // 测试成员变量是否为对象共享

         VariableTest v3 = new VariableTest();

         System.out.println(v3.commonTest()); // 101

         VariableTest v4 = new VariableTest();

         System.out.println(v4.commonTest()); // 101

     }

}

4、类的加载顺序
1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化

2、只有在调用new方法时才会创建类的实例

3、类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行本类继承的子类的初始化块,最后是子类的构造方法

4、类实例销毁时候,首先销毁子类部分,再销毁父类部分


//  父类

public class Parent {

     public Parent() {

         System.out.println("父类构造方法");

    }

    {

        System.out.println("父类普通代码块");

     }

    static {

        System.out.println("父类静态代码块");

     }

    public static void method1(){

         System.out.println("父类静态方法");

     }

    public void method2() {

        System.out.println("父类普通方法");

   }

 }

public class Child extends Parent{

     public Child() {

          System.out.println("子类构造方法");

    }

     {

        System.out.println("子类普通代码块");

    }

    static {

        System.out.println("子类静态代码块");

    }

    public static void method1(){

         System.out.println("子类静态方法");

    }

     public void method2() {

        System.out.println("子类普通方法");

    }

 }

// 测试类

public class ClassInit {

    public static void main(String[] args) {

        Child child = new Child();

        child.method2();

        child.method1();

    }

}

结果:

父类静态代码块 子类静态代码块 父类普通代码块 父类构造方法 子类普通代码块 子类构造方法 子类普通方法 子类静态方法

相关文章

  • 1.1、面向对象

    一、面向对象面向对象的三大特征:封装、继承、多态。 五大基本原则:单一职责原则(每个类只做一件事)、开放封闭原则(...

  • Java复习笔记——系统整理

    一、面向对象概念 1. 类与对象 1.1 面向过程和面向对象 面向过程 (Procedural Programmi...

  • JavaScript学习笔记(一)

    Javascript面向对象 1. 面向对象编程介绍 1.1 两大编程思想 面向过程 & 面向对象 1.2 面向过...

  • 面向对象的三大基本特征和五大设计原则

    1、面向对象概念 1.1、理解面向对象 面向对象是相对面向过程而言; 面向对象和面向过程都是一种思想; 面向过程:...

  • Java基础

    1.面向过程和面向对象区别 1.1面向过程:面向过程性能高于面向对象 1.2面向对象:面向对象易复用,易拓展,易维...

  • P 面向对象 | 面向对象

    一、面向对象 1.1 面向过程与面向对象 1.1.1 面向过程 怎么做 1.1.2 面向对象 谁来做应对复杂的项目...

  • Java程序员必修内功心法!(内功修炼第二层)

    1,Java 面向对象 1.1类和对象 1.1.1. 面向对象和面向过程的区别 1,面向过程 :面向过程性能比面向...

  • Python 面向对象 - 01 基本概念

    目录一、面向过程 和 面向对象 基本概念1.1 面向过程1.2 面向对象二、类和对象2.1 类2.2 对象2.3 ...

  • 面向对象

    面向对象方法概论 对象、结构 概念呢 特征 1.1 什么是面向对象 面向对象方法的基本思想 对象 属性-静态特征 ...

  • 4面向对象

    [TOC] 面向对象 1. 面向对象的基本概念 1.1 什么是面向对象编程。 准确的说面向对象编程我们叫 OOP....

网友评论

      本文标题:1.1、面向对象

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