黑马程序员技术交流社区

标题: 静态方法和非静态方法如何区别和定义 [打印本页]

作者: 小子考驾照    时间: 2014-8-26 14:44
标题: 静态方法和非静态方法如何区别和定义
本帖最后由 格子、 于 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. }
复制代码



作者: king13131313    时间: 2014-8-26 14:55
没关键字提示 经常看串行……
作者: 陈永赛    时间: 2014-8-26 18:07
“public class Test{ }”这个类,前面为什么要加上权限呢?新人:lol,楼主解释一下
作者: 杨列振    时间: 2014-8-26 23:37
养成加注释的习惯吧。。
作者: 小子考驾照    时间: 2014-8-27 09:25
陈永赛 发表于 2014-8-26 18:07
“public class Test{ }”这个类,前面为什么要加上权限呢?新人,楼主解释一下 ...

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

哦,了解,学习了···




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