动手动脑4 类和对象

一:验证ClassAndObjectTest.java

1)代码:

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;
    }
}

2)结果:

3)结果分析:首先需要定义一个对象变量引用实例,赋值给对象变量,再进行调用即可。

二.一:解决问题系列

int数据类型,可以直接使用“==”判断两变量值是否相等,那么对象变量也可以使用“==”判断两变量值是否相等吗?

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
Foo obj1 = new Foo();
Foo obj2 = new Foo();
System.out.println(obj1==obj2);
    }
}
class Foo{
    int value=100;
}

结论:字符串只可以用equals比较而不能用"=="。

当“==”施加于“原始数据类型”变量时,是比较变量所内容数据是否相等
equals用于“引用变量”时的对比。比较两者地址。
二.二

以下代码为何无法通过编译?哪儿出错了?

 

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
     Foo obj1 = new Foo();
    }
}
class Foo{
    int value;
public Foo(int initValue){
    value=initValue;
}
}

结论:将“Foo obj1 = new Foo();”改为“Foo obj1 = new Foo(4);”即可。

用户自定义构造方法,引用时内部应有实参。

 

posted @ 2016-10-20 21:35  发酸的丶蛋炒饭  阅读(113)  评论(0编辑  收藏  举报