当前位置: 首页 > wzjs >正文

哈尔滨网站设计培训班WordPress碎语

哈尔滨网站设计培训班,WordPress碎语,网站上线 邮件群发模板,做网站推广怎样才能省钱Comparable 接口 查看接口ctrl鼠标 sort 要求传入的数组的每个对象都是“可比较”的,也就是说对象中的某个成员变量可以进行比较(比如姓名、年龄等)。这样通过重写 compareTo 方法就可以定义比较规则 Comparable接口是一个泛型&#xff08…

 Comparable 接口

查看接口ctrl+鼠标

sort 要求传入的数组的每个对象都是“可比较”的,也就是说对象中的某个成员变量可以进行比较(比如姓名、年龄等)。这样通过重写 compareTo 方法就可以定义比较规则

Comparable接口是一个泛型(要比较什么类型,就把类名传入)接口,用于定义对象的排序规则。该接口中只有一个方法compareTo(),用于比较这个对象与另一个对象的大小关系。

compareTo()方法

 int compareTo(T obj)

用法:

compareTo()方法返回一个整数值,表示当前对象与参数对象的大小关系:

如果返回值小于0,表示当前对象小于参数对象;
如果返回值等于0,表示当前对象等于参数对象;
如果返回值大于0,表示当前对象大于参数对象。
Comparable接口需要实现类重写compareTo()方法,根据对象的某个属性或多个属性进行比较,从而确定对象的大小关系。

一般情况下自定义类型可以进行比较 

比较器Comparator接口

用于定义两个对象之间的比较规则。它通常用于排序算法中,使得对象可以按照自定义的规则进行排序。

比较器接口中只有一个方法:compare(Object o1, Object o2),该方法用于比较两个对象。返回一个负整数、零或正整数,表示o1小于、等于或大于o2。根据返回值的不同,可以确定两个对象的相对顺序。

比较器的使用可以实现灵活的排序规则,不依赖于对象的自然排序。它可以按照不同的属性、不同的顺序进行排序,同时也可以处理特定的比较需求,例如忽略大小写比较字符串等。

 

Clonable 接口

Object 类中存在一个 clone 方法,调用这个方法可以创建一个对象的拷贝,要调用 clone 方法,需要先实现 Clonable 接口,否则就会抛出 CloneNotSupportedException 异常(不支持克隆异常)

class Person implements  Cloneable{//当自己写的类型支持克隆时,一定要使用克隆接口public String  name;public int age;public Money money = new Money();public Person(String name, int age) {//提供构造方法this.name = name;this.age = age;}

浅拷贝 VS 深拷贝

Cloneable接口的clone方法可以实现浅拷贝,如果要实现深拷贝,那么让需要对对象中的引用类型进行拷贝

深浅拷贝与代码的实现有关

浅拷贝: 只有一份地址 

深拷贝:克隆出一份地址 相当于有两份地址

Object类

概念

Object类是Java中所有类的父类它定义了一些通用的方法,可以被其他类继承重写

    public static void func(Object obj) {System.out.println(obj);}

类中的方法, 开锁的可以直接使用被public修饰;锁起来被private修饰(间接调用)

Object类中也有一些定义好的方法

 获取对象信息toString方法

如果要打印对象中的内容,就需要重写Object类中的toString()方法,不然会打印出它的地址(内存地址的字符串表示形式)

// Object类中的toString()方法实现:
public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

对象比较equals方法

要比较对象的内容是否相等,那就要用到equals方法,但是需要进行重写,因为它默认按地址进行比较的

我们常见的==就可以实现比较,它在比较时:
如果它左右操作数是基本类型变量,比较的是变量中值是否相同
如果左右两侧是引用类型变量,则比较引用变量地址是否相同

如果不重写,默认为:

 比较person:

@Override//idea可以直接生成public boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Person person = (Person) o;return age == person.age && name.equals(person.name);}@Overridepublic int hashCode() {return Objects.hash(name, age);}
}
public static void main(String[] args) {Person person = new Person("zs", 10);Person person1 = new Person("zs", 10);// System.out.println(person == person1);System.out.println(person.equals(person1));}

内部类

概念

在 Java 中, 可以将一个类定义在另一个类或者一个方法的内部,前者称为内部类,后者称为外部类。内部类也是封装的一种体现.
public class OutClass {
class InnerClass{
}
}
// OutClass是外部类
// InnerClass是内部类
【注意事项】
1. 定义在 class 类名 {} 花括号外部的,即使是在一个文件里,都不能称为内部类
2. 内部类和外部类共用同一个 java 源文件,但是经过编译之后, 内部类会形成单独的字节码文件

分类

实例内部类

内部类生成的字节码文件--通过外部类引出

必须要静态的时候添加final--让时间更早

1. 外部类中的任何成员都可以在实例内部类方法中直接访问
2. 实例内部类所处的位置与外部类成员位置相同,因此也受public、private等访问限定符的约束
3. 在实例内部类方法中访问同名的成员时,优先访问自己的,如果要访问外部类同名的成员,必须:外部类名称.this.同名成员 来访问
4. 实例内部类对象必须在先有外部类对象前提下才能创建
5. 实例内部类的非静态方法中包含了一个指向外部类对象的引用
6. 外部类中,不能直接访问实例内部类中的成员,如果要访问必须先要创建建内部类的对象

静态内部类 

static修饰的内部成员类称为静态内部类。
注意事项
1. 在静态内部类中只能访问外部类中的静态成员
确实想访问:
2. 创建静态内部类对象时,不需要先创建外部类对象

 局部内部类

定义在外部类的方法体或者{}中,该种内部类只能在其定义的位置使用,一般使用的非常少。
注意事项
1. 局部内部类只能在所定义的方法体内部使用
2. 不能被public、static等修饰符修饰
3. 编译器也有自己独立的字节码文件,命名格式:外部类名字$数字内部类名字.class
4. 几乎不会使用

匿名内部类

  interface  IA {void test();}
public class test {// new IA();接口不能实例化public static void main(String[] args) {IA a=new IA() {@Overridepublic void test () {System.out.println("重写接口的方法!");}};a.test();

 

 

http://www.dtcms.com/wzjs/610857.html

相关文章:

  • 毕业设计做网站用什么软件上海网站推广服务
  • 厂西建设厅网站东钱湖镇建设局网站
  • 建立网站的公司平台娱乐网站建设怎么样
  • 建设网站的公司swot软件开发的前景
  • 陈铭生的原型是谁安卓优化大师官方下载
  • 网站策划模板wordpress怎么破解付费插件
  • 网站后台如何上传附件网站添加文字大小
  • 电子商务网站建设与维护课程标准软件开发模型的种类
  • 学校网站建设栏目有哪些如何用dw做网站
  • 手机网站建设平台合同百度推广 个人网站
  • 金华网站建设公司公众号开发工具
  • 虚拟机怎么做网站wordpress搜索返回页面
  • 东莞网站建设北京做招聘网站的公司
  • 做相册的网站 网易在线免费货源网站入口
  • 南京本地网站建设网站代运营合同
  • 一个网站如何产生流量北京网站营销seo方案
  • 连云港公司企业网站建设网页产品设计
  • 网站开发专业简历网页链接的视频怎么下载
  • 江阴网站开发招聘wordpress修改字体大小
  • 塘沽网站建设公司做网站好多钱
  • 网站建设哪家做的好广告网络推广
  • 商城网站开发流程广州互联网广告推广
  • 青海建设厅职称网站第三方wordpress安卓客户端
  • 网站建设杭州公司广东网站建设公司电话
  • seo网站推广服务怎么做网络推广
  • 发广告的网站咸阳网站建设专业公司
  • 天天斗地主官方网站开发在国外做热情网站的风险
  • 网站上传发生一个ftp错误长沙网站推广运营
  • 大连做网站报价做网站范本
  • 红色主题ppt免费模板网站制作公司都找乐云seo