2021-07-22

本文详细介绍了Java中的面向对象概念,包括对象的含义、初始化过程和内存结构。对象在堆中分配内存,栈中生成引用,多个对象可指向相同内存。构造方法用于初始化对象,可通过this调用其他构造方法。注意无参构造方法的使用情况。内容涵盖了对象内存布局和构造方法的应用。
摘要由CSDN通过智能技术生成

面向对象含义

一件事情只考虑实施步骤而不去考虑如何实现。
统帅分配任务给将军,要求限时达成任务;将军带领士兵冲锋陷阵,去完成。

对象

对象的含义

一个具体的实际存在的,就是对象。
比如:一辆车、一个桌子、一只猫、一个计划方案。

对象初始化的过程

1.堆中申请内存用来存放对象(属性为默认值)
2.声明初始化(变量后边直接赋值)
3.使用者给定的值(构造器)
4.栈生成引用指向堆中的对象

对象的内存分析

单个对象的内存结构

在栈帧中创建变量,在堆中创建对象,将堆中对象的内存首地址放在栈帧中构成引用。
在这里插入图片描述

多个对象的内存结构

多个对象在内存中,都有不同的内存划分,成员变量存储在各自的内存区域中,成员方法多个对象共有的(各创建各的内存空间互不影响)。
在这里插入图片描述

多个对象指向相同的内存

当多个对象指向相同的内存,只要改变一次值,之后无论使用哪一个对象获取数据,都是修改后的数据(只是变量名不同,引用的是同一块内存空间的内容,首地址也一样)。
在这里插入图片描述

构造方法

格式

无参构造:pubic 类名(){}
有参构造:public 类名(double num,String str){this.num=num;this.str=str;}

与对象的关系

Java通过new关键字来调用构造方法,从而返回类的一个实例对象,是一种特殊的方法。

调用其他构造方法

在构造方法中调用其他的构造方法使用this(变量名);但是只能调用一次,且必须放在首位

注意事项

  1. 如果没有定义构造方法,系统将自动给定一个默认的构造方法。
  2. 如果定义一个带参构造方法,却没有定义无参构造方法,系统将不会给出无参构造方法,这时要使用无参构造方法就必须手动写出无参构造。
  3. 无论是否使用无参构造,都推荐将无参构造写出来

用途

带参的构造方法可以为成员变量进行初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值