1、package haha;
class haha
{
public String Information="";
public void main(String args)
{
System.out.println(args);
}
private int value;
public int getValue()
{
return value;
}
public void setValue(int value)
{
this.value=value;
}
}
public class tiaoshi
{
public static void main(String args[])
{
haha obj=new haha();
obj.main("hello");
obj.setValue(100);
System.out.println(obj.getValue());
obj.Information="Information";
System.out.println(obj.Information);
}
}
执行结果为:
hello
100
Information
原因:
main(“hallo”)执行的为main函数,在main函数中,接受的为字符串,赋给args,直接输出。
SetValue函数接收value的值,getvalue函数返回value。
第三个输出直接调用haha类中的Information直接赋值。
2、package haha;
public class tiaoshi
{
public static void main(String args[])
{
int value;
System.out.println(value);
}
}
无法执行,输出value的时候要求初始化value变量。
package haha;
public class tiaoshi
{
public static void main(String args[])
{
int value=100;
System.out.println(value);
}
}
可以执行,输出100。
3、package haha;
public class tiaoshi
{
public static void main(String args[])
{
int value1=100;
int value2=100;
System.out.println(value1==value2);
}
}
执行结果为true。
package haha;
public class tiaoshi
{
public static void main(String args[])
{
Foo h1=new Foo();
Foo h2=new Foo();
System.out.println(h1==h2);
}
}
class Foo
{
int value=100;
}
执行结果为false
此时比较的不是两个对象中的数据,而是两个对象的地址是否一直。
package haha;
public class tiaoshi
{
public static void main(String args[])
{
Foo h1=new Foo();
Foo h2=new Foo();
System.out.println(h1==h2);
System.out.println(h1.equals(h2));
}
}
class Foo
{
public boolean equals(Object obj)
{
return value==this.value;
}
int value=100;
}
执行结果为:
False
True
此时在foo类中定义了boolean函数比较的不是两个对象,而是对象中的数据。
4、package haha;
public class tiaoshi
{
public static void main(String args[])
{
Foo h1=new Foo();
}
}
class Foo
{
int value;
public Foo(int intvalue)
{
value=intvalue;
}
}
无法执行,由于当你不定义Foo方法的时候,电脑会执行自身的默认的方法,但是如果定义了之后,就会执行你写的方法。
5、package haha;
class haha
{
{
field=200;
}
public int field=100;
public haha(int value)
{
this.field=value;
}
public haha()
{
}
}
public class tiaoshi
{
public static void main(String args[])
{
haha obj=new haha();
System.out.println(obj.field);
obj=new haha(300);
System.out.println(obj.field);
}
}
执行结果为:
100
300
当创建的对象为haha()和haha(300)时,由于类型并不一样,电脑会匹配与之对应的方法。所以使用的方法并不一样。
6、package haha;
public class tiaoshi
{
public static void main(String args[])
{
Integer i1=100;
Integer j1=100;
System.out.println(i1==j1);
Integer i2=129;
Integer j2=129;
System.out.println(i2==j2);
}
}
执行结果为:
True
False
原因是integer类型的取值范围是-128到+127之间的,当超出这个范围就无法正常比较了。