一个最简单的java程序,没有任何import 为什么还能System.out.println

一个最简单的java程序,没有任何import 为什么还能System.out.println?谢谢
public class test
{
public static void main(String[] args)
{
System.out.println("test");
}
}

 

 

让我们先了解一下,Java 的 package 到底有何用处。

  其实,package 名称就像是我们的姓,而 class 名称就像是我们的名字。package 名称有很多 . 的,就好像是复姓。比如说 java.lang.String,就是复姓 java.lang,名字为 String 的类别;java.io.InputStream 则是复姓
java.io,名字为 InputStream 的类别。

  Java 会使用 package 这种机制的原因也非常明显,就像我们取姓名一样,光是一间学校的同一届同学中,就有可能会出现不少同名的同学,如果不取姓的话,那学校在处理学生数据,或是同学彼此之间的称呼,就会发生很大的困扰。相同的,全世界的 Java 类别数量,恐怕比台湾人口还多,而且还不断的在成长当中,如果类别不使用套件名称,那在用到相同名称的不同类别时,就会产生极大的困扰。幸运的是,Java 的套件名称我们可以自己取,不像人的姓没有太大的选择 ( 所以有很多同名同姓的 ),如果依照 Sun 的规范来取套件名称,那理论上不同人所取的套件名称不会相同 ( 请参阅 "命名惯例"的相关文章 ),也就不会发生名称冲突的情况。

  可是问题来了,因为很多套件的名称非常的长,在写程序时,会多打好多字,花费不少时间,比如说:

  java.io.InputStream is = java.lang.System.in;
  java.io.InputStreamReader isr= new java.io.InputStreamReader(is);
  java.io.BufferedReader br = new java.io.BufferedReader(isr);

  实在是不美观又麻烦。于是,Sun 想了一个办法,就是 import。

  这个 import 就是在程序一开头的时候,先说明程序中会用到那些类别的
  简称,也就是只称呼名字,不称呼他的姓。首先,在档案开头写:

  import java.lang.System;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.io.BufferedReader;

  这几行说明了这四个姓名的类别,在程序中只用他的名字来称呼,所以当程序中提到 System 就是指 java.lang.System,而 InputStream 就是指 java.io.InputStream,依此类推。于是原来的程序就变成:

  InputStream = System.in;
  InputStreamReader isr = new InputStreamReader(is);
  BufferedReader br = new BufferedReader(isr);

  这样看起来是不是清爽多了呢?如果这些类别用的次数很多,那就更能体会到import 的好处了。可是这样还是不够,因为懒是人的天性,还是会有人觉得打太多 import 了也很浪费时间,于是 Sun 又提供了一个方法:

  import java.lang.*;
  import java.io.*;

  意思就是,等一下程序中提到的没有姓名的类别,不是姓 java.lang,就是姓java.io,如果这两个里面有同样名字的类别,而不幸的你又只用名字称呼这个类别,那编译器仍然会跟你抱怨,因为它还是不知道你说的这个类别指那一
个姓的类别。那可不可以再懒一点呢,只写:

  import java.*;

  历史告诉我们,人可以懒,但不能太懒,这样是不行的。因为那些类别是姓 java.io 而不是姓 java。就像姓『诸葛』的人应该不会喜欢你称他为『诸』先生吧。

  为甚么我一开始说 import 跟 #include 不同呢?因为 import 的功能到此为止,它不像 #include 一样,会将档案内容载入进来。import 只是请编译器帮你打字,让编译器把没有姓的类别加上姓,并不会把别的文件的程式码写进来。如果你想练习打字,可以不要使用 import,只要在用到类别的时候,用它的全部姓名来称呼它就行了(就像例子一开始那样),跟使用 import 完全没有甚么两样。

  另外,虽然人不可以太懒,但是 Sun 还是帮我们多偷了一点懒。因为java.lang 这个套件实在是太常太常太常用到了,几乎没有程序不用它的,所以不管你有没有写 import java.lang;,编译器都会自动帮你补上,也就是说编译器只要看到没有姓的类别,它就会自动去 java.lang 里面找找看,看这个类别是不是属于这个套件的。所以我们就不用特别去
import java.lang 了。
而System.out.println在import java.lang 里

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java中,可以使用JTextArea组件作为代码信息的实时输出结果,类似于System.out.println。JTextArea是一个多行文本框,可以用于显示和编辑文本。 以下是一个简单的示例代码,演示如何使用JTextArea来实时输出代码信息: ```java import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; public class OutputWindow extends JFrame { private JTextArea textArea; public OutputWindow() { setTitle("Output Window"); setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); textArea = new JTextArea(); textArea.setEditable(false); JScrollPane scrollPane = new JScrollPane(textArea); add(scrollPane); } public void appendText(String text) { textArea.append(text + "\n"); textArea.setCaretPosition(textArea.getDocument().getLength()); } } ``` 在上述代码中,我们创建了一个名为OutputWindow的JFrame窗口,并在其中添加了一个JTextArea组件来显示输出信息。`appendText()`方法用于将文本追加到JTextArea中,并自动滚动到最后一行。 然后,在你的代码中,你可以通过创建OutputWindow实例,并在需要输出信息的地方调用`appendText()`方法来实时显示输出结果。 ```java public class Main { public static void main(String[] args) { OutputWindow outputWindow = new OutputWindow(); outputWindow.setVisible(true); // 示例输出 outputWindow.appendText("Hello, World!"); outputWindow.appendText("This is a test message."); } } ``` 当你运行上述代码时,你将看到输出窗口显示"Hello, World!"和"This is a test message.",这些信息是通过调用`appendText()`方法实时添加到JTextArea中的。 请注意,上述代码只是一个简单的示例,你可以根据你的需求进行扩展和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值