• 1 Java面向对象


    0 工具

    在分析面向对象时最好采用UML图进行分析设计

    1 Java面向对象的特点

    java采用面向对象的方法设计程序主要体现在:对象有属性和方法,事件的发生是对象间的信息交互产生的即程序中的get set方法这是与面向过程最大的不同点

    2 多态

    多态的目的是为了提高代码的复用性如工厂模式案例中为了减少if else采用向上转型,而向上转型中为了弥补其不足之处提出了向下转型。实现多态的前提就是继承和实现,继承主要是针对类、实现则是针对接口而言的。接口是一个比抽象类更为抽象的类一般说是一种规范,但其本质仍然是类,可以通过接口实现类似C++中的多重继承,因为Java中类的继承是单一的即只能有一个父类。

    3 反射

    Java中的反射机制是动态获取类型信息,在JVM中进行获取主要有4个对象:Class、Constructor、Field、Method,利用这四个对象来获取类中的信息。

    由上图可知,java文件会被编译成字节码文件Person.class,JVM中利用ClassLoder类中的四个对象分别获取类型信息、构造方法、属性、方法信息。Class对象是所有工作的前提,要先根据字节码文件获得对象才能获取对象中的属性和方法。对Class有正反两个应用:对过对象获得字节码文件、通过字节码文件获得对象。

     4 反射、多态、接口综合案例

     在博客设计模式里的工厂模式中有一段代码:

    public class SimpleFactory {
        public static Plant createPlant(String name) throws Exception {
            return (Plant)Class.forName(name).newInstance();
        }
    }

    此处的返回语句就是综合运用了三个知识点,利用反射通过类名获取类对象并实例化,然后向上转型。此处Plant是一个接口,要想实现多态中的向上转型必须先继承类或实现接口,因此每一个对象都实现了Plan接口。

    0

  • 相关阅读:
    51 Nod 1068 Bash游戏v3
    51 Nod Bash 游戏v2
    51 Nod 1073 约瑟夫环
    UVA 12063 Zeros and ones 一道需要好好体会的好题
    51 Nod 1161 Partial sums
    2018中国大学生程序设计竞赛
    UVA 11971 Polygon
    UVA 10900 So do you want to be a 2^n-aire?
    UVA 11346 Possibility
    python with as 的用法
  • 原文地址:https://www.cnblogs.com/youngao/p/11162693.html
Copyright © 2020-2023  润新知