例1.2import java.awr.*;import java.applet.*;public class HelloWorldApplet extends Applet{//an appletpublic void paint(Graphicsg){g.drawString("HelloWorld!",20,20);}} 这是一个简单的Applet(小应用程序)。程序中,首先用 import语句输入java.awr和java.applet下所有的包,使得该程序可能 使用这些包中所定义的类,它类似于C中的#include语句。然后 声明一个公共类HelloWorldApplet,用extends指明它是Applet的子类。 在类中,我们重写父类Ap-plet的paint()方法,其中参数g为Graphics 类,它表明当前作画的上下文。在paint()方法中,调用g的方法 drawString(),在坐标(20,20)处输出字符串""HelloWorld!",其中坐标 是用象素点来表示的。这个程序中没有实现main()方法,这是Applet与应用程序 Application(如例1)的区别之一。为了运行该程序,首先我们也 要把它放在文件HelloWorldApplet.java中,然后对它进行编译: C:\>javac HelloWorldApplet.java得到字节码文件HelloWorldApplet.class。由于Applet中没有 main()方法作为Java解释器的入口,我们必须编写HTML文件,把该 Applet嵌入其中,然后用appletviewer来运行,或在支持Java的浏览器 上运行。它的<HTML>文件如下:<HTML><HEAD><TITLE>AnApplet</TITLE></HEAD><BODY><appletcode="HelloWorldApplet.class"width=200height=40></applet></BODY></HTML>其中用<applet>标记来启动HelloWorldApplet,code指明字节码 所在的文件,width和height指明applet所占的大小,我们把这个HTML 文件存入Example.html,然后运行:C:\>appleviewer Example.html这时屏幕上弹出一个窗口,其中显示HelloWorld!,显示结果 如图:从上述例子中可以看出,Java程序是由类构成的,对于一个 应用程序来说,必须有一个类中定义main()方法,而对applet来说, 它必须作为Applet的一个子类。在类的定义中,应包含类变量的 声明和类中方法的实现。Java在基本数据类型、运算符、表 达式、控制语句等方面与C、C++基本上是相同的,但它同时也 增加了一些新的内容,在以后的各章中,我们会详细介绍。本 节中,只是使大家对Java程序有一个初步的了解。
为什么我根据这个方法做不出来,请问是什么原因,请高手指教,谢谢
为什么我根据这个方法做不出来,请问是什么原因,请高手指教,谢谢
a和b都指向同一对象,因为内容相同。
不想让他们指向同一内存的话,就用:String b=new String("JAVA");System.out.println(" "+ if( a==b) ) 我知道对象不能用“==”来判断,但是为什么会报错呢?
同类对象可以用==比较,你的语法错了
if是对判断进行分析了,a==b就是比较,直接用+连接就OK了。
{
public static void main(String[] args)
{
String A="classjava";
String B="classjava";
if(A==B)
System.out.println("A和B同内存");
}
}
^_^,他们的确是同内存,结帐啦
如a=new String("classjava");
跟b="classjava";就不同空间了
但然c="notclassjava";明显跟b不同空间啦
这本是基础,但是越是基础,大家一般都不注意,这个问题好,提醒了我,要不然我自己也要忘了。
a ,b都是对象引用,为什么new出来的就不是,而直接写的就是了?
我记得书上说:
String A = "abc";
和
String A = new String("abc");
是一样的吗?
String b = "JAVA";
String c = new String("JAVA"); if(a==b)
System.out.println("They are equal");
if(a==c)
System.out.println("They are equal");
else
System.out.println("They are not equal");They are equalThey are not equal
第二段程序中,使用了 new 操作符,他明白的告诉程序:“我要一个新的!不要旧的!”与是一个新的"JAVA"Sting对象被创建在内存中。
String b = "JAVA";
String c = new String("JAVA");
// 请注意这句
c = c.intern(); if(a==b)
System.out.println("They are equal");
if(a==c)
System.out.println("They are equal");
else
System.out.println("They are not equal");They are equalThey are equal
String a = new String("b");
String b = new String("b"); 这样声明指向相同的地址:
String a = "b";
String b = "b";
是String a="JAVA",
b="JAVA";
a,b是异名同址;
String c="JAVA";
String d=new String("JAVA");
c和d
则不是。
a和b是指向同一个内存,如果用new则不是了