java课后作业

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 @ 2025-10-18 15:24  douzishuo  阅读(14)  评论(0)    收藏  举报