黑马程序员技术交流社区

标题: System类中的字段是什么意思 [打印本页]

作者: 刘海陆    时间: 2013-4-16 14:51
标题: System类中的字段是什么意思
本帖最后由 刘海陆 于 2013-4-17 17:09 编辑

比如,System.out.println()
out是字段,那么这个是怎么调用println方法的呢,  调用方法的格式应该是类名.方法名,中间这个out是干什么用的?
作者: 沈浩    时间: 2013-4-16 15:22
字段 可以理解为类中的成员变量或成员常量
查看API可以看到 public static final PrintStream out   out是PrintStream类的对象    所以System.out也就是PrintStream类的对象      println()是PrintStream类中的方法       所以就是System.out.println()
作者: 艾萱    时间: 2013-4-16 15:28
其实System是java.lang里面的一个类,
而out就是System里面的一个数据成员(也称为字段),但这个成员不是基本类,而是java.io.PrintStream类的对象。
被关键字static修饰的数据成员或方法可以直接通过“类名.数据成员”或“类名.方法”来引用,而无须先建立对象。所以System.out是应用了out这个静态数据成员。
而out又是一个java.io.PrintStream类的对象,所以out必然可以调用java.io.PrintStream类里面的方法,println()就是java.io.PrintStream类里的一个方法,它的作用就是用来想控制台输出信息的。
作者: 史庆宇    时间: 2013-4-16 15:34

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

作者: 刘海陆    时间: 2013-4-16 19:02
谢谢大家,
作者: 645420297    时间: 2013-4-16 22:50
类相当于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();
}
}
作者: 黄玉昆    时间: 2013-4-17 09:06
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢




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