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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 何拴绪 于 2012-6-4 01:52 编辑

我在代码中导入了out这个字段,为什么在做输出时还要加out才可以调用print方法,
简单的代码:
  1. import static java.lang.System.out;//导入out字段
  2. public class StaticImport {

  3.         public static void main(String[] args) {
  4.                 out.print(max(10,-9));//求最大值
  5.                 out.print(abs(10-20));//求绝对值
  6.         }
  7. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 黑马张扬 于 2012-6-4 00:25 编辑

导入了out字段后 你就可以直接使用 而不用写类名System了
print()方法他不是个静态方法  是需要out来调用的
回复 使用道具 举报
因为你导入的本来就是out这个字段,只是这个字段还有可调用的方法;   就像:import java.util.Arrays; 一样,  调用:Arrays.asList(Object obj) ;            这兄弟  洗洗睡吧!!
回复 使用道具 举报
我不知道LZ是不是意思是import static java.lang.System.out导入了此包,就可以直接print()输出,前面不用out调用。实际上是不行的,因为你虽然导入了包,包中也有很多方法,但是你必须通过out对象来调用方法,方法本身是不能独立运行的。
比如如下代码
//导入Scanner包,接收从键盘输入
import java.util.Scanner;

public class Scan {

        /**
         * @param args
         */
        public static void main(String[] args) {
                //通过定义一个scan对象来调用Scanner中的方法
                Scanner scan = new Scanner(System.in);

                System.out.println("请输入你的姓名:");
                //调用next(String pattern)方法来传递字符串参数
                String name = scan.next();
                System.out.println("你的姓名是:" + name);
               
                System.out.println("请输入你的年龄:");
                //通过调用nextInt()方法来传递整数
                int age = scan.nextInt();
                System.out.println("你的年龄是:" + age);

        }

}
代码中通过定义scan对象来调用java.util.Scanner中的各种方法,本身并不能直接next() 或者nextInt()。

就好比如你身上带着钱去超市买东西。你import.java.XXX就好比身上带着钱进了超市,钱本身具有购买的功能或者购买的方法,但是钱不会自己去买。所以需要人带着钱去超市购买。人就相当于程序中的对象,用钱买东西的过程就相当于对象调用类中的各种方法。

不知道我这样理解对不对,如果有什么问题欢迎大家指正。

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

回复 使用道具 举报
金鑫 发表于 2012-6-4 00:57
我不知道LZ是不是意思是import static java.lang.System.out导入了此包,就可以直接print()输出,前面不用o ...

不好意思我理解有误、明白了,
回复 使用道具 举报
{:soso_e113:}不客气,大家一起交流,共同进步
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马