面向对象

面向对象即关注对象

1、类确定对象会拥有的属性(静态特性)和方法(动态行为)
2、类是对象的类型
**,对象是特定类型的数据**
3、局部变量无默认值需初始化,类的成员变量有默认值

在这里插入图片描述

对象实例化

方式一:声明对象 Cat one=new Cat();实例化对象
在这里插入图片描述1、声明对象后不允许进行属性和方法调用,仅开辟一块内存空间
2、实例化对象是在内存的堆空间里开辟了一块空间,完成了相关信息的初始化操作,每new一次就在堆中开辟一块新的空间
3、对象实例化把新的堆空间存在的地址放到对象引用中,通过对象名操作具体对象信息,存储的其实是堆的一个地址的引用

在这里插入图片描述

单一职责原则

一个类中最好只有一个功能,承载功能越多,交融耦合性越高,被复用的可能性越低

构造方法

构造方法与new配合使用
1、只能在对象实例化时调用
2、与类同名且没有返回值
3、指定构造方法后,不会自动添加无参的构造函数
4、普通方法不可以直接调用构造方法(普通方法里也可以new对象);构造方法调用只能在构造方法之间完成

在这里插入图片描述5、同一个类的构造函数之间可以通过this加括号进行相互调用,通过this()调用重载的构造方法,必须放在方法体内第一行,调用带参构造函数则在括号中加参数

在这里插入图片描述

就近原则

在这里插入图片描述在有参构造函数中进行赋值时,默认按照就近原则,直接赋值给传入的name(赋值给自己),不会赋值给成员变量(先在方法作用域内搜寻,再在类中搜寻),发生逻辑错误,因此成员变量无改变,需使用this.成员属性,调用成员属性,解决成员属性与局部变量用名冲突问题(防止赋值不对称)

this作用

1、this在类中就是代表当前对象,通过this关键字完成当前对象的成员属性、成员方法和构造方法的调用
2、使用this.成员属性,调用成员属性,解决成员属性与局部变量用名冲突问题
3、同一个类的构造函数之间可以通过this加括号进行相互调用,通过this()调用重载的构造方法,必须放在方法体内第一行,调用带参构造函数则在括号中加参数
4、this可调用同一个类中的其他成员方法(this也可省略)
在这里插入图片描述5、在定义类中的方法时,如果需要调用该类对象,就可以用this来表示这个对象。也就是说,但凡在本类功能内部使用到了本类对象,都用this表示。至于代表哪个对象,就看其所在功能被哪个对象调用,这样就知道谁在参与运算。

注意

成员实例化可在普通方法和主方法中进行,如下,注意同名变量的区分

month为局部变量month,cat.month为对象cat的成员变量,this.month为当前对象的成员变量
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值