Java SE 面向对象 笔记 类和对象

1. 理解什么是面向对象

当不再面对具体的每一个方法时,发现操作也变的简单了很多。而封装具体功能的这个,才是我们需要面对的。而基于这个封装了具体功能的类,一般情况下,在Java中需要通过创建这个类的实体来使用。

这个实体称之为对象。在开发中,我们是在不断的找封装不同功能的类。基于这些类创建其对象,使用这些对象完成相应的操作。

面向对象是基于面向过程,对象是将功能进行了封装。只要找到了具体的类,创建出对象,就可以调用其中的具体功能。面向对象也是用来解决问题的一种思维模式

在以后开发中,先找对象,调用对象中的具体功能。如果真的没有能够完成需求的对象,这时就自己创建对象,并将所需的功能定义到对象中,方便以后使用。

2.面向对象和面向过程差异

  1. 面向对象是一种更符合人们思考习惯的思想。
  2. 面向过程中更多的体现的是执行者,面向对象中更多的体现是指挥者。指挥对象做事情。
  3. 面向对象将复杂的问题简单化。

3.对象在需求中的使用

把大象装进冰箱

在针对具体的需求,可以使用名词提炼法进行分析,寻找具体的对象。

  • 把大象装冰箱里
  • 大象、冰箱

实施的步骤

  1. 打开冰箱门
  2. 将大象装进去
  3. 关闭冰箱门

分析发现打开、装、关闭都是冰箱的功能。即冰箱对象具备如下功能

  • 冰箱打开
  • 冰箱存储
  • 冰箱关闭

用伪代码描述,上述需求中有两个具体的事物 大象 和 冰箱

大象{}
冰箱{
    打开(){};
    存储(大象){};
   	关闭(){};
}

总结:

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

4.类和对象

  1. :现实生活中一种事物的抽象,把对事物的特征描述做成数据也就是属性。把事物具备的功能做成方法。

  2. 对象:一个类的具体实例。比如:人 和 张三同学

  3. 创建对象:new + 构造方法()。构造方法:无返回值名字与类名相同,功能是配合new关键字来创建对象。

注意:构造方法无返回值因为不需要额外信息数据。与类名一致是因为创建同名象。
构造方法根据属性的不同有多种重载形式,通常把无参数的构造方法称之为无参构造。

  1. 对象的内存:new + 构造方法() 创建的对象,在对内存中开辟空间。属性有默认值。

5.对象在代码中的体现与对象的匿名使用

在分析现实生活中的事物时发现,这些事物都有其具体的特点和功能,这些特点和功能就组成了这个特殊的事物。

描述小汽车,分析其具有的属性和行为。

  • 事物的特点(属性):颜色,轮胎个数。
  • 事物的行为(方法):运行。

可以简单理解:属性就是数值,其实就是变量;行为就是功能,就是函数。

文字模拟:
小汽车
{
	颜色;
	轮胎个数;
	运行(){}
}
//
class Car
{
	String color;// 颜色
	int number;// 数量
	void run()// 运行方法!!!
	{
		System.out.println(color+"::"+number);
	}
}
/**通过代码的描述,知道类的真正意义就是在描述事物。属性和行为统称为事物中的成员。

*事物的成员分为两种:成员属性和成员行为。

*成员属性:在代码中的体现就是成员变量

*成员行为:在代码中的体现就是成员函数(方法)

*/
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();
	}
}
//在main方法中,每次创建对象,只为了调用其run方法,而这时定义的c引用变量,几乎没有什么作用。
//而c等价于new Car();这时可以使用简化书写成new Car().run()
//简化书写,会使用匿名对象。
//匿名对象的使用场景:当对象对方法进行调用时,而且只调用一次时,可以简化成匿名对象来书写

class CarDemo
{
    public static void main(String[] args)
	{    
        Car c = new Car();
        show(c);    //简化成 show(new Car());//把匿名对象作为实际参数进行传递。
     }
    public static void show(Car cc)  // Car cc = c;  Car cc = new Car();
	{
		cc.color = "red";
		cc.number = 4;
		cc.run();
	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值