本帖最后由 xiao_ming 于 2015-10-29 11:25 编辑
第Ⅱ期Android菜鸟饭团#Java学习#第七课 活动笔记
对象的创建和使用: 必须使用new关键字创建对象 使用对象(引用).成员变量或来引用对象的成员变量。 使用对象(引用).方法(参数列表)来调用对象的方法。
class dog{ int age; String name; dog(){ System.out.println("感谢主人领养了我。"); } void setAge(int _age){ age=_age; } void setAge(String _name){ name=_name; } void getAge(){ System.out.println("我今年"+age+"。"); } void getAge(){ System.out.println("我叫"+name+"。"); } } class Person{ public static void main(String [] args){ dog huahua=new dog();//创建 dog 类型的变量huahua 并指向新建的一个dog对象。这会运行构造函数 huahua.setAge(4);//也可以写huahua.age=4; huahua.setName("花花");//也可以写huahua.name="花花"; huahua.getName(); huahua.getAge();//以上四句都是在调用huahua对象的方法,进行了赋值并调用了输出类型的方法。 } } |
这样程序运行的结果是: 感谢主人领养了我 我叫花花。 我今年4岁了。 在运行 dog huahua=new dog();的时候,在堆内存中开辟了一个空间,用于实例化dog类,这个区域存储了这个对象的所有成员变量并将起初始化(大部分都为0)。 如果new了对象却不让变量指向它,他就会变成垃圾,很难被使用到。好在java会自动清理这些垃圾。 如果在这个程序的huahua.getAge();下面写一些话。
dog xixi=huahua;//定义xixi变量,并让huahua和xixi都指向huahua指向的对象 xixi.serAge=5; huahua.getAge();
|
结果是: 我今年5岁了。 因为xixi和huahua指向的是同一个对象,所以调用的也是同一个成员变量。 同一类的每一个对象有不同的成员变量的存储空间。 同一类的每个对象共享该类的方法。
方法重载: 方法重载是指两个方法名称一样,参数列表不一样(包括参数个数和类型)。 如果将上述的dog类的两个set*方法均改成set方法,在调用的时候就会很方便,这就要用到重载。
void set(int _age){ age=_age; } void set(String _name){ name=_name; }
|
上面的就是两个重载的方法,简单来说,只要在调用过程中,不可能被编译器误解,便可以成为重载。 在调用的时候,无论要修改哪个数据都只用set(value);就行了。 问题 Q:new了对象没有变量指向会发生什么? A:这样的对象是垃圾对象,会被垃圾处理系统在某个时期处理掉。 Q:set,get的意义是什么?为什么要这么写? A:这只是两个方法名字而已,目的是进行赋值和输出值。这样写比较直观(容易被人理解) Q:new了一个对象,让p指向它,又new了一个对象,让p指向它。会发生什么。 A:p指向了最后创建的对象,如果第一个对象没有变量指向它,它也会变成垃圾。 Q:两个变量可以指向一个对象吗? A:可以。
每一个技术小白都有一个成为大神的梦想,现在Android菜鸟饭团就给你这个成就梦想的机会。我们提供最新的Android技术教学,只要你又耐心和毅力就一定会在这里有所收获。 Android菜鸟饭团由 南阳GDG组织发起,秉承着开放、分享、创新的原则,希望通过GDG社区的力量能够给更多的想要学习Android开发技术的小白们创造一个学习,交流,分享的环境。同往常的GDG活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。
|