类和对象知识点思维导图

面向对象编程的概念

  • 在java中,万物皆对象。
  • 面向对象是指以属性和行为的观点去分析现实生活中的事物。
  • 面向对象编程是指先以面向对象的思想进行分析,然后使用面向对象的编程语言进行表达的过程。
  • 面向对象的思想精髓:封装、继承、多态

类和对象的概念

  • 对象主要指现实生活中客观存在的实体,在java语言中对象体现为内存空间中的一块存储区域。
  • 类简单来说就是“分类”,是对具有相同特征和行为的多个对象共性的抽象描述,在java语言中体现为一种引用数据类型,里面包含了描述特征/属性的成员变量以及描述行为的成员方法。
  • 类是用于构建对象的模板,对象的数据结构由定义它的类来决定。

类的定义

  • 类定义的语法格式
  • 通常情况下,当类名由多个单词组成时,要求每个单词首字母都要大写。
  • 成员变量的定义语法格式
  • 当成员变量由多个单词组成时,通常要求从第二个单词起每个单词的首字母大写。

对象的创建

  • 语法格式
    new 类名();
  • 当一个类定义完毕后,可以使用new关键字来创建该类的对象,这个过程叫做类的实例化。
  • 创建对象的本质就是在内存空间的堆区申请一块存储区域,用于存放该对象独有的特征信息。

引用的定义

基本概念

  • 使用引用数据类型定义的变量叫做引用型变量,简称为“引用”。
  • 引用变量主要用于记录对象在堆区中的内存地址信息,便于下次访问。

语法格式

类名 引用变量名;

成员方法

  • 语法格式
  • 当成员方法名由多个单词组成时,要求从第二个单词起每个单词的首字母大写。
  • 返回值类型的详解
    (1)返回值主要指从方法体内返回到方法体外的数据内容。
    (2)返回值类型主要指返回值的数据类型,可以是基本数据类型,也可以是引用数据类 型。
    (3)在方法体中使用return关键字可以返回具体的数据内容并结束当前方法。
    (4)当该方法不需要返回任何数据内容时,则返回值类型写void即可。

形参列表的详解

  • 形式参数主要用于将方法体外的数据内容带入到方法体内部。
  • 形式参数列表主要指多个形式参数组成的列表,语法格式如下:
    数据类型 形参变量名1,数据类型 形参变量名2,…
  • 若该方法不需要带入任何数据内容时,则形参列表位置啥也不写即可。

方法体的详解

  • 成员方法体主要用于编写描述该方法功能的语句块。
  • 成员方法可以实现代码的重用,简化代码。

方法的调用

  • 引用变量名.成员方法名(实参列表);
  • 实际参数列表主要用于对形式参数列表进行初始化操作,因此参数的个数、类型以及顺序都要完全一致。
  • 实际参数可以传递直接量、变量、表达式、方法的调用等。

可变长参数

  • 返回值类型 方法名(参数的类型… 参数名)
  • 方法参数部分指定类型的参数个数是可以改变的,也就是0~n个。
  • 一个方法的形参列表中最多只能声明一个可变长形参,并且需要放到参数列表的末尾。

方法的传参过程

Java中关于方法调用时参数传递实际上只有一个规则,不管是基本数据类型还是引用数据类型,实际上在传递时都是将变量中保存的那个值复制一份,传递过去。不过这个值可能是数据内容,也可能是内存地址。
  • 基本数据类型的变量作为方法的参数传递时,形参变量数值的改变通常不会影响到实参变量的数值,因为两个变量有各自独立的内存空间。
  • 引用数据类型的变量作为方法的参数传递时,形参变量指向内容的改变会影响到实参变量指向内容的数值,因为两个变量指向同一块内存空间。
  • 当引用数据类型的变量作为方法的参数传递时,若形参变量改变指向后再改变指定的内容,则通常不会影响到实参变量指向内容的改变,因为两个变量指向不同的内存空间。
  • 实参 i 是基本数据类型,在参数传递时,开辟了新的内存空间将 i 的值放了进去,而形参 i 就代表新的内存空间,这样形参和实参有不同的内存空间,所以形参 i 值的改变不会影响到实参 i 。
  • 字符串字面量是存放在字符串常量池中的,而且常量池中不会有相同的字符串。当实参 str 传递字符串给 形参 str 时,其实形参和实参都指向字符串常量池中的"hello"字符串,所以两者指向同一块内存空间。将形参的值修改为字符串 "come" 时,字符串常量池中会有一块内存空间存储 "come",而形参就会指向该内存空间,实参的指向不会发生改变,依然指向 "hello"字符串的内存空间。
  • 数组在进行参数传递时,是将变量中存储的内存地址复制了一份给形参,所以两者指向同一块内存空间。当形参将数组中的某个元素修改时,由于实参也指向相同的内存空间,所以打印实参会发现数据发生了变化。

内存结构之栈区

  • 栈用于存放程序运行过程当中所有的局部变量。一个运行的java程序从开始到结束会有多次方法的调用。
  • JVM会为每一个方法的调用在栈中分配一个对应的空间,这个空间称为该方法的栈帧。一个栈帧对应一个正在调用中的方法,栈帧中存储了该方法的参数、局部变量等数据。
  • 当某个方法调用完成后,其对应的栈帧将被清除。

结构体内容引用自非结构体数组对象_类和对象相关推荐

  1. 结构体内容引用自非结构体数组对象axes(handles.axes1)

    Matlab结构体内容引用自非结构体数组对象 matlab的gui报错axes(handles.axes1) 如何解决 起因 代码 matlab的gui报错axes(handles.axes1) 废话 ...

  2. matlab 结构体内容引用自非结构体数组对象

    load henzuobiao.matfor i =1:139HZB{i} = henzuobiao.VarName2(i); end 我用的笨办法,把需要的横坐标复制到以前的一个可以运行的文件hen ...

  3. matlab cell2mat报错:元胞内容引用自非元胞数组对象

    假设map为double矩阵 cell2mat({{map}}), 报错:元胞内容引用自非元胞数组对象.原因:套了两层cell, 解决:直接运行map{1,1}{1,1} 正确用法:一层cell,ce ...

  4. 结构体中引用另一结构体

    结构体中引用另一结构体 1.自引用结构体 1.1不使用typedef时 2.1使用typedef时 2.互引用结构体 结构体引用主要分为自引用和互引用.我主要以实例展示如何使用,不会过多赘述太多,想必 ...

  5. neo4j图数据库:结构化数据流水线、非结构化数据流水线

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 智能对话系统:Unit对话API 在线聊天的总体架构与工具介绍 ...

  6. 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)

    研究一下分布式架构的实现方式 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured) 概念 结构化数据:即行数据,存储在数据库里, ...

  7. 非结构化文件转移服务器,非结构化数据存储管理方法,服务器和系统 Unstructured data storage management method, and a system server...

    摘要: 本文提供一种非结构化数据存储管理方法,服务器和系统,解决现有技术中非结构化存储管理系统无法支撑大量的小文件及其元数据的存储和快速访问的问题. This article provides a m ...

  8. 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)的定义和区别

    相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档.文本.图片.XML.HTML.各 ...

  9. 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)...

    概念 结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据. 半结构化数据:介于完全结构化数据(如关系型数据库.面向对象数据库中的数据)和完全无结构的数据(如声音.图像文件等)之 ...

最新文章

  1. java开发培训好学习吗?难度大不大?
  2. Django DTL模板语法中的循环
  3. SQL server 200 安装问题!
  4. new housing price at shanghai
  5. Java基础之深入认识hashCode和equals
  6. 局域网如何通过SSH 2连接上VMware 10虚拟机新装的centOS系统远程登录
  7. php 封装一个sdk,PHP 之微信JSSDK类封装
  8. cotlin java go_Aspectj 在Android中的简单使用(Java + Kotlin)-Go语言中文社区
  9. [转]一个叫你看过后感动想哭的对白
  10. 分布式常见面试题详解
  11. opencv + freeimage 播放gif
  12. nodejs中字符串和json转换
  13. 读史可以使人明智,鉴以往可以知未来
  14. SQL学习笔记(02)_别名
  15. h3c路由器msr2600-10,msr3600-28调试记录
  16. 快手:看见每一种生活(一面凉经)
  17. 计算机网络:IP地址
  18. 163邮箱申请,163.net邮箱成2021年黑马品牌!
  19. html5会员管理,如何搭建会员管理体系?
  20. 所有DIN 紧固件 外形规格对照表

热门文章

  1. 生存危机,末日血战、末日危机攻略之英雄升级升星,每周活动详细说明
  2. Windows输出Apple ProRes编码视频
  3. 如何将图片和PDF互转?PDF Expert for Mac将图片和PDF互转的方法
  4. 玩转USB HID系列:Linux下使用Python开发USB HID
  5. R语言案例分析:财政收入的多元相关与回归分析
  6. 戴尔外星人系列原厂预装系统重建恢复分区重新构建F12|SupportAssist OS Recovery恢复功能恢复出厂设置
  7. Mongodb在renameCollection之后,记得千万要立即补建索引.
  8. EXCEL教程大全(史上最全)
  9. MBR60200PT-ASEMI肖特基二极管常见型号MBR60200PT
  10. CISP 老师课堂笔记