博客
关于我
java--类与对象的理解及浅显过程内存结构
阅读量:301 次
发布时间:2019-03-03

本文共 948 字,大约阅读时间需要 3 分钟。

一、类与对象的基本概念

在编程领域,类和对象是核心的概念。类可以看作是一种抽象的定义,描述一类事物的共同特征和行为。例如,"人类"一类事物的统称,涵盖了所有人,这是一种抽象的概念,需要对具体事物进行统一的定义。

对象则是具体的个体,反映客观世界中实际存在的实例。例如,"张三"和"李四"都是人类的具体实例。对象是通过将抽象的类具体化而产生的,即对象是根据类的定义实例化出来的。

从另一个角度来看,类就像是一份设计图纸,而对象则是根据设计图纸在现实中构建出来的具体建筑。类中的成员变量和成员方法定义了该类所有实例共同拥有的特性和行为。例如,楼的设计图纸包含了地基、混凝土、钢筋等通用材料和构造方法,而每一座具体的楼宇都是根据这份设计图纸以不同的方式构建而成。

类的核心作用是将具备相同功能和特性的实体集合抽象出来,形成一种可以重复使用的模板。通过类,我们可以避免重复编写相同功能的代码,从而提高代码的复用性和可维护性。

二、如何在Java中创建类的对象

在Java编程中,类的实例化是通过调用类的构造器(constructor)来实现的。构造器的作用是创建一个类的对象,这个对象可以具备类定义的成员变量和成员方法。

使用构造器创建对象的语法格式为:类名 对象引用变量 = new 类名()。例如,创建一个名为Person的类的对象,可以写成:

Person p1 = new Person();

在这个过程中,编译器首先在栈中分配一个空间来存储对象引用p1,然后在堆中分配一个空间来存储Person对象的实例。new操作符将堆中的对象实例的首地址传递给栈中的p1变量。

创建出来的对象会继承类的成员变量和成员方法。例如,Person类中定义了一个name成员变量和一个eat成员方法,那么p1对象就可以通过p1.name进行操作,或者调用p1.eat()方法。

每次使用new操作符创建一个类的对象时,Java都会在堆中为这个对象分配一块新的内存区域。这些对象之间是相互独立的,除非程序中有明确的指令进行通信或操作。

通过new操作符创建对象的过程,类中的成员变量会初始化为特定的值。例如,可以通过p1.age = 45;来为p1对象的年龄成员变量赋值。每个对象的成员变量都是独立的,不会互相影响。

转载地址:http://mmel.baihongyu.com/

你可能感兴趣的文章
pyscopg2:是否可以在循环中动态添加 %s
查看>>
Pyserial 缓冲区的填充速度比我读的快
查看>>
PySpark - 在数据框中求和一列并将结果返回为 int
查看>>
pyspark On Yarn 的模块依赖问题
查看>>
PySpeech(Python)-转录MP3文件?
查看>>
Pyspider WebUI 未授权访问致远程代码执行漏洞复现
查看>>
pyspider爬虫学习-文档翻译-Architecture.md
查看>>
pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it‘s not in your path
查看>>
Pytesseract集字符白名单
查看>>
PyTorch DataLoader 报错 Segmentation fault (core dumped) 的原因及解决方案
查看>>
Pytest ------ 标记函数
查看>>
Pytest Fixture的妙用:深度解析范围和实际运用!
查看>>
Pytest monkeypatch不适用于导入的函数
查看>>
Pytest 命令行报错: Hint: make sure your test modules/packages have valid Python names.
查看>>
pytest 的 request fixture:实现个性化测试需求
查看>>
Pytest+Allure 接口自动化测试平台开发实战
查看>>
pytest+allure使用动态级别,参数化severity
查看>>
Pytest+Unittest+Git+Jenkins企业级CICD自动化测试平台建设方案
查看>>
Pytest+Yaml 数据驱动测试用例
查看>>
pytest-base-url插件之配置可选的项目系统URL
查看>>