类与对象详解

类与对象
什么是类?

类: 是一组相关【属性】和【行为】的集合.可以把类看成一类事物的模板,使用事物的属性特征和行为

特征来描述该类事物.

现实中,描述一类事物:

属性:描述该类事物的一种【状态】信息.

行为:描述该类事物具备的功能,能够做什么.

什么是对象?

对象:就是一类事物的具体的体现.对象是类的一个【实例】,必然具备该类事物的属性特征和行为特征.

类与对象的关系

​ 类是对一类事物的描述,是【抽象的】。

​ 对象是一类事物的实例,是【具体的】。

​ 类是对象的模板,对象是类的实体。

类的定义
事物与类的对比

​ 现实中的一类事物:

​ 属性:事物的状态信息

​ 行为:事物能够做什么,具备的功能

​ Java中的类描述事物也是如此:

​ 成员变量:对应事物的属性

​ 成员方法:对应事物的行为

类的定义格式
public class ClassName(){
// 成员变量
// 成员方法
}

定义类:定义类的成员,包括成员变量和成员方法

成员变量:和之前定义变量的格式一模一样,只不过位置不同,变量定义在类中,方法外

成员方法:和之前定义的方法几乎是一样的,只不过去掉【static】

对象的使用
对象的使用格式:

​ 对象创建的格式:

类名 对象名 = new 类名();

​ 使用对象访问类的成员信息:

对象名.成员变量名
对象名.成员方法名

成员变量的默认值

数据类型默认值
基本类型整数(byte short int long)0
浮点类型(float double)0.0
字符型(char)“\u0000”
布尔类型(Boolean)false
引用类型数组 类 接口null

备注:方法内定义的变量没有初始化,不能被使用

如果成员变量没有进行赋值,系统会自动给一个默认值,规则和数组是一样的.

对象的内存图解

一个对象,调用一个方法内存图解
在这里插入图片描述

备注:在栈内存当中运行的方法,遵循"先进后出,后进显出的原则",此时变量phone指向堆内存当中的空间,寻找方法信息,执行该方法

两个对象,调用同一方法内存图解

对象调用方法时,根据对象当中方法标记(地址值),去类中寻找方法信息,这样哪怕是多个对象,方法信息只保存一份,节约内存空间

成员变量局部变量的区别

变量根据定义的【位置不同】,我们给变量起了不同的名字

public class People(){
    String name = "小明";//成员变量
    public void eat(){
        String food = "鸡蛋捞面" // 局部变量
            System.out.println(name + "中午吃的是:" + food)
    }
}
  • 在类中定义的位置不同【重点】

    ​ 成员变量:类中、方法外

    ​ 局部变量:方法中或者方法声明上(形式参数)

  • 作用范围不同【重点】

    ​ 成员变量:类中

    ​ 局部变量:方法中

  • 初始值不同【重点】

    ​ 成员变量:有默认值

    ​ 局部变量:没有默认值,必须先定义赋值,才能使用

  • 在内存当中存储的位置不同

    成员变量:堆内存当中

    局部变量:栈内存当中

  • 生命周期不同

    成员变量:随着对象的创建而存在,随着对象的消失而消失

    局部变量:随着方法的调用而存在,随着方法调用结束而消失

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值