Java4Android自学记录(9-2):面向对象基础(下)

1 目录及资源索引

  Java4Android自学过程目录及资源索引

2 面向对象基础三

2.1 对象的使用方法

  使用对象调用变量和函数:

  1. 对象.变量
  2. 对象.函数()

2.2 实际测试

  我们用最熟悉的狗来举个例子,先写一个公共类,代码如下:

class Dog
{
	String name;	// 狗的名字
	int age;		// 年龄
	String color;	// 颜色
	
	void jump()		// 狗的行为 跳跃
	{
		System.out.println("jump");
	}
}

  写一个主函数,用来测试这个类,相关代码如下:

class Test
{
	public static void main(String args[])
	{
		Dog d = new Dog();		// 生成对象
		
		d.name  = "旺财";		// 给这只狗取名叫 旺财
		d.age   = 2;			// 年龄 2岁
		d.color = "黑色";		// 狗的颜色为 黑色
		
		d.jump();				// 旺财跳跃
		
		System.out.println("名字是" + d.name);
	}
}

  实际测试结果如下:
在这里插入图片描述

2.3 生成多个对象

  生成多个对象,具体代码如下:

Dog d1 = new Dog();		// 狗1
Dog d2 = new Dog();		// 狗2

  内存图,参考老师课件如下:
在这里插入图片描述
  个人总结来说,创建多个对象,基本就是调用多个生成对象,然后引用名字不同而已。就比如都是狗,一条狗生了一窝小狗狗,它们不一样,但它们又都是狗。哈哈哈哈

2.4 匿名对象

  定义:可以不定义对象的引用名称,而直接调用这个对象的方法。这样的对象叫做匿名对象,比如:

new Dog().jump();

  没有名字的对象,就是匿名对象,都是一次性的。
  接着老师提了一个很有意思的思考,如下两行代码,是一样的吗?

new Dog().jump();
new Dog().jump();

  虽然,看代码格式,内容全都一样,但这两个不是同一个。

3 面向对象基础四

3.1 函数的重载

  什么是重载?先看代码,举例如下:

class A
{
	void funA()
	{
		System.out.println("没有参数的funA函数");
	}

	void funA(int i)
	{
		System.out.println("有一个整形参数的funA函数");
	}

	void funA(int i, int j)
	{
		System.out.println("有两个整形参数的funA函数");
	}
}

  由上述代码就可以看到,这两个函数就构成了重载,特征如下:

  1. 处于同一个类;
  2. 函数名相同;
  3. 函数参数不同。

  关于重载,老师举了一个很形象的例子,比如我们日常生活中的洗,洗这个行为很抽象,可以洗脸,洗手,洗澡,洗菜,洗衣服等等,这就类似函数名相同,但是传的参数不一样。

  参考上述代码可知,重载可以有多个参数。

  关于重载,具体的定义参考老师课件如下:

  1. 两个或者多个函数在同一个类当中;
  2. 函数名相同;
  3. 参数列表不同;

3.2 构造函数

  构造函数具体样式:类名 + ():构造函数

  构造函数相关特征如下:

  1. 没有返回值类型的定义;
  2. 构造函数的名字必须和类名相同;
  3. 如果构造函数没有写,编译器在编译时会自动创建。(参数,内容全为空)

  构造函数作用:

  1. new + 构造函数:可以生成一个新的对象;
  2. 利用构造函数,为对象类赋初始值;

3.3 实际测试代码

  使用构造函数,为对象类赋初值,可以很方便的简化代码,具体如下:

class Person
{
	Person()
	{
	
	}
	Person(String n, int a)
	{
		name = n;
		age = a;
	}

	String name;
	int age;
}

  主函数代码如下:

class Test
{
	public static void main(String args[])
	{
		Person person1 = new Person("zhangsan", 10);
		Person person2 = new Person("lisi", 20);
	
		System.out.println("person1的name是" + person1.name + ", age是" + person1.age);
		System.out.println("person2的name是" + person2.name + ", age是" + person2.age);
	}
}

  由上述代码,可以看到,在定义对象的时候,直接赋初值,会简化很多重复代码。

4 总结

  1. 学会了对象的使用方法;
  2. 学会了创建单个,多个对象的方法;
  3. 了解了什么是匿名对象;
  4. 了解了什么是函数重载;
  5. 了解了什么是构造函数,及构造函数的部分作用;
  6. 简单的实际测试了一下,还需要进一步加强。
发布了88 篇原创文章 · 获赞 84 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/Fighting_Boom/article/details/104244497
今日推荐