美文网首页
【Java】面向对象编程

【Java】面向对象编程

作者: Alcazar | 来源:发表于2019-10-07 12:42 被阅读0次

    面向对象编程思想

    面向对象的思维:当需要实现某个或某些功能时,首先考虑这些功能的实现由哪个或哪些对象负责。

        例:System.out.println();
    

    若这样的对象不存在,则考虑利用哪个或哪些类来创建这样的对象。

    若不存在这样的类,则需要进行类的设计和声明。


    image.png
    创建对象的简单方式
    类名 对象名 =  new 类名();
    

    属性和方法

    属性
    • 🌰 即C++中的成员变量。

    • 🌰 组成对象的基本组件之一。

    • 🌰 可以在声明一个类时在类中声明属性。

    • 🌰 在类中声明属性的另一层含义是,使用该类创- 建的所有对象均包含此属性。

    • 🌰 普通的属性是属于对象的,由对象独享。

    方法
    • 🌰 即C++中的成员函数。

    • 🌰 组成对象的基本组件之一。

    • 🌰 可以在声明一个类时在类中声明方法。

    • 🌰 在类中声明方法的另一层含义是,使用该类创建的所有对象均可调用此方法。

    • 🌰 方法是一段代码,是由所有对象所共享的。不同对象在调用同一方法时执行的是同一段代码。

    [public] class 类名 {
         访问权限 类型名 属性1;
         访问权限 类型名 属性2;
            …… ……
         访问权限 类型名 属性n;
         访问权限 返回值类型 方法名1(参数列表){
            方法体 
     }      
    …… ……
         访问权限 返回值类型 方法名n(参数列表){
            方法体  
      }
    }
    
    image.png

    【java】当前对象

    当前对象的概念
    • 🌰 当前对象的概念只存在于方法调用时。
    • 🌰 普通成员方法必须被对象调用。
    • 🌰 对于一个普通的成员方法,当其被调用时,调用该方法的对象即为当前对象。
    当前对象的意义
    • 🌰 不同的对象调用同一个方法时,执行的代码相同,但当前对象不同

    【java】内存模型

    一般程序执行时的内存管理
    【提问】谁管理内存?

    【回答】:操作系统

    【提问】与程序运行的关系?

    【回答】

    • 🌰 程序运行时需要占用内存空间
    • 🌰 操作系统负责为运行的程序分配内存空间
    • 🌰 操作系统负责规范运行着的程序如何使用分配给它的内存空间。
    image.png
    Java程序执行时的内存管理
    • 💬 Java程序如何运行?
    • 📃 操作系统运行JVM。
    • 📃 JVM运行Java程序。

    【理解】

    • 🌰 JVM是运行在操作系统上的应用程序。
    • 🌰 Java应用程序是运行在JVM上的应用程序。

    操作系统负责为JVM的运行分配内存并管理,JVM负责将其分配到的内存再分配给运行在JVM上的Java应用程序。
    【总结】

    • Java程序运行时的内存模型有JVM定义。
    • 在JVM规范中可以找到Java程序的内存模型。
    image.png

    【图解】将程序运行时的内存空间分成代码区、数据区、栈区、堆区

    Java对象的内存形态

    由于对象本身是new出来的,其存储空间在堆内存中。

    对象本身的存储空间由对象中包含的属性的存储空间构成。
    对象的引用是一小块特定的内存空间,其中存放了一些和对象相关的信息,例如地址

    方法的参数传值

    方法参数的类型可以是基本数据类型也可以是引用类型。
    方法参数传递的方式为值传递。
    如果方法的参数为引用数据类型,则调用时传递的值为引用的值,不是对象。

    Java中传参时永远不会拷贝对象。

    【java】访问权限

    image.png
    方法的重载

    在一个类中可以声明多个方法名相同的方法,这些方法必须具有不同的参数列表。

    对象的初始化

    在创建对象时为对象的属性设置初始值。

    相关文章

      网友评论

          本文标题:【Java】面向对象编程

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