java中如何理解类与对象,及局部变量和成员变量的区别

java中如何理解类与对象,及局部变量和成员变量的区别

首先什么是对象呢?可谓是万物皆对象,对象是客观存在的事物,可以说任何客观存在的都是可以成为对象,一台电脑,一直钢笔,一个人,一辆轿车等等,都是可以成为对象。

那么什么是类呢?类是对象的模子,具有相同属性和方法的一组对象的集合,类是不存在的,是用来描述对象信息。在计算机的世界里面,计算机关注的事数据信息,我们描述数据信息的时候一定要要描述数据类型,对象就是具体的数据信息,类是信息的数据类型。

对象的属性和方法分别表示什么呢?属性是表示对象有什么,方法是表示对象能干什么。

在类中定义的变量是成员变量,成员变量又称为静态变量和实例变量,静态变量是用static修饰的变量,实例变量也成为是对象变量,类变量,通过对象的引用来访问实例变量。

在方法中定义的变量是局部变量,他们只存在在{}之间,无法再{之外进行一些操作,比如读取数据,赋值等等。

//2019,10月20日。今天看了一个更加通俗的理解:

简单说下类和对象。

以 LOL 为例。

首先,比如 lol 中的英雄,它就是一个类。因为所有的英雄都有对应的属性。例如:

public class Hero {
    String name; //名字
    int attackDamage; //物理攻击
    int abilityPower; //法术强度
    int armor; //护甲
    int magicResistance; //魔抗
    float attackSpeed; //攻击速度
    int cooldownReduction; //冷却缩减
    int criticalStrike; //暴击率
    int moveSpeed; //移动速度
    int hp; //血量
    int mp; //蓝量
}

除了属性,英雄还有行为。比如拆塔,坑队友,K头,跳舞等。

public class Hero {
    public void DestroyTower(){
        System.out.println("正在拆塔");
    }
    public void Keng(){
        System.out.println("坑了一下队友");
    }
    public void Kb(){
        System.out.println("抢到了一个人头");
    }
    public void Dance(){
        System.out.println("正在跳舞");
    }
}

对象就是指具体的英雄,比如德玛(garen)。就可以在 main 方法中 new 一个对象。

public static void main(String[] args) {
    Hero garen = new Hero();
    garen.name = "盖伦";
    garen.attackDamage = 71;
    garen.abilityPower = 0;
    garen.armor = 36;
    garen.magicResistance = 32;
    garen.attackSpeed = 0.69f;
    garen.cooldownReduction = 0;
    garen.criticalStrike = 0;
    garen.moveSpeed = 350;
    garen.hp = 600;
    garen.mp = 0;
}

 

 

成员变量和局部变量有什么区别?

成员变量和局部变量的区别:

                  1.位置不一样:

                          成员变量:类中,方法外

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

                  2.在内存中的位置不一样

                          成员变量:堆内存

                          局部变量:栈内存

                  3.生命周期不一样:

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

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

                  4.初始化值得问题

                          成员变量:有默认值。String null, dobule 0.0  int 0

                          局部变量: 没有默认值,必须先定义,再赋值,然后才可以使用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114839.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 说明电磁型继电器的工作原理_永磁继电器工作原理

    说明电磁型继电器的工作原理_永磁继电器工作原理原文地址点击这里:电磁继电器(electromagneticrelay)是一种电子控制器件,它具有控制系统(输入回路)和被控制系统(输出回路),通常应用于自动控制电路中,它是用较小的电流、较低的电

    2022年8月1日
    8
  • Android P Preview1 兼容要点[通俗易懂]

    AndroidPPreview1,昨天3.8发布,兼容Preview1主要改下targetSdkVersion=28compileSdkVersion为前一个版本(比如27)在AndroidStudio3.2下能完整支持AndroidPPreview1AndroidPPreview1要点1.1约束调用非API接口:比如用JNI、反射来调用一下系统类、方法    Android…

    2022年4月15日
    45
  • oc深坑測试题及其答案[通俗易懂]

    oc深坑測试题及其答案

    2022年1月22日
    35
  • Python创建微信机器人「建议收藏」

    Python创建微信机器人「建议收藏」微信,一个日活10亿的超级app,不仅在国内社交独领风骚,在国外社交也同样占有一席之地,今天我们要将便是如何用Python来生成一个微信机器人,突然想起鲁迅先生曾经说过的一句话:因为是微信机器人系列的第一篇文章,所以猪哥会特别详细的讲解每一地方,尽量使每一位想学习的同学都能顺顺利利的开始,下面就让我们一起来做些有趣的事吧!一、项目介绍1.微信库选择python关于开发微信的库主要有it…

    2022年4月19日
    283
  • 白帽子讲web安全 pdf_白帽子讲web安全适合初学者看吗

    白帽子讲web安全 pdf_白帽子讲web安全适合初学者看吗第一篇:世界观安全第一章:我的安全世界观一个网站的数据库,在没有任何保护的情况下,数据库服务端口是允许任何人随意连接的;在有了防火墙的保护后,通过ACL可以控制只允许信任来源的访问。这些措施在很大程度上保证了系统软件处于信任边界之内,从而杜绝了绝大部分的攻击来源。1.1.3Web安全的兴起常见攻击:SQL注入,XSS(跨站脚本攻击)“破坏往往比建设容易”,但凡事都不是绝对的。一般来说,白帽子选择的方

    2022年9月15日
    3
  • plc程序设计实例_plc简单应用实例100例

    plc程序设计实例_plc简单应用实例100例一、三相异步电动机的降压启动控制1、三相异步电动机的Y-△降压启动控制将三相异步电动机的Y-△降压启动的继电接触器控制改造为PLC控制系统.(1)确定I/O信号、画PLC的外部接线图(a)主电路(b)PLC的I/O接线图电动机的Y-△降压启动的接线图(2)设计三相异步电动机的Y-△降压启动梯形图电动机的Y-△降压启动控制的梯形图2.三相异步电动机的串自耦变压器降压启动控制将串自耦变压器降压启动的继电接触器控制改造为PLC控制系统:(1)确定I/O信号

    2025年9月6日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号