四、类与对象

类与对象

面向对象的基本特征

  • 封装–指将数据及对数据的操作方法包装起来或隐藏起来的方法
  • 继承–本质是对某一批类的抽象(继承的另外一个好处是代码重用)
  • 多态–多态直到系统运行时才根据实际情况决定实现何种操作

对象

程序中的对象来源于生活,现实生活中的某个实体经过抽象、建模后就变成程序中的一个对象,即用特定符号描述的对象

对象都有自己的特性,我们叫属性(静态特征)和方法(动态的特征)

如:学生,属性由学号、姓名,性别等,方法有学习、选课等

程序设计中,把一组相似对象的共同特征抽象出来并存储在一起,形成了类

总结

  • 对象:具体的事物,我们称为object,或者是instance(实例)
  • 类:是对对象的抽象,我们称为class
  • 对象和类的关系:特殊到一般,具体到抽象
  • 类可以看成一类对象的模板,对象可以看成该类的一个具体实例
  • 类是用来描述同一类型对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动态属性
  • 对象是Java程序的核心,在Java程序中“万事万物皆可对象”

类的定义

类是Java的基本构成要素,是对象的模板,Java程序中所有的对象都是类创建的

一个Java类主要包含两部分:类的声明和类的主体

类的声明

​ 格式:[修饰符] class <类名> [extends 父类名] [ implements 接口列表] { }

类的主体

​ 主要是两部分组成:成员变量的定义和成员方法的定义

类的成员方法定义

​ Java中类的行为由类的成员方法来实现

​ 类的成员方法由方法声明和方法体两部分组成

格式:[ 修饰符] <方法返回的类型> <方法名>([ 方法列表 ]){ 方法体 }

对象的创建

类是创建对象的一个模板

类名 对象名 = null ; //声明对象

对象名 = new 类名(); //实例化对象

也可将两个步骤合成为一行:
类名 对象名 = new 类名();

构造方法

构造器是用于构造该类的实例(对象),Java通过new关键字来调用构造器,从而返回该类的实例

构造方法是一种特殊的方法

格式: [修饰符] 类名 (形参列表){ …}

要点:

  • 构造器方法名必须和类名一致
  • 通过new关键字调用
  • 不能再构造器中调用return
  • 如果没有定义构造器,系统会自动定义一个无参的构造函数

构造方法的重载(overload)

​ 方法的重载是指一个类中可以定义有相同的名字,但是参数不同的多个方法,调用时,会根据不同的参数列表选择对应的方法

  • 方法调用时,匹配离最近的类型
  • 参数列表不同的含义是:类型,个数,顺序不同
  • 只有返回值不同,不构成方法的重载
  • 只有形参的名称不同,不构成方法的重载

static

  • 如果将static放在一个成员变量声明前,该变量就成为静态变量,也称类的成员变量
  • 如果将static放在一个成员方法定义前,该方法就成员静态方法,也称类的成员方法

可以使用 类名.类属性 或者 类名.方法名 直接调用静态变量或静态方法

注意

  • 静态变量是属于类所有,静态变量直接通过类名引用
  • 非静态变量称为实例变量,只有生成实例化对象之后才存在
  • this不能用于static方法

封装

​ 四种不同权限之间的异同点

同一类同一包不同包的子类不同包的非子类
private(私有的)
default(默认)
protected(受保护)
public(公共)

垃圾回收机制

Java提供了一个名为finalize()的方法,用于在对象被垃圾回收机制销毁之前执行一些资源回收工作,

finalize()没有任何参数 和返回值,每一个类有且只有一个finalize()方法

程序员可以调用System.gc(),“建议垃圾回收系统回收资源”,但是垃圾回收系统什么时候被执行以及是否执行了,都是程序员不能控制的

注意

  • 对象的空间分配:使用new关键字创建对象
  • 对象空间的释放:将对象赋值为null即可, 垃圾回收器将负责回收所有“不可达”对象的内存空间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值