发新话题

老紫竹JAVA基础培训(1)认识HelloWorld程序

先看代码:
E:\javalession\base\src\lession1\HelloWorld.java

// package 影响到你的类存储目录和访问方式
package lession1;

// public 要求你的文件名必须和类名相同
// 一个文件里最多有一个public类,允许没有
public class HelloWorld {

  // 这个是应用程序的入口,我们以能运行为标准讨论
  // 必须是public的
  // 必须是 static 的
  // 可以用 final 修饰符
  // 返回值必须是 void
  // 参数必须是字符串数组,String args[] 这样写也可以
  // args纯粹是习惯,可以用任何变量的名字
  // main方法里允许抛出异常,我在后面给一个修改后的代码
  public static void main(String[] args) {
    // System类属于java.lang,是唯一可以不用import的package
    // out是标准输出
    // println 是在标准输出打印字符串,且末尾换行
    // 参数是一个字符串
    System.out.println("Hello World!");
  }
}


注意:
  • 一定要有一个lession1目录,然后把HelloWord.java保存在里面。
  • 注意文件名区分大小写的,一定要是HelloWorld.java

请尝试如下的情况对代码的影响,记得每次尝试后,恢复原始版本哦
  • 去掉类的public 然后编译
  • 将类名HelloWorld改成 helloWorld 然后编译看看
  • 把文件名改成 helloWorld.java 然后编译看看
  • 把 main方法的 public 去掉,然后编译,然后运行看看
  • 把 main方法的 static 去掉,然后编译,然后运行看看
  • 把 main方法的 main 改成 mainABC ,然后编译,然后运行看看
  • 把 main方法的 String[] 参数类型改成 String,然后编译,然后运行看看
  • 把 main方法的 String[] args 改成 String args[] ,然后编译,然后运行看看
好了,今天这第一课就到这里。程序虽然很短,但东西还是很多的。都是一些基本概念。

附上带抛出异常的main代码,这个在调试程序时为了省事,偷懒,我经常这么做
public final static void main(String[] args) throws IOException,Exception


完整的项目截屏


2008-10-30_070819.gif
2008-10-30_071744.gif
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP
老紫竹JAVA基础培训(1)认识HelloWorld程序
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP
呵呵,支持紫竹大哥
编辑 回复 快速回复 TOP
呵呵,学习了,跟老紫竹学习了!!!
编辑 回复 快速回复 TOP
跟老紫竹学,每来一头,学好JAVA不用愁,呵呵
天天来,天天学,呵呵
编辑 回复 快速回复 TOP
支持~
编辑 回复 快速回复 TOP
2.4.5.6.7都不能运行,能讲讲吗
天天来,天天学,呵呵
编辑 回复 快速回复 TOP
我来解答下吧:
1 * 去掉类的public 然后编译public 是声明为公共的语句 这里可以删掉
2 * 将类名HelloWorld改成 helloWorld 然后编译看看因为HelloWorld类中含有main方法所以HelloWorld成为了该类的主类类的文件名必需和该类中主类名一致同时区分大小写
3 * 把文件名改成 helloWorld.java 然后编译看看
同2
4 * 把 main方法的 public 去掉,然后编译,然后运行看看
程序是从main方法开始执行的类的main方法必需是public(公共的)
5 * 把 main方法的 static 去掉,然后编译,然后运行看看
类的main方法必需是static(该关键字表示声明的方法为静态方法 静态方法可以在类中任意地方使用 )
6 * 把 main方法的 main 改成 mainABC ,然后编译,然后运行看看
因为程序是从main方法开始执行的 该成mainABC后程序找不到main方法
7 * 把 main方法的 String[] 参数类型改成 String,然后编译,然后运行看看
这里String[] 是建立一个String的数组用" [ ] "来标记删掉了就是建立String类型的变量了
8 * 把 main方法的 String[] args 改成 String args[] ,然后编译,然后运行看看
该语句的意思是建立String类型名叫args的数组
JAVA中数组的“ [ ] ”放到名字前和后都可以惯例是放在前面
这样比较好理解程序这是我个人的一些理解 如果又什么错误请指教o(∩_∩)o...
欢迎来看看http://blog.csdn.net/kao331431214
The more a man learns, the more he sees his ignorance.
知识越广博,越感已无知 。
编辑 回复 快速回复 TOP
检验下自己的基础
1.去掉类的public 然后编译
//报错
//JAVA规定每个类文件中都必须有且只有一个public修饰的类名 且必须和保存的类文件名称一致
2.将类名HelloWorld改成 helloWorld 然后编译看看
//报错
3.把文件名改成 helloWorld.java 然后编译看看
//报错
4.把 main方法的 public 去掉,然后编译,然后运行看看
//报错
//JAVA默认定义 public static void main(String[] ooxx)这个过程作为运行入口
//C#main必须为Main
//其他一切重载均不被识别 并且本方法 不可以覆盖
//定义为public是标示为任何程序可以访问
//定义为static目的是标示在JVM载入该类对象时候把本方法装载入静态方法保护区
//定义为main目的是标示该方法为"特殊入口"
//String[] 为"特殊入口"的参数数组 可以为空
5.把 main方法的 static 去掉,然后编译,然后运行看看
//报错
6.把 main方法的 main 改成 mainABC ,然后编译,然后运行看看
//报错
7.把 main方法的 String[] 参数类型改成 String,然后编译,然后运行看看
//报错
8.把 main方法的 String[] args 改成 String args[] ,然后编译,然后运行看看
//pass
//c# 编译报错 语法检查稍微严格
编辑 回复 快速回复 TOP
问大哥

E:\javalession\base\src\lession1\HelloWorld.java
这个文件夹是自己创建还是eclipse自带的 我怎么找不到啊
编辑 回复 快速回复 TOP
真详细啊,学习了!
编辑 回复 快速回复 TOP
好象用的是sougou输入法啊
编辑 回复 快速回复 TOP
eclipse中debug时在运行结果后面有时会出现如下提示是什么意思呢?
Hello World!
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:820]

run时就不会出现。
编辑 回复 快速回复 TOP
感谢紫竹大大的无私
编辑 回复 快速回复 TOP

感谢
编辑 回复 快速回复 TOP

感谢
编辑 回复 快速回复 TOP
附上带抛出异常的main代码,这个在调试程序时为了省事,偷懒,我经常这么做
查看复制到剪切板打印
public final static void main(String[] args) throws IOException,Exception

请问这段代码什么怎么调试不过去, throws IOException,Exception 这部分报错
编辑 回复 快速回复 TOP
刚学习JAVA 看到这个网站很不错。
希望能学好罗
向楼主的辛劳致敬!

编辑 回复 快速回复 TOP
附上带抛出异常的main代码,这个在调试程序时为了省事,偷懒,我经常这么做
查看复制到剪切板打印
public final static void main(String[] args) throws IOException,Exception

请问这段代码什么怎么调试不过去, throws IOException,Exception 这部分报错

IOException是java.io里面的,要在最前面加上
import java.io.IOException;
引入包

编辑 回复 快速回复 TOP
问下LZ.我是用editplus编写的,代码写进去后,编译的时候没问题,但是运行是提示出错,
---------- Java ----------
java.lang.NoClassDefFoundError: HelloWorld (wrong name: lession1/HelloWorld)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: HelloWorld. Program will exit.
Exception in thread "main"
输出完成 (耗时 0 秒)

这个是什么问题呢?
编辑 回复 快速回复 TOP
真详细啊,收藏起来,感谢大哥!
编辑 回复 快速回复 TOP
请问抛出异常是什么啊?
路是闯出来的,继续赶路。。.........
编辑 回复 快速回复 TOP
去掉" package lession1; "就行了
路是闯出来的,继续赶路。。.........
编辑 回复 快速回复 TOP
学习了,调试成功~~~~~
编辑 回复 快速回复 TOP
强烈支持大哥
你最近还好吗
编辑 回复 快速回复 TOP
支持 嗬嗬嗬 我今天刚注册的 呵呵
只要肯学,能努力,就行!!!
编辑 回复 快速回复 TOP
发新话题