面向对象之类与对象

面向对象之类与对象

面向过程
只考虑事务的发展过程
	如:将大象装进冰箱里
		1,开冰箱门
		2,放大象
		3,关冰箱门
面向对象
1,先考虑事物中存在的对象
2,建立对象与对象的关系
	如:将大象装进冰箱里
		1,在事物中存在两个对象,分别是大象与冰箱
		2,大象被放在冰箱里
		1,开冰箱门
		2,放大象
		3,关冰箱门
对象
真实存在的事物称为对象
概念:多个对象抽取其共同点形成的概念
注意:
	生活中:先有对象后有类
	代码中:先有类后有对象
类与对象的关系
1,一个类可以有多个对象
2,多个对象可以属于同一个类
类的组成
属性
	概念:描述事物的静态特征
方法:
	概念:描述事物的动态特征(行为)
构造函数:
	作用:创建对象的特殊方法
类的定义(*)
访问权限修饰符 class 类名{
	属性
		作用:描述事物的静态特征
		别名:成员变量
		定义位置:
			类中方法以外
		语法格式:
			访问权限修饰符 数据类型 属性名;
		注意:有默认值,基本数据类型默认值为0,引用数据类型默认值为null
		
	方法
		作用:描述事物动态特征(行为)
		别名:函数,成员函数,成员方法
		定义位置:
			类中方法以外
		语法格式:
			访问权限修饰符 返回值类型 方法名(形参列表){
				方法体
			}
	构造函数
		作用:创建该类对象的特殊方法
		别名:构造方法
		定义位置:
			类中方法以外
		语法格式:
			访问权限修饰符 构造函数名(形参列表){
				方法体
			}
			注意:
				1,构造函数没有返回值类型,也没有返回值
				2,构造函数名必须与所在的类名一致
				3,如果一个类中没构造函数,系统将为其提供一个无参构造函数
				4,如果一个类中有构造函数,那么系统将不会为其提供无参构造函数
}
如何创建对象(*)
声明的语法:
	数据类型 对象名;
	注意:引用数据类型的类名就是他的数据类型
创建的语法:
	对象名 = new 构造函数名(实参列表);
声明并创建的语法:
			类名 对象名 = new 类名() ;
           对象名.成员变量名 = 值; (跟成员变量类型一致); 
           对象名.方法名() ;调用方法,展示这个具体事物有什么功能
对象调用属性(*)
获取属性值
	语法:
		对象名.属性名
设置属性值
	语法:
		对象名.属性名=值;
对象调用方法(*)
语法:
	对象名.方法名(实参列表);
this关键字(*)
概念:谁调用this所在的方法,this就代表谁
使用:
	场景1:
		在本类方法中,调用本类其他属性或方法,此时就可以忽略this关键字不写
	场景2:
		当局部变量与属性相同时,系统优先使用局部变量,如果想区分可以使用this关键字
		this.变量名			属性
		变量名					局部变量(在方法中声明的变量,包括形参)
	场景3:
		在本类构造函数中调用本类其他构造函数
			注意
				1,不能形成递归
				2,只能在当前构造函数首行使用
面试题
请问在创建对象时,做了哪些事?步骤是什么?
	1,使用new关键字在堆内存中开辟一片空间
	2,给队象的属性赋初始值
	3,执行调用的构造函数中的代码
	4,将堆中的地址,赋值给栈中的引用

图解

创建一个对象内存图解

创建多个对象图解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值