黑马程序员技术交流社区

标题: java中这样的声明是什么含义 [打印本页]

作者: 月时微    时间: 2013-6-17 19:37
标题: java中这样的声明是什么含义
public class A
{
       public static A add(){}
}

public static  A add();是说返回值是静态的类对象,又是公用的?
这样用有什么目的?
作者: 冷月    时间: 2013-6-17 20:01
因为是静态方法,所以调用的时候当然就是A.add();定义为public了,返回值是A类的对象,应该就是这样设计的吧,A a = A.add();
作者: 王磊    时间: 2013-6-17 20:12
public class A
{
       public static A add(){}
}
static是为了使该成员在类加载的时候就存在,并单独存放在方法区。多一种类名的调用方式,就可以直接用类名调用的固定格式来使用这个方法,而不需要在堆内存中创建个对象去使用这个方法,这样看来设置成static后就比通过创建对象再去调用方法快些,而且节省空间,因为方法是独立存储的。

但是也有不好的地方,就是不管调不调用这个方法,它都在方法区里呆着,生命周期太长。所以根据情况酌情选择吧。

个人理解
作者: 孔雀东南飞    时间: 2013-6-17 20:19
public class A
{
       public static A add(){}//方法add,访问权限是public,该函数是静态的static,方法的返回值类型是A 。
}

作者: 张承富    时间: 2013-6-17 20:34
这个是单例模式中的方法,先理解下单例模式就明白了

单例(Singleton)模式:单例模式确保某一个类只有一个实例,而且该类只能是自己实例化自己并向其他类公开这个实例的对象创建模式
    采用单例模式的类:根据单例模式知道其要满足以下三点
    1. 确保某一个类只有一个实例
    2. 而且自己实例化
    3. 并向其他类提供这个实例类
作者: 孙百鑫    时间: 2013-6-22 01:52
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2