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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 格子、 于 2014-8-27 07:42 编辑

静态的方法就是不需要将类实例化就可以直接使用类名调用到方法或者属性。而非静态的就需要将此类实例化之后才能够调用到方法或者属性。

  1. public class Test {
  2.         static String staticstr = "静态的变量";
  3.         String str = "非静态的变量";
  4.         public static void test1(){
  5.                 System.out.println("静态方法");
  6.         }
  7.         public void test2(){
  8.                 System.out.println("非静态的方法");
  9.         }
  10. }
  11. class Run{
  12.         public static void main(String[] args) {
  13.                 Test.test1();//无需实例化就可以调用到方法
  14.                 System.out.println(Test.staticstr);
  15.                 Test test = new Test();
  16.                 test.test2();//需要实例化之后才能够调用的得到
  17.                 System.out.println(test.str);
  18.         }
  19. }

  20. 静态的方法一般的可以直接调用:class  A{
  21. public static String ss(){ return "bbbb";};
  22. }
  23. class B{
  24. public String aa(){
  25.    return A.ss();
  26. }
  27. }
  28. 而非静态的方法需要new 一个对象:
  29. class A{
  30. public String ss(){
  31. return "bbbb";
  32. }
  33. }
  34. class B{
  35. public String aa(){
  36.    A a=new A();
  37.   return a.ss();
  38. }
  39. }
复制代码


评分

参与人数 1黑马币 +5 收起 理由
格子、 + 5 其中还有不少细节哦,毕老师很详细的讲过.

查看全部评分

5 个回复

倒序浏览
没关键字提示 经常看串行……
回复 使用道具 举报
“public class Test{ }”这个类,前面为什么要加上权限呢?新人:lol,楼主解释一下
回复 使用道具 举报
养成加注释的习惯吧。。
回复 使用道具 举报
陈永赛 发表于 2014-8-26 18:07
“public class Test{ }”这个类,前面为什么要加上权限呢?新人,楼主解释一下 ...

可以不加的,不加了就代表那是一个default(这个单词是默认的意思),default类只可被同一个包内部和类访问,如果是public类(一切公开:加了这个词就不怕有些情况访问不到,比如在另一个包有一个它的子类,不加public子类就不能访问它了)可以在任意地方被访问{:3_57:}
回复 使用道具 举报
小子考驾照 发表于 2014-8-27 09:25
可以不加的,不加了就代表那是一个default(这个单词是默认的意思),default类只可被同一个包内部和类访 ...

哦,了解,学习了···
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马