public class HelloWorld extends Applet { String title; public void init(){ title="Hello World"; }
public void paint(Graphics g) { g.drawString(title,50,20); }
}
我们可以看到,程序中是没有主函数的,那它如何运行呢.既然Applet是在浏览器环境下运行的,那我们就需要在HTML文件中来调用它.需要使用的相关标签就是<Applet>标签,我们首先建立HTML文件test.htm,源代码如下. <html> <body> Here comes my first applet: <br> <applet code=HelloWorld.class width=650 height=500> </applet> </APPLET> </body> </html>
入门之后,就该深入到对象的概念了。 假设在Java中创建了一个叫做Date的自定义数据类型如下 public class Date{ int day; int month; int year; } 那么对于以下三条声名变量的语句,java在为其分配内存的时候有什么不同吗? (1) int i; (2) Date mybirth; (3) Date mybirth=new Date();
很显然是有的,分配情况如下: (1)Java自动为整数i分配整形变量的内存,一般是两个字节 (2)Java声明了一个Date类的实例变量mybirth,并为其分配了存储空间,但这个存储空间里面存储的只是一个引用,或者说是一个地址,目前的地址里面什么都没有,那么我们就还不能使用这个实例变量,不能引用它的成员。 (3)Java创建了一个Date类的实例变量mybirth,并为其成员变量分配了足够的存储空间,最后返回对这个存储空间的一个引用,也就是返回这个存储空间的首地址,以后就通过mybirth,即这个首地址来访问这个实例变量里面的各个成员,如mybirth.day,mybirth.month,mybirth.year。 当我们声明一个基本数据类型的变量(如boolean, byte, short, char, int,long,flat,double)时,系统会自动为变量分配内存。但是假如声明了String或者用户自定义的变量时,系统不会立即为其分配内存.为什么会这样呢? 这是因为,String和用户自定义的变量都属于类的范畴.一个被声明为类的变量,已经不再是一个数据了,而变成对数据的一个引用,就是说mybirth可以看作是一个指向类的一个实例的指针,里面存放的是地址.这样的话就好理解了。 深入一点,既然类的实例变量值是指针,这个指针指向一个类的实例,那么我们显然可以定义多个名称不同的类的实例变量,而将它们全都指向一个实例.比如 University u=new University();//定义了一个类University的实例变量u,并为其分配对象的存储空间 University u2=u;//又定义了一个实例变量u2,将u的值赋给u2 那么显然u2和u除了名称不同外,其实是一回事,因为它们指向相同一个地址.