zoukankan      html  css  js  c++  java
  • Java基础知识

    1. 面向对象三大特性:封装,继承,多态

    封装

    1. 概念:把类的某些信息私有化隐藏起来,外部不能直接访问,而是通过该类提供的方法来实现对这些隐藏信息的访问和操作。

    2. 好处:

    • 只能通过规定的方法来访问私有数据

    • 隐藏类的内部实例细节,方便修改和实现。

    继承

    在已有类的基础上添加新的数据或方法。“is-a” 关系是继承的一个明显特征。

    • 子类拥有父类所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类无法访问,只是拥有。(好处:实现了代码复用)

    • 子类可以拥有自己的属性和方法,即对父类进行扩展。

    • 子类可以用自己的方式实现父类的方法(重写

    多态

    所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定。
    在Java中有两种形式可以实现多态:

    • 继承(多个子类对同一方法的重写)

    • 接口(实现接口并覆盖接口中同一方法)

    一个三大特性讲解得很详细的博客:JAVA面向对象三大特性详解

    2. Java 和C++的区别

    • (相同点)都是面向对象的语言,都支持封装、继承和多态

    • c++引入了操作符重载机制,Java不支持
    • Java不提供指针来直接访问内存,程序内存更加安全。C++中有指针,但Java中有引用

    • Java的类是单继承的,C++支持多重继承;虽然Java的类不可以多继承,都是接口可以多继承

    • C++创建对象后需要在使用结束后调用delete方法将其销毁,Java有垃圾回收机制,用来监视new出来的所有对象,辨别不会再被引用的对象,然后释放内存空间

    • 在C++中,数组定义时,已经分配存储空间,并且可以使用,在Java中,数组定义时只定义了数组变量,数组是不可以使用的,只有数组new之后才会创建数组,并分配存储空间。
    • Java是解释型语言:源码会先经过一次编译,成为中间码,中间码再被解释器解释成机器码。字节码(.class)就是中间码,而解释器在JVM中内置了。 C++是编译型语言,源码一次编译,直接在编译的过程中链接了,形成了机器码。

  • 相关阅读:
    【Leetcode】23. Merge k Sorted Lists
    【Leetcode】109. Convert Sorted List to Binary Search Tree
    【Leetcode】142.Linked List Cycle II
    【Leetcode】143. Reorder List
    【Leetcode】147. Insertion Sort List
    【Leetcode】86. Partition List
    jenkins 配置安全邮件
    python 发送安全邮件
    phpstorm 同步远程服务器代码
    phpUnit 断言
  • 原文地址:https://www.cnblogs.com/l999q/p/12266956.html
Copyright © 2011-2022 走看看