当前位置: 移动技术网 > IT编程>软件设计>面向对象 > 面向对象的基本概念(前篇)

面向对象的基本概念(前篇)

2020年07月17日  | 移动技术网IT编程  | 我要评论
一、对象(objecrt)

两方面含义:
1、客观世界中的实体
2、可标识的存储区域

二、类(class)
1、类:具有共同属性和行为的对象集合

(1)属性:变量(字段) (姓名、年龄等)
(2)行为:函数(方法)

2、类与对象的关系

(1)类是对象的抽象(模板)
(2)对象是类的实例

三、面向对象的三大特征

封装、继承、多态

1、封装

(1)模块化:将属性和行为都封装在类中
(2)信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类

2、继承

(1)继承性:父类和子类之间共享数据和方法
(2)继承的好处:
a.更好地进行抽象与分类
b.增强代码的重用率
c.提高可维护性
(3)重写:用子类中写的方法替换掉父类的方法
完成重写的条件:方法名称、参数类型、返回值和参数个数相同,权限修饰符不小于父类。
注意:
① 当创建子类对象时,内部会首先创建父类对象,子类对象之所以能引用父类对象,是因为其内部有个super用来存储父类的地址。
② 子类访问父类时,默认通过无参构造方法来访问,如果没有,那么子类在继承时则需要明确地通过super来访问
③ 当super调用构造方法时,必须写在子类构造方法的第一行。
在这里插入图片描述

3、多态

(1)不同对象收到同一个消息(调用方法)可产生完全不同的效果
(2)实现的细节由接收对象自行决定
此图片来自网络,如有侵权,请联系本人删除!
[此图片来自网络,如有侵权,请联系本人删除!]

四、面向对象三大思想

面向对象思想从概念上讲分为以下三种:OOA、OOD、OOP
OOA:面向对象分析(Object Oriented Analysis)
OOD:面向对象设计(Object Oriented Design)
OOP:面向对象程序(Object Oriented Programming

五、对象的创建与使用

一个类要想真正的进行操作,则必须依靠对象,对象的定义格式如下:
类名称 对象名称 = new 类名称() ;
如果要想访问类中的属性或方法(方法的定义),则可以依靠以下的语法形式:
访问类中的属性: 对象.属性 ;
调用类中的方法: 对象.方法(实际参数列表) ;

六、创建对象内存分析
1、栈

特点:先进后出
存储的是: 基本数据类型的数据以及引用数据类型的引用
(栈内存, 通过 ‘栈指针’ 来创建空间与释放空间)

2、堆

存放的是:类的对象
所有类的对象都是通过new关键字创建

垃圾回收器 回收堆内存的规则:
当栈内存中不存在此对象的引用时,则视其为垃圾 , 等待垃圾回收器回收

3、方法区

存放的是

  • 类信息
  • 静态的变量
  • 常量
  • 成员方法
    方法区中包含了一个特殊的区域 ( 常量池 )(存储的是使用static修饰的成员)
4、PC寄存器

PC寄存器保存的是 当前正在执行的 JVM指令的 地址
在Java程序中, 每个线程启动时, 都会创建一个PC寄存器

5、本地方法栈

保存本地(native)方法的地址

七、构造方法(构造器)
1、概述

作用:用于对象初始化。
执行时机:在创建对象时,自动调用
特点:所有的Java类中都会至少存在一个构造方法

(如果一个类中没有明确的编写构造方法, 则编译器会自动生成一个无参的构造方法, 构造方法中没有任何的代码!
如果自行编写了任意一个构造器, 则编译器不会再自动生成无参的构造方法。)

2、定义格式

与普通方法基本相同,区别在于:方法名称必须与类名相同,没有返回值类型的声明

八、方法的重载

方法名称相同, 参数类型或参数个数不同, 可以完成方法的重载,方法的重载与返回值无关

九、构造方法的重载

一个类, 可以存在多个构造方法:参数列表的长度或类型不同即可完成构造方法的重载
构造方法的重载 ,可以让我们在不同的创建对象的需求下, 调用不同的方法来完成对象的初始化

十、匿名对象

没有对象名称的对象 就是匿名对象。
匿名对象只能使用一次,因为没有任何的对象引用,所以将称为垃圾,等待被G·C回收。
只使用一次的对象可以通过匿名对象的方式完成。

中篇传送门

本文地址:https://blog.csdn.net/JDBC400451/article/details/107366494

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网