自己在原有的Hello基础上,增加了注释以及一些测试项。
请路过的朋友多提意见
package firstPackage;
/**
* package 语句必须位于java文件的第一句,可以避免同名类引起的冲突,若要引用该包里的类,需要从该包内导出
*/
import java.lang.System;
//导入java.lang包中的System类,java.lang包是被缺省引入的。
import java.io.*;
//导入java.io下的所有类,本程序使用了java.io.IOException类,该类是由于I/O中断或者I/O操作失败所引起的异常通用类
//也可以不用import,只不过在出现类名的时候需要用全名类名。比如java.lang.System代替System。
public class Hello
//每个Java文件中只能有一个类是声明为public,如果一个类被声明为public,就需要按照此类名进行命名文件
{
public String personName;
public boolean abc;
//测试构造函数设置类实例变量默认值的问题
public Hello()
//构造函数,跟类同名;构造函数的修饰符有public,protected,private
//如果没有为自己的类编写构造函数,Java会提供一个默认的构造函数。这个构造函数把所欲的类实例变量设置成默认值。
//数字变量的默认值是0,对象变量的默认值是null,布尔变量的默认值是false,本例中就是利用构造函数将变量设置为默认值
//一个类可以有多个构造函数,它们具有不同的参数,这就是类的多态性的体现。调用的时候通过不同的参数来调用不同的构造函数,被称为重载
//构造函数总是和关键字new一起来初始化对象,并且构造函数没有返回值。构造函数不能用于已初始化的类实例上。
//构造函数前不能加void
{
}
public void hello()
{
System.out.println("调用hello()成功.");
}
public String readName()
{
int ch;
String name="";
boolean ok=false;
System.out.println("Please enter your name:");
while (!ok)
{
try
{
ch=System.in.read();
if (ch<0||(char)ch=='\n')
ok=true;
else if ((char)ch!='\r')
name=name+(char)ch;
}
catch(IOException e)
{
ok=true;
}
}
personName=name;
return name;
}
public static void main(String[] args)
//每个java应用程序都必须有一个main函数,并且是唯一的,虽然main在某个类里面定义,但是并不是作为类的方法出现
//main函数是整个应用程序的入口,也就是说如果main函数能够调用的话,也只能由解释程序调用,而且只能调用一次
{
// TODO Auto-generated method stub
String name;
Hello myfirst= new Hello();
System.out.println("Welcom to the java world."+myfirst.personName+"."+myfirst.abc);
name=myfirst.readName();
System.out.println("Welcom to the java world."+name+".");
System.out.println("And may you sucess.");
System.out.println("Welcom to the java world."+myfirst.personName+".");
myfirst.personName ="It is Me!";
System.out.println("Welcom to the java world."+myfirst.personName+".");
}
}