A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张建峰 初级黑马   /  2012-6-21 23:35  /  2709 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张建峰 于 2012-6-23 19:48 编辑

新手,学到基础第五天的时候,发现毕老师的写的代码,刚开始public static void Person()...,后来public void Person()...,再后来直接Person()...知道后面的是构造函数,可是还是似懂非懂……
哪位高手能详细易懂地讲解一下区别啊

10 个回复

倒序浏览
其实这个没有必要纠结,慢慢看吧,到后面自然会了解的,多看几遍就好了
回复 使用道具 举报
public static void
public:代表访问权限;其它访问权限还有private,protected(默认的,即什么也不写就是它了)
static:代表是静态的,即类加载到内存时它所修饰的方法、变量等也跟着加载到内存中了。
void:代表没有任何返回值。
回复 使用道具 举报
public static void Person()  这是定义一个方法,
第一 public 修饰符是可以省略的,是对该方法的使用范围也就是权限进行标示,如果是省略的情况下系统会默认一个修饰符,
在普通类中如果不写public  如 void method()     那么默认为 friendly
在接口中定义的方法  如 void method();    那么默认就是 public abstract   接口中定义的属性 是public static final

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

回复 使用道具 举报
public static void Person() {  ... };  //静态方法
        public void Boy()  {  ...  } ;   //非静态方法
........

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

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

static只和定义它的类有关而和定义它的类的实例对象无关。
类在加载时,这些static可以和类一起加载。
静态方法内部不能有非静态方法,而非静态方法内是可以用静态方法
回复 使用道具 举报
public static void Person(){......}//静态的方法
public void Person(){.......}//非静态方法
Person()//方法调用
回复 使用道具 举报
韦念欣 黑马帝 2012-6-22 00:22:27
7#
无参数无返回值的静态方法,不需要new对象即可直接通过类名调用,一般工具类的方法都是静态方法
public static void Person()

……


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

……


这个是构造函数
public Person()

……


楼主写代码多了就会深刻明白了,加油哦!
回复 使用道具 举报
杨康 发表于 2012-6-21 23:56
public static void
public:代表访问权限;其它访问权限还有private,protected(默认的,即什么也不写就是 ...

下面说的 默认的怎么和你的不一样啊
回复 使用道具 举报
杨康 中级黑马 2012-6-22 10:36:10
9#
张建峰 发表于 2012-6-22 10:29
下面说的 默认的怎么和你的不一样啊

不好意思我写错了,protected是代表子类继承父类才可以访问。默认的是friendly
回复 使用道具 举报
public static void Person(){}这是一个公共的静态方法块,可以被所有的对象所使用,而添加 了static之后,可以不需要创建对象直接通过类名.Person()的方式调用这方法
public void Person(){}这是一个非静态的方法块,调用这个方法,只能通过创建对象的方式去调用
public  Person(){} 这是一个构造函数,在创建对象时进行对对象的初始化,如果你没有创建任何构造函数,会自动帮你创建一个不带任何参数的构造函数public  Person(){}
回复 使用道具 举报
今天看了第六天,老师详细讲解了主函数中的各个词,static关键字,对这些有所了解了,还在学习中,谢谢大家的帮助。加油!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马