zoukankan      html  css  js  c++  java
  • 类和对象系列教材 (一)- 什么是Java中的引用?

    引用的概念,如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用。

    步骤1:引用和指向
    步骤2:多个引用,一个对象
    步骤3:一个引用,多个对象
    步骤4:练习-引用
    步骤5:答案-引用

    步骤 1 : 引用和指向

    new Hero();


    代表创建了一个Hero对象
    但是也仅仅是创建了一个对象,没有办法访问它
    为了访问这个对象,会使用引用代表这个对象

    Hero h = new Hero();


    h这个变量是Hero类型,又叫做引用
    =的意思指的h这个引用代表右侧创建的对象
    代表” 在面向对象里,又叫做“指向

    引用和指向

    public class Hero {

          

        String name; //姓名

          

        float hp; //血量

          

        float armor; //护甲

          

        int moveSpeed; //移动速度

          

        public static void main(String[] args) {

            //创建一个对象

            new Hero();

             

            //使用一个引用来指向这个对象

            Hero h = new Hero();

             

        }   

          

    }

    步骤 2 : 多个引用,一个对象

    引用有多个,但是对象只有一个。
    在这个例子里,所有引用都指向了同一个对象。
    对象就像 "房产", 引用就像"房产证"
    房产证的复印件可以有多张,但是真正的"房产" 只有这么一处

    多个引用,一个对象

    public class Hero {

          

        String name; //姓名

          

        float hp; //血量

          

        float armor; //护甲

          

        int moveSpeed; //移动速度

          

        public static void main(String[] args) {

             

            //使用一个引用来指向这个对象

            Hero h1 = new Hero();

            Hero h2 = h1;  //h2指向h1所指向的对象

            Hero h3 = h1;

            Hero h4 = h1;

            Hero h5 = h4;

             

            //h1,h2,h3,h4,h5 五个引用,都指向同一个对象

             

        }   

          

    }

    步骤 3 : 一个引用,多个对象

    第8行,引用garen指向新创建的对象(对象1)
    第9行,同一个引用garen指向新创建的对象(对象2)
    这个时候,对象1,就没有任何引用指向了
    换句话说,就没有任何手段控制和访问该对象,那么该对象就变得没有意义。

    一个引用,多个对象

    package charactor;

    public class Hero {

        public String name; 

        protected float hp; 

        public static void main(String[] args) {

               Hero garen =  new Hero();

               garen =  new Hero();

        }

    }


    更多内容,点击了解: https://how2j.cn?p=61135

  • 相关阅读:
    Unity3d中的属性(Attributes)整理【转载】
    在Unity里面使MMD动起来吧【2】
    在Unity里面使MMD动起来吧【1】
    Unity代码混淆方案
    萌舞Android版Unity笔记整理
    c#实现16进制和字符串之间转换的代码
    关于sqlite3使用top的一些规则总结
    【转】UniSky入门资料
    【转】.NET 产品版权保护方案 (.NET源码加密保护)
    百度云管家下载出错解决思路记录
  • 原文地址:https://www.cnblogs.com/Lanht/p/12615582.html
Copyright © 2011-2022 走看看