java面向对象基础

  • 1、面向对象

相对于面向过程属于模块化设计,譬如车胎坏了、脚蹬子坏掉可以找商店购买完全匹配的产品(面向过程-只完成具体操作任务而不考虑模块化设计思想)

  • 2、面向对象三个特征

封装(保护内部结构不被破坏)、继承(在原有基础上不断完善)、多态(一定范围状态的改变:譬如坐交通工具去旅游,可以是汽车、飞机、火车等)
(1)封装实现,为了实现业务逻辑严谨性,最好封装。属性加private关键字,不能被外部类直接通过对象调用,为访问留门儿,往往使用setter、getter方法。
在这里插入图片描述
此时,外部类调用对象set方法修改属性的时候不能任意设置价格了,耶!

  • 3、类和对象:

人类-名字、眼睛、年龄。。。(类是共性的产物);而对象给予属性于具体值-金三胖、林志玲(对象是个性的产物)

  • 4、对象实例化

、如果有类了,它并不能够直接使用,必须有对象产生,由于类属于引用数据类型,所以对象的产生就是一个内存分配的过程,对象实例化基本语法
(1)声明并实例化对象 类名称 对象名称 = new 类名称
(2)分两步a 声明对象 类名称 对象名称 = null ;b 实例化对象 对象名称 = new 类名称();

  • 5、

栈内存-保存的是堆内存对应的地址数据,可简单理解为是一个对象的名称(存对象名称,实际是堆内存地址)
堆内存-是保存真正有用的数据,指的是对象的属性内容,每一块堆内存都是一块内存地址信息(存对象具体内容)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
没有对象指向的堆内存空间成为垃圾,将被GC不定期回收

  • 6、构造方法

(1)当一个对象声明完成后,所有属性均是对应数据类型的默认值,能否在对象实例化的时候就给它设置属性内容呢?当然可以啦,主要通过构造方法来实现。利用构造方法进行属性内容设置
(2)构造方法是在利用关键字new实例化新对象的时候被默认调用。构造方法主要为属性初始化
(3)在java,之中如果一个类在定义的时候没有明确的定义一个构造方法,那么在编译程序时,会自动为类中增加一个无参数的方法体为空的构造方法。

  • 7、this关键字

访问类中属性,前面永远加上this关键字,避免同名变量系统就近取用赋值错乱

  • 8、static关键字

static定义的属性或方法直接通过类名调用
类名.属性
类名.方法()
在这里插入图片描述
对于公共属性,最好的做法是利用static进行定义。修改公共属性,对象的最大代表就是类,建议使用类直接进行调用。
static定义的属性不受对象控制,不管是否有对象,都不影响其使用。
注意:
a 使用static定义的方法只能调用static属性或者static方法,不能调用普通方法和属性
b 普通方法可以调用static属性或static方法

原因:
所有普通属性是在类对象实例化的时候才进行内存空间分配,而所有普通方法需要在类实例化对象之后才能进行调用;static定义的属性或方法不受类实例化对象限制,类没有实例化对象的时候也可以进行调用

  • 9、代码块(使用少,理解即可)

(1)普通代码块-定义在方法之中,利用“{}”声明的部分
(2)构造块-定义在类之中。构造块在每次对象实例化的时候执行,且顺序优先于构造方法执行
(3)静态代码块-代码块加上static关键字,分两种:定义在主类之中;定义在非主类之中。
注意:静态块优先于构造块执行,并且不管有多少个实例化对象,静态块只调用一次;静态块代码优先于主方法执行
(4)同步代码块

(注:文字主要是根据李兴华老师java课程总结记录的)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值