黑马程序员技术交流社区

标题: 关于有没有public static的问题 [打印本页]

作者: 张建峰    时间: 2012-6-21 23:35
标题: 关于有没有public static的问题
本帖最后由 张建峰 于 2012-6-23 19:48 编辑

新手,学到基础第五天的时候,发现毕老师的写的代码,刚开始public static void Person()...,后来public void Person()...,再后来直接Person()...知道后面的是构造函数,可是还是似懂非懂……
哪位高手能详细易懂地讲解一下区别啊
作者: 钟成军    时间: 2012-6-21 23:52
其实这个没有必要纠结,慢慢看吧,到后面自然会了解的,多看几遍就好了
作者: 杨康    时间: 2012-6-21 23:56
public static void
public:代表访问权限;其它访问权限还有private,protected(默认的,即什么也不写就是它了)
static:代表是静态的,即类加载到内存时它所修饰的方法、变量等也跟着加载到内存中了。
void:代表没有任何返回值。
作者: 吴小东    时间: 2012-6-22 00:01
public static void Person()  这是定义一个方法,
第一 public 修饰符是可以省略的,是对该方法的使用范围也就是权限进行标示,如果是省略的情况下系统会默认一个修饰符,
在普通类中如果不写public  如 void method()     那么默认为 friendly
在接口中定义的方法  如 void method();    那么默认就是 public abstract   接口中定义的属性 是public static final

第二 静态标示符 static 在你需要对该方法或者属性进行静态标示的时候就加上 static 标示符
最后 void 是返回值类型和方法名 method(),这两个是必须要有的。


作者: 王涛    时间: 2012-6-22 00:03
public static void Person() {  ... };  //静态方法
        public void Boy()  {  ...  } ;   //非静态方法
........

当你定义了一个类,如果里面的方法或变量定义为static的,那么该方法或函数对于该类的对象只有一个,因此可以用类名来引用并访问,比如Work.Person()

而非静态的方法或变量,你是必须创建一个该类的新的对象的,比如上面的非静态方法,就必须用new Work().Boy( )

static只和定义它的类有关而和定义它的类的实例对象无关。
类在加载时,这些static可以和类一起加载。
静态方法内部不能有非静态方法,而非静态方法内是可以用静态方法

作者: 张华廷    时间: 2012-6-22 00:09
public static void Person(){......}//静态的方法
public void Person(){.......}//非静态方法
Person()//方法调用
作者: 韦念欣    时间: 2012-6-22 00:22
无参数无返回值的静态方法,不需要new对象即可直接通过类名调用,一般工具类的方法都是静态方法
public static void Person()

……


无参数无返回值的一般方法,需要new对象才能使用。
public void Person()

……


这个是构造函数
public Person()

……


楼主写代码多了就会深刻明白了,加油哦!
作者: 张建峰    时间: 2012-6-22 10:29
杨康 发表于 2012-6-21 23:56
public static void
public:代表访问权限;其它访问权限还有private,protected(默认的,即什么也不写就是 ...

下面说的 默认的怎么和你的不一样啊
作者: 杨康    时间: 2012-6-22 10:36
张建峰 发表于 2012-6-22 10:29
下面说的 默认的怎么和你的不一样啊

不好意思我写错了,protected是代表子类继承父类才可以访问。默认的是friendly
作者: 山水游客    时间: 2012-6-22 11:01
public static void Person(){}这是一个公共的静态方法块,可以被所有的对象所使用,而添加 了static之后,可以不需要创建对象直接通过类名.Person()的方式调用这方法
public void Person(){}这是一个非静态的方法块,调用这个方法,只能通过创建对象的方式去调用
public  Person(){} 这是一个构造函数,在创建对象时进行对对象的初始化,如果你没有创建任何构造函数,会自动帮你创建一个不带任何参数的构造函数public  Person(){}
作者: 张建峰    时间: 2012-6-23 19:47
今天看了第六天,老师详细讲解了主函数中的各个词,static关键字,对这些有所了解了,还在学习中,谢谢大家的帮助。加油!




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