javaSE——Object方法

前言

equals方法        finalize方法        HashCode方法        toString方法


Object

是所有的类父类,可以说叫祖类,根类。

equals方法

==:

  • 用来比较基本数据类型:比较的值
  • 比较引用数据类型:比较的内存地址

equals方法:用来比较两个对象

Object类中的equals方法:用来比较两个对象的内存地址和‘==’一样

如果覆写了,那就按照你自己覆写的去比较

finalize方法

垃圾过多或者程序结束时,程序自动调用Object类中的finalize方法,回收垃圾

自己手动调用,没有意义

可以通过System.gc();建议系统进行垃圾回收(虽然不一定回收,但是建议多了就回收了)

		for (int i = 0; i < 100; i++) {
			System.gc();//建议垃圾回收方法
		}

HashCode方法:给对象分配【唯一】hash值

用来获取hash值        十进制的数

1.同一对象调用hashCode方法得到的Hash值一样

2.不同对象调用hashCode方法得到的Hash值不一定不同,相同时在用equals比较

		Rabbit rabbit = new Rabbit();//1625635731
		System.out.println(Integer.toHexString(rabbit.hashCode()));//60e53b93
		System.out.println(rabbit.hashCode());

 toHexString方法可以将数字转化为字符串型的十六进制数

toString方法

打印自定义内容

实例化对象,对象的引用就是调用的String类中的toString方法,我们可以重写打印自定义内容

类与类之间的关系

继承,实现

继承关系/泛化关系      继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字 extends明确标识,在设计时一般没有争议性。

实现关系      实现指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系。在Java中此类关系通过关键字 implements明确标识,在设计时一般没有争议性。

依赖,关联

依赖关系      简单的理解,依赖就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,方法执行完,这个关系就不存在了,就是临时使用了一下功能,但是类B的变化会影响到类A。比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖。表现在代码层面,为类B作为参数被类A在某个method方法中使用。 

 关联关系  关联体现的是两个类之间语义级别的一种强依赖关系,比如我和我的朋友,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性 的,而且双方的关系一般是平等的。关联可以是单向、双向的。表现在代码层面,为被关联类B以类的属性形式出现在关联类A中

ClassC cc = new ClassC()

ClassC.staticVar

全局变量,就是指他的成员变量,静态变量

也可能是关联类A引用了一个类 型为被关联类B的全局变量。 

 

聚合,组合

聚合关系      聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于 多个整体对象,也可以为多个整体对象共享。比如计算机与CPU、公司与员工的关系等,比如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇 等。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。 

组合关系/合成关系     组合也是关联关系的一种特例,它体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分间的关系,但此 时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束,比如人和人的大脑。表现在代码层面,和关联关系是一致的,只能从语义级别来区 分。 

内部类(平常做项目用不到)

成员内部类:成员变量,成员方法,构造方法,常量(不能声明静态)

  • 可以直接使用外部类成员变量,静态变量,常量,不管私有还是非私有
  • 可以直接使用外部类成员方法,静态方法,构造方法,不管私有还是非私有

静态内部类:(可以声明静态)

在静态内部类中不能直接调用外部类的成员变量,需要先创建外部类的对象

局部内部类

外部是静态方法

  • 不能定义静态变量和静态方法
  • 在局部内部类中的成员方法中不能直接使用外部类的成员变量,也不能调用外部类的成员方法

外部是成员方法

  • 和成员内部类一样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值