Java第五章(一)

一、Object 类

java.lang.Object 是java类体系中的最顶级的,万类之组

1、toString( ) 方法

功能:当输出一个对象时,会默认调用类中toString()方法,把对象以字符串形式输出,当输出一个对象时,会默认调用类中toString()方法,把对象以字符串形式输出

代码示例:

public class Person extends Object {

      private String name;
      private int  age;

        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }

    /*
      重写父类中toString();
     */
    @Override
    public String toString() {
        return "Person{" +
                "name='" + this.name + '\'' +
                ", age=" + this.age +
                '}';
    }

    @Override
    public boolean equals(Object obj) {
        if(obj==null){
            return false;
        }
        if(this==obj){
            return true;
        }
        if(obj instanceof  Person){
            Person p = (Person) obj;
            return this.name.equals(p.name) && this.age == p.age;
        }
        return false;
    }
}

public class ToStringDemo {

     /*
          toString()
          当输出一个对象时,会默认调用类中toString()方法,把对象以字符串形式输出,
          类中如果没有toString(),那么会调用父类(Object)中的toString();
             public String toString() {
                               Object类中的默认输出类的名字和对象在内存中地址(10进制 转为16进行)
                    return getClass().getName() + "@" + Integer.toHexString(hashCode());
                }
      */

    public static void main(String[] args) {
         Person p1  = new Person("张三1",20);
         Person p2  = new Person("张三2",20);
         System.out.println(p1);//com.ffyc.javaapi.objectdemo.Person@1b6d3586
         System.out.println(p2);
    }
}

2、equals( ) 方法

功能:equals( )用来比较对象中的内容是否相等

注:

  • == 用于基本类型比较时,比较的是值是否相等
  • ==用于引用类型比较时,比较的是两个引用的地址是否相等
  • 其他的类为了比较两个对象中包含的内容是否相等,都对Object中的equals(),进行了重写,改为判断内容是否相等

代码示例:

public class TestEquals {

    public static void main(String[] args) {
        /*
          public boolean equals(Object obj) {
                return (this == obj);
            }
            == 用于基本类型比较时,比较的是值是否相等
            ==用于引用类型比较时,比较的是两个引用的地址是否相等
         */
        int a  = 10;
        int b = 10;
        System.out.println(a==b);

        Person p1  = new Person("张三1",20);//凡是new出来的,内存地址肯定不同
        Person p2  = new Person("张三1",20);
        Person p3 = p2;
        System.out.println(p1.equals(p2));
        //以后如果比较两个对象的地址是否相等时,直接使用==比较即可
        System.out.println(p1==p2);
        System.out.println(p3==p2);
        //所以其他的类为了比较两个对象中包含的内容是否相等,都对Object中的equals(),进行了重写,改为判断内容是否相等
        System.out.println(p1.equals(p2));

        //equals()用来比较对象中的内容是否相等
        String s = new String("abc");
        String s1 = new String("abc");
        System.out.println(s==s1);//false
        System.out.println(s1.equals(s));//true
    }
}

 二、Arrays 类

java.util.Arrays类用于操作数组工具类,里面定义了常见操作数组的静态方法

1、sort( ) 方法

功能:对数组默认进行升序排序

注:自定义类实现Comparable接口,重写compareTo方法,就可以来指定排序规则

代码示例:

public class Student implements Comparable<Student>{

     private int num;
     private String name;

    public Student(int num, String name) {
        this.num = num;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student{" +
                "num=" + num +
                ", name='" + name + '\'' +
                '}';
    }

    /*
      此方法是用来指定排序规则
      此方法会在sort()进行调用
     */
    @Override
    public int compareTo(Student o) {
        return this.num - o.num; // 小于0  等于0 大于0
       // return this.name.compareTo(o.name);
    }
}
import java.util.Arrays;

public class ArraysSort {

    public static void main(String[] args) {

          //int [] a = {5,2,3,4,1,6};
          //Arrays.sort(a); 对整个数组默认进行升序排序
          //Arrays.sort(a,0,4);//对指定区间进行排序  包含开始位置,不包含结束
          //System.out.println(Arrays.toString(a));


          //String[] s = {"b","a","c","d"};
          //Arrays.sort(s);
          //System.out.println(Arrays.toString(s));

         Student s1 = new Student(101,"张三1");
         Student s2 = new Student(102,"张三2");
         Student s3 = new Student(103,"张三3");
         Student s4 = new Student(104,"张三4");
         Student[] students = new Student[4];
         students[0] = s2;
         students[1] = s1;
         students[2] = s4;
         students[3] = s3;
         Arrays.sort(students);
         System.out.println(Arrays.toString(students));

        // System.out.println("c".compareTo("a")); 字符串比较大小 返回一个int值

    }
}

2、binarySearch( ) 方法

功能:二分查找算法, 需要数组是有序,如果数组中不包含要找的key,返回负数,找到了返回元素所在的索引位置

代码示例:

import java.util.Arrays;

public class ArraysBinarySearch {

    public static void main(String[] args) {
        int [] a = {1,2,3,4,5,6,7};

        //二分查找算法, 需要数组是有序,如果数组中不包含要找的key,返回负数,找到了返回元素所在的索引位置
        int  index  =  Arrays.binarySearch(a,8);
        System.out.println(index);

                     //指定区间的查找 包含开始索引,到结束索引-1.
        int index1 = Arrays.binarySearch(a,0,4,5);
        System.out.println(index1);

    }
}

3、copyOf( ) 方法

功能:数组复制

注:java中的数组在创建时,指定长度,一旦给定长度不能改变,所以要对数组进行扩容(30--->扩容40 new 40),后将原数组中的内容复制到一个指定长度的新数组中

代码示例:

public class ArraysCopyof {

    public static void main(String[] args) {
        /*
           数组复制:
             java中的数组在创建时,指定长度,一旦给定长度不能改变
             30--->扩容40 new 40
             将原数组中的内容复制到一个指定长度的新数组中
         */

        int [] a = {1,2,3,4,5};
        int[] b = Arrays.copyOf(a,10);
        System.out.println(Arrays.toString(b));
    }
}

4、toString( ) 方法

功能:返回指定数组内容的字符串表示形式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值