永发信息网

java中的return this问题

答案:5  悬赏:60  手机版
解决时间 2021-04-27 16:48
return this ;大家都知道,这是返回当前对象引用,我就很郁闷,这个有什么好返回的,返回给谁???假设返回给A,那A为什么不用前面创建对象的变量直接去访问,???
最佳答案

返回当前类实例...


相当于new了

全部回答

一般来说 进行链式编程的时候会用到return this这类的用法 至于在你的代码 完全是没有意义的

这个有点类似单列模式:单例模式就是某个类只存在一个对象(只new 一次),当某个类的初始化比较耗时,耗资源的时候,比如加载某些配置文件hibernate,spring的配置文件等,一般会选择单例模式。

一、懒汉式单例 在类被加载的时候,唯一实例已经被创建。这个设计模式在Java中容易实现,在别的语言中难以实现。 public class LazySingleton {        private static LazySingleton m_intance=null;        private LazySingleton(){    }        synchronized public static LazySingleton getInstance(){    if(m_intance==null){    m_intance=new LazySingleton();    }    return m_intance;    } } 二、饿汉式单例 在类加载的时候不创建单例实例。只有在第一次请求实例的时候的时候创建,并且只在第一次创建后,以后不再创建该类的实例。 public class EagerSingleton {        private static final EagerSingleton m_instance = new EagerSingleton();        private EagerSingleton() {    }        public static EagerSingleton getInstance() {    return m_instance;    } } 三、登记式单例 这个单例实际上维护的是一组单例类的实例,将这些实例存放在一个Map(登记薄)中,对于已经登记过的实例,则从工厂直接返回,对于没有登记的,则先登记,而后返回。 public class RegSingleton {        private static Map<String, RegSingleton> m_registry = new HashMap();    //在类加载的时候添加一个实例到登记薄    static {    RegSingleton x = new RegSingleton();    m_registry.put(x.getClass().getName(), x);    }        protected RegSingleton() {    }        public static RegSingleton getInstance(String name) {    if (name == null) {    name = "RegSingleton";    }    if (m_registry.get(name) == null) {    try {    m_registry.put(name, (RegSingleton) Class.forName(name).newInstance());    } catch (InstantiationException e) {    e.printStackTrace();    } catch (IllegalAccessException e) {    e.printStackTrace();    } catch (ClassNotFoundException e) {    e.printStackTrace();    }    }    return m_registry.get(name);    }        public String about() {    return "Hello,I am RegSingleton!";    } }

  x.increment();  返回自身

也就是说 x.increment()==x

比如你要连续调用 2次increment()

一般的写法是

 x.increment(); 

 x.increment();

但是因为方法返回自身的引用

所以可以这样写

  x.increment().increment();

好好体会一下this的妙用

这个问题就奇怪了,比如你吃饭有时用勺子用时要用筷子一样。如果A是一个私有类,在B中要用到A的属性this就有用了,通过构造器
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
诺基亚5320充电时显示未充电什么意思
五月份想婚纱照,有什么有特点的外景推荐吗
cs demo怎么播放,请高手指点!
这种情况,该怎么办?
KOF模拟器可以进行局域网连接对战吗
介绍点好听的音乐给我听听啊
地下城猫妖卡片值多少钱
DNF圣骑怎么加点?
什么的瓶子,词语
新车过户后有什么影响
《建国大业好》看吗?
我老公晚上出虚汗是怎么回事
“一只闹钟,一昼夜差不过正负12秒”的含义是
什么游戏充100元左右就可以装备很强的游戏
不知大S是故意呢还是真傻
推荐资讯
世界上最恐怖的生物是什么?
推荐好看的言情书
产后几个月会来月经
有什么场面宏大的小说?
奇瑞QQ6怎么样?
中宏物业服务有限公司怎么去啊,有知道地址的
有什么好看的LES电影啊?
谁有非主流摆心形手势的头像?给我点儿,谢谢
九月初什么星座,2001年的阴历九月初五是阳历
CF为什么更新不了
初中一道化学题
苍南县龙港镇朝北处村民委员会怎么去啊,有知
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?