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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘海陆 中级黑马   /  2013-4-16 14:51  /  3483 人查看  /  6 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘海陆 于 2013-4-17 17:09 编辑

比如,System.out.println()
out是字段,那么这个是怎么调用println方法的呢,  调用方法的格式应该是类名.方法名,中间这个out是干什么用的?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

6 个回复

倒序浏览
字段 可以理解为类中的成员变量或成员常量
查看API可以看到 public static final PrintStream out   out是PrintStream类的对象    所以System.out也就是PrintStream类的对象      println()是PrintStream类中的方法       所以就是System.out.println()

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
其实System是java.lang里面的一个类,
而out就是System里面的一个数据成员(也称为字段),但这个成员不是基本类,而是java.io.PrintStream类的对象。
被关键字static修饰的数据成员或方法可以直接通过“类名.数据成员”或“类名.方法”来引用,而无须先建立对象。所以System.out是应用了out这个静态数据成员。
而out又是一个java.io.PrintStream类的对象,所以out必然可以调用java.io.PrintStream类里面的方法,println()就是java.io.PrintStream类里的一个方法,它的作用就是用来想控制台输出信息的。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报

System是类,out是静态属性,System.out返回的是PrintStream类的实例,而在类PrintStream中有println()方法.
System.out 返回的是一个static PrintStream。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
谢谢大家,
回复 使用道具 举报
类相当于JAVA里面的一个类型,不要以为变量只有整型,字符串,浮点型这些,类也算是一种类型,所以这里的out其实是一个PrintStream类型,看API就明白.
而这个类里面就提供了println这个方法
package foo.bar;
class Out{ int x,y; void println()
{
System.out.println("你好啊.呵呵");
}
}
public class No1
{     Out out;//out是NO1类的成员变量,不过它是一个类类型的.
    public No1()  
   {     
     out=new Out();  
   }     
  public static void main(String[] args)
{     
  new No1().out.println();
}
}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
黄玉昆 黑马帝 2013-4-17 09:06:00
7#
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马