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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

分析程序看有没有问题,如果有,说出原因
1、这个编译时通过的
  1. public class Something {
  2.    public static void main(String[] args) {
  3.        Other o = new Other();
  4.        new Something().addOne(o);
  5.    }
  6.    public void addOne(final Other o) {
  7.        o.i++;
  8.    }
  9. }
  10. class Other {
  11.    public int i;
  12. }
复制代码

2、无法从静态上下文中引用非静态 方法 doSomething()
  1. public class Something {
  2.      public static void main(String[] args) {
  3.         Something s = new Something();
  4.         System.out.println("s.doSomething() returns " + doSomething());
  5.     }
  6.      public String doSomething() {
  7.         return "Do something ...";
  8.     }
  9. }
复制代码

1和2,单单第2个看还是看的懂得,但是加上1就把我看蒙了,1里面的addOne()又不是静态的为啥能用
3、
  1. //此处,Something类的文件名叫OtherThing.java
  2. class Something {
  3.     private static void main(String[] something_to_do) {        
  4.         System.out.println("Do something ...");
  5.     }
  6. }
复制代码

3、这个这真心不理解,这题考得不会就是private要改成public吧?那(此处,Something类的文件名叫OtherThing.java)这句话有啥意义,还是我想多了

1 个回复

倒序浏览
第一个想明白了静态要调用非静态,要先创建对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马