面向对象三大特性之后的知识点内容(自整理(上))

继承关系对象的加载过程

  1. 在堆中开辟一块区域
  2. 先加载父类的变量和构造方法(加载对象的成员变量并赋值)
  3. 执行代码块和构造方法
  4. 把该区域的内存地址附给引用类型变量。

基本数据类型形象图

丨===== 丨 ==== 丨 =========
丨 = 栈 =丨 = 堆 = 丨 = 方法区 = 丨
= 丨 ==== 丨 =============丨
好吧并不会用符号打出来一个漂亮的图表。。。

栈中存放对象,堆中存放变量,方法区中存方法

Static(静态修饰符)

修饰的变量和方法属于类,不属于对象
静态在内存中的表示类包括三个组成部分:
1.成员属性(静态属性)
2.成员方法
3.构造方法

类的加载过程

运行 .java 程序 - 编译成**.Class** 文件 - 需要先加载素有用到的.java 文件 - mian 进栈
静态的变量保存在静态区,成员变量位置随着对象的创建保存在堆内存中

生命周期不同

只要类还在,静态变量就存在。
静态变量早于对象而存在(晚于对象而销毁)
成员变量 依赖于对象存在

静态符的修饰作用

把素有对象共有的属性提取出来节省内存空间。
静态修饰符一但修改,所有相关对象受影响。

代码块和静态代码块

代码块先与构造执行,每创建一次对象都会执行一次。

垃圾回收机制(JVM)

如果一个变量在栈中所在的代码块运行结束,变量就会销毁。
如果是一个对象:
1.他所对应的引用类型的变量销毁了,对象也就没有了。
2.该对象引用不再指向他对象本身,该对象也就没用了。
当出现以上两种情况是 JVM垃圾回收机制就会自动销毁。

静态方法

1.存储位置不同(静态放在方法区中的静态区中)
2.生命周期
静态类加载时存在,非静态随着对象的存在才存在。
3.静态方法不能够调用非静态方法的属性和方法。
静态 - 跟随类的变化而变化。

静态与非静态方法总结

静态方法: 可以使用静态的属性和方法。
静态方法: 不能够调用非静态的属性和方法
非静态方法: 可以调用非静态的属性和方法
非静态方法: 可以调用静态的属性和方法

Final(最后的)

Final用于修饰变量
使用final修饰的变量叫做-常量
常量一旦被赋值,不能被更改

常量命名规范

1.常量全大写
2.两个单词常量中间用下划线连接

修饰类

Override(重写)
Overload(重载)

方法被final修饰后 不能被重写。final修饰类不能被继承。
程序中使用常量可提高代码维护性,减少冗余。

Abstract(抽象类)

一个类中,如果有抽象方法,那么这个类一定是抽象类。
一个抽象类可以有抽象方法也可以没有抽象方法。
修饰方法:
使用 abstract 修饰之后,不能有方法体和创建对象,被 abstract 修饰过的类都叫做抽象类。

一个类继承了抽象类之后,必须重写他的抽象方法,如果不重写,那么这个类也必须是抽象类。

抽象方法没有方法体,不能被实例化(创建对象)。

Ctrl + Shift + F 自动对齐代码

接口

概念:
接口(InterFace),抽象类型,接口通常以 interface 来声明。一个类通过继承接口的方式, 从而来继承接口的抽象方法。 一个类可以同时实现多个接口。

一个类只能继承一个类,但是能实现多个接口。
一个接口能继承另一个接口,这和类之间的继承比较相似。

规范
先约定好代码规范如何书写,再既定的框架下来分别书写自责的代码。

结论
接口中的变量,默认修饰符(public static final) 接口中所有的变量都是常量。
接口中的方法 默认修饰符(public abstract)
接口中的方法都是抽象方法。
定义
接口中只能定义变量和方法,无构造方法。
-Felix

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值