类与对象

类与对象的使用

对面向对象有了了解之后,我们来说说在具体问题中如何使用面向对象去分析问题,和如何使用面向对象。
我们把大象装冰箱为例进行分析。
在针对具体的需求,可以使用名词提炼的办法进行分析,寻找具体的对象。
需求:把大象装冰箱里
对象:大象、冰箱
分三步:
1. 打开冰箱门
2. 将大象装进去
3. 关闭冰箱门
分析发现打开、装、关闭都是冰箱的功能。即冰箱对象具备如下功能:
冰箱打开
冰箱存储
冰箱关闭
用伪代码描述,上述需求中有两个具体的事物 大象 和 冰箱
描述大象:

		class 大象{
		
                 }
描述冰箱
	class冰箱{
		void 打开(){}
		void 存储(大象){}
		void 关闭(){}
	}
当把具体的事物描述清楚之后,需要使用这些具体的事物,Java使用具体的事物,需要通过new关键字来创建这个事物的具体实例。

使用对象

创建冰箱的对象

	冰箱 bx = new 冰箱();  

调用冰箱的功能

	对象.功能();
	bx.打开();
	bx.存储(new 大象());
	bx.关闭();

总结

1、先按照名词提炼问题领域中的对象
2、对对象进行描述,其实就是在明确对象中应该具备的属性和功能
3、通过new的方式就可以创建该事物的具体对象。
4、通过该对象调用它以后的功能。

对象在代码中的体现

    在分析现实生活中的事物时发现,这些事物都具有具体的特定和功能,这些特点和功能就能组成了这个特殊的事物。
描述小汽车。
分析:
	事物的特点(属性):
		颜色。
		轮胎个数。
	事物的(功能):
		运行。
 
发现:事物其实就是由特点(属性)和行为(功能)组成的。
可以简单理解:属性就是数值,其实就是变量;行为就是功能,就是方法。
	小汽车 {
		颜色;
		轮胎个数;
		运行() {    }
	}
通过计算机语言Java来描述这个事物。

定义类的格式

public class 类名 {
	//可编写0至n个属性
    数据类型 变量名1;
    数据类型 变量名2;
	//可编写0至n个方法
	修饰符 返回值类型 方法名(参数){
	执行语句;
	}
}

汽车类

public class Car {
	String color;
	int number;

	void run() {
	System.out.println(color + ":" + number);
	}
}

通过代码的描述,知道类的真正意义就是在描述事物。属性和功能统称为事物中的成员。
事物的成员分为两种:成员属性和成员功能。
成员属性在代码中的体现就是成员变量
成员功能在代码中的体现就是成员方法
把写好的代码测试一下。需要一个可以独立运行类。

创建对象的格式

类名 对象名 = new 类名();

测试类

public class CarDemo {
	public static void main(String[] args) { 
	/*
	 *  测试:Car类中的run方法。
	 */
	// 1,创建Car的对象。给对象起个名字。
	Car c = new Car();// c是类类型的变量。c指向了一个具体的Car类型的对象。
	// 2,通过已有的对象调用该对象的功能。格式:对象.对象成员;
	// 3,可以该对象的属性赋值。
	c.color = "red";
	c.number = 4;
	c.run();
	}
}

对象的内存图解

类和对象的区别

类是对一类事物的描述,是抽象的
对象是一类事物的实例,是具体的
类是对象的模板,对象是类的实体

局部变量和成员变量的区别

变量根据定义位置不同,给变量起了不同的名字

在类中的位置不同 重点

成员变量:类中,方法外
局部变量:方法中或者方法声明上 (形式参数)

作用范围不一样 重点

成员变量:类中
局部变量:方法中

初始化值的不同 重点

成员变量:有默认值
局部变量:没有默认值。必须先定义,赋值,最后使用

在内存中的位置不同 了解

成员变量:堆内存
局部变量:栈内存

生命周期不同 了解

成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

基本类型和引用类型作为参数传递

基本类型传递参数时,其实就是将基本数据类型变量x空间中的值复制了一份传递给调用的方法show(),当在show()方法中x接收到了复制的值,在对show()方法中对x变量进行操作,这时值会影响到show中的x。当show方法执行完成,弹栈,程序又回到main方法执行,main方法中的x值还是原来的值。

posted @ 2020-05-20 11:25  诸葛孔萌  阅读(119)  评论(0)    收藏  举报