public class ClassAndObjectTest
{
public static void main(String[] args)
{
//�������ʵ��������һ���������������һʵ��
MyClass obj = new MyClass();
//ͨ���������������Ĺ��з���
obj.myMethod("Hello");
//�����Ը�ֵ
obj.setValue(100);
//������Եĵ�ǰֵ
System.out.println(obj.getValue());
//ֱ�ӷ��ʶ������ֶ�
obj.Information = "Information";
//����������ֶεĵ�ǰֵ
System.out.println(obj.Information);
}
}
/**
-
�Զ���Java���ʾ��
*/
class MyClass
{
// �����ֶ�
public String Information = "";// �Զ��幫��Javaʵ������
public void myMethod(String argu)
{
System.out.println(argu);
}// �������ԣ�˽���ֶ�+get����+set����
private int value;
public int getValue()
{
return value;
}
public void setValue(int value)
{
this.value = value;
}
}
package pack2.jxlPacakge;
import pack2.jxlPacakge.MyPackageClass;
public class Test3
{
public static void main(String args[])
{
String str="abcd";
Test2 MyPackageClass;
System.out.println(MyPackageClass.reverseString(str));
}
}
public class ObjectEquals
{
public static void main(String[] args)
{
MyTestClass obj1=new MyTestClass(100);
MyTestClass obj2=new MyTestClass(100);
System.out.println(obj1==obj2);
System.out.println(obj1.equals(obj2));
}
}
class MyTestClass
{
public int Value;
//ע�⣺ֻ�в�������ΪObject�ģ�������д��Object��equals����
//��������ΪMyTestClass�ģ�������Overload��equals������
// @Override
// public boolean equals(Object obj)
// {
// return ((MyTestClass)obj).Value==this.Value;
// }
public boolean equals(MyTestClass obj)
{
return obj.Value==this.Value;
}
public MyTestClass(int initValue)
{
Value=initValue;
}
}
动手动脑

原因 1:构造方法参数不匹配
Foo 类里定义了带参数的构造方法 public Foo(int initValue)(需要传入一个 int 类型的参数)。
原因 2:非静态内部类的创建限制
Foo 是 Test 类里的非静态内部类,而 main 方法是静态方法。

public class InitializeBlockClass {
{
field = 200;
}
public int field=100;
public InitializeBlockClass(int value)
{
this.field=value;
}
public InitializeBlockClass()
{
}
}


package pack2.jxlPacakge;
public class BoxAndUnbox {
/**
* @param args
*/
public static void main(String[] args) {
int value=100;
Integer obj=value; //???
int result=obj*2; //????
}
}
装箱(基本类型 → 包装类对象)
当把int(基本类型)赋值给Integer(包装类)时,Java 会自动调用 Integer.valueOf(int 数值) 方法。
拆箱(包装类对象 → 基本类型)
当把Integer对象参与基本类型的运算(比如代码中obj * 2)时,Java 会自动调用 Integer对象的intValue() 方法,把Integer对象 “拆” 成int基本类型的值。

Java 预先在一个 “缓存池” 里存好了 -128 到 127 之间的 Integer 对象。
当 Integer i1 = 100; 和 Integer j1 = 100; 时,100 在 -128 ~ 127 范围内,i1 和 j1 会从缓存池里拿同一个对象。此时用 == 比较(== 比较对象时,看是否是 “同一个引用”),结果为 true。

浙公网安备 33010602011771号