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;

	}

}

动手动脑
image
原因 1:构造方法参数不匹配
Foo 类里定义了带参数的构造方法 public Foo(int initValue)(需要传入一个 int 类型的参数)。
原因 2:非静态内部类的创建限制
Foo 是 Test 类里的非静态内部类,而 main 方法是静态方法。
image
public class InitializeBlockClass {
{
field = 200;
}
public int field=100;
public InitializeBlockClass(int value)
{
this.field=value;
}
public InitializeBlockClass()
{

}

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

posted on 2025-10-18 15:24  douzishuo  阅读(4)  评论(0)    收藏  举报