第26天学习打卡

JavaBean重写Object类的方法

需求:开发中通常需要将对象转换成字符串形式进行传输,也需要对将使用的对象进行相等判断。定义标准JavaBean类,重写toString和equals方法。

步骤:

​ 定义标准Java Bean类Student,属性:id,name,score

​ 重写toString():

​ 该对象的字符串表现形式,一般都是包含所有属性值且具有一定的格式的字符串

​ 重写equals():

​ 可以通过关键属性(id name score)来确定该类的两个对象是否相同,可以比较所有属性值

​ 在测试类中创建Student对象并使用

package cn.itcast.demo02;
//学生类
public class Student {
    //成员变量
    private int id;//编号
    private String name;//姓名
    private int score;//成绩
    //构造方法


    public Student() {
    }

    public Student(int id, String name, int score) {
        this.id = id;
        this.name = name;
        this.score = score;
    }
    //成员方法

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
    //toString() ,用来将对象转换成其对应的字符串形式


    //equals()方法,用来比较两个对象是否相同
}

package cn.itcast.demo02;

/*
   需求:定义一个标准的JavaBean类,并在测试类中进行测试
   学生类:Student
       属性:id(编号) ,name(名字) ,score(成绩)

 */

public class Test {
    public static void main(String[] args) {
        //测试toString方法
        //创建学生类对象
        Student s1 = new Student(1, "欧阳修",66);
        //输出语句直接打印对象,默认调用了该对象的toString()方法。
        System.out.println(s1);
        //类似于这种形式
        System.out.println(s1.toString());

    }
}

输出结果:

cn.itcast.demo02.Test
cn.itcast.demo02.Student@14ae5a5
cn.itcast.demo02.Student@14ae5a5

Process finished with exit code 0

自定义版的重写equals()方法

package cn.itcast.demo02;
//学生类
public class Student {
    //成员变量
    private int id;//编号
    private String name;//姓名
    private int score;//成绩
    //构造方法


    public Student() {
    }

    public Student(int id, String name, int score) {
        this.id = id;
        this.name = name;
        this.score = score;
    }
    //成员方法

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
    //toString() ,用来将对象转换成其对应的字符串形式

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


    //equals()方法,用来比较两个对象是否相同
    //自定义的重写equals()方法
    //假设id属性值相同,两个对象就是同一个对象
    public boolean equals(Object obj){
        //s1.equals(s2)
        /*
        this:被调用,this就表示谁。这里表示s1
        obj:表示s2
        这里的比较是obj 和this比较
         */
        //向下转型
        Student s2 = (Student) obj;
        return this.id == s2.id;
    }

}

package cn.itcast.demo02;

/*
   需求:定义一个标准的JavaBean类,并在测试类中进行测试
   学生类:Student
       属性:id(编号) ,name(名字) ,score(成绩)
    注意:
        实际开发中,我们把两个对象的各个属性值都相同相同的情况下,才会认为这两个对象是同一个对象

 */

public class Test {
    public static void main(String[] args) {
        //测试toString方法
        //创建学生类对象
        Student s1 = new Student(1, "欧阳修",66);
        //输出语句直接打印对象,默认调用了该对象的toString()方法。
        System.out.println(s1);
        //类似于这种形式
        System.out.println(s1.toString());

        //测试equals()方法, s1.equals(s2);
        Student s2 = new Student(11,"欧阳修",66);
        boolean b1 = s1.equals(s2);
        System.out.println(b1);

    }
}

package cn.itcast.demo02;

import java.util.Objects;

//学生类
public class Student {
    //成员变量
    private int id;//编号
    private String name;//姓名
    private int score;//成绩
    //构造方法


    public Student() {
    }

    public Student(int id, String name, int score) {
        this.id = id;
        this.name = name;
        this.score = score;
    }
    //成员方法

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
    //toString() ,用来将对象转换成其对应的字符串形式

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


    //equals()方法,用来比较两个对象是否相同
    //通过快捷键的方法生成


    @Override
    public boolean equals(Object o) {
        //this-->指的是s1  o--->对应s2
        //比较两个对象的地址值是否相同,提高效果
        //补充:如果if语句控制的语句体只有一行代码,那么{}可以省略不写
        if (this == o)
            return true;
        //判断要比较的两个对象是否是同一个类型的对象,提高程序的健壮性
        //拿s1的字节码和s2的字节码进行比较
        if (o == null || getClass() != o.getClass())
            return false;
        //向下转型,正常的逻辑代码
        Student student = (Student) o;
        return id == student.id && score == student.score && name.equals(student.name);
    }


}

package cn.itcast.demo02;

/*
   需求:定义一个标准的JavaBean类,并在测试类中进行测试
   学生类:Student
       属性:id(编号) ,name(名字) ,score(成绩)
    注意:
        实际开发中,我们把两个对象的各个属性值都相同相同的情况下,才会认为这两个对象是同一个对象

 */

public class Test {
    public static void main(String[] args) {
        //测试toString方法
        //创建学生类对象
        Student s1 = new Student(1, "欧阳修",66);
        //输出语句直接打印对象,默认调用了该对象的toString()方法。
        System.out.println(s1);
        //类似于这种形式
        System.out.println(s1.toString());

        //测试equals()方法, s1.equals(s2);
        Student s2 = new Student(1,"欧阳修",66);
        boolean b1 = s1.equals(s2);
        System.out.println(b1);

    }
}

输出结果:

cn.itcast.demo02.Test
Student{id=1, name=‘欧阳修’, score=66}
Student{id=1, name=‘欧阳修’, score=66}
true

Process finished with exit code 0

Scanner类

简介

扫描器。能够解析字符串(String)和基本数据类型的数据

构造方法

Scanner(InputString):

​ 构造一个扫描器对象,从指定输入流中获取数据参数System.in,对应键盘录入

成员方法

hasNextXxx():

​ 判断是否还有下一个输入项,其中Xxx可能是任意基本数据类型,返回结果为布尔类型。

nextXxx():

​ 获取下一个输入项,其中Xxx可能是任意基本数据类型。返回对应类型的数据。

String nextLine():

​ 获取下一行数据,以换行符作为分隔符。

String next():

​ 获取下一个输入项,以空白字符作为分隔符。空白字符:空格、tab、回车等

image-20210203100319675

接收整数

package cn.itcast.demo03;
/*
    Scanner类:
         概述:
         扫描器。能够解析字符串(String)和基本类型的数据
         构造方法:
         hasNextXxx():
                判断是否还有下一个输入项,其中Xxx可能是任意基本数据类型,返回结果为布尔类型。

          nextXxx():
                获取下一个输入项,其中Xxx可能是任意基本数据类型。返回对应类型的数据。

          String nextLine():
               获取下一行数据,以换行符作为分隔符。

          String next():
                   获取下一个输入项,以空白字符作为分隔符。空白字符:空格、tab、回车等


     */

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //创建Scanner类型的对象(注意:要导包)
        //System.in:标准的输入流,默认指向键盘。就是你对键盘进行的操作System.in都能监听到
        Scanner sc = new Scanner(System.in);


        //接收整数
        System.out.println("请录入一个整数");

        //为了解决(避免)InterruptedException异常,可以加入一个判断
        if(sc.hasNextInt()){
            //判断下一个录入的是否是整数,如果是,结果就是true
            int num = sc.nextInt();
            System.out.println("num:" + num);
        }

    }

}

接收字符串类型

nextLine():

package cn.itcast.demo03;
/*
    Scanner类:
         概述:
         扫描器。能够解析字符串(String)和基本类型的数据
         构造方法:
         hasNextXxx():
                判断是否还有下一个输入项,其中Xxx可能是任意基本数据类型,返回结果为布尔类型。

          nextXxx():
                获取下一个输入项,其中Xxx可能是任意基本数据类型。返回对应类型的数据。

          String nextLine():
               获取下一行数据,以换行符作为分隔符。

          String next():
                   获取下一个输入项,以空白字符作为分隔符。空白字符:空格、tab、回车等


     */

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //创建Scanner类型的对象(注意:要导包)
        //System.in:标准的输入流,默认指向键盘。就是你对键盘进行的操作System.in都能监听到
        Scanner sc = new Scanner(System.in);


        

        //接收字符串类型的数据
        System.out.println("请录入一个字符串:");
        String str1 = sc.nextLine();
        System.out.println("str1:" + str1);

    }

}

next():用法

package cn.itcast.demo03;
/*
    Scanner类:
         概述:
         扫描器。能够解析字符串(String)和基本类型的数据
         构造方法:
         hasNextXxx():
                判断是否还有下一个输入项,其中Xxx可能是任意基本数据类型,返回结果为布尔类型。

          nextXxx():
                获取下一个输入项,其中Xxx可能是任意基本数据类型。返回对应类型的数据。

          String nextLine():
               获取下一行数据,以换行符作为分隔符。

          String next():
                   获取下一个输入项,以空白字符作为分隔符。空白字符:空格、tab、回车等
        注意:
           在实际开发中,应用到的最多就是:
           nextInt():接收整数
           nextLine():接收字符串


     */

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //创建Scanner类型的对象(注意:要导包)
        //System.in:标准的输入流,默认指向键盘。就是你对键盘进行的操作System.in都能监听到
        Scanner sc = new Scanner(System.in);




        //接收字符串类型的数据
        System.out.println("请录入一个字符串:");
       /* String str1 = sc.nextLine();//结束标记是 换行符
        System.out.println("str1:" + str1);*/


        String str2 = sc.next();//结束标记是:空白字符(空格,tab,换行符),到这些标记时后面的字符都不打印
        System.out.println("str2:" + str2);


    }

}

String类

简介

字符串。每一个字符串对象都是常量。

构造方法

String(byte[]):

​ 构造一个String对象,将指定字节数组中的数据转化为字符串。

String(char[]):

​ 构造一个String对象,将指定字符串数组中的数据转化为字符串。

成员方法

boolean equals(String):

​ 判断当前字符串与给定字符串是否相同,区分大小写。

boolean equalsIgnoreCase(String):

​ 判断当前字符串与给定字符串是否相同,不区分大小写。

boolean startsWith(String):

​ 判断是否以给定字符串开头。

image-20210203110448204

package cn.itcast.demo04;
/*
String类:
概述:
      字符串,每个字符串对象都是常量。
构造方法:
       String(byte[]):构造一个String对象,将指定字节数组中的数据转化为字符串
       String(char[]):构造一个String对象,将指定字符数组中的数据转化为字符串
成员方法:
       boolean equals(String): 判断当前字符串与给定字符串是否相同,区分大小写
       boolean equalsIgnoreCase(String):判断当前字符串与给定字符串是否相同,不区分大小写
       boolean startsWith(String):判断是否以给定字符串开头
       boolean isEmpty():判断字符串是否为空

 */

public class Test {
    public static void main(String[] args) {
        //测试  构造方法
        //1.将指定的字节数组转成字符串
        //'a':97 'b':98 'c':99
        byte[] bys = {97, 98, 99};
        String s1 = new String(bys);
        System.out.println("s1:" + s1);
        System.out.println("===================");

        //2.将指定的字符数组转成字符串
        char[] chs = {'h', 'e', 'l', 'l', 'o'};
        String s2 = new String(chs);
        System.out.println("s2:" + s2);
        System.out.println("============================");

        //在实际开发中,String 类非常常用,每次都new很麻烦,于是针对String的语法进行了优化,省去了new的动作
        String s3 = "doudou";//免用new
        System.out.println("s3 :" + s3);
        System.out.println("===========================");


        //测试成员方法
        String str1 = "abc";
        String str2 = "ABC";
        // boolean equals(String): 判断当前字符串与给定字符串是否相同,区分大小写
        boolean b1 = str1.equals(str2);
        System.out.println("equals():" + b1);
        //       boolean equalsIgnoreCase(String):判断当前字符串与给定字符串是否相同,不区分大小写
        boolean b2 = str1.equalsIgnoreCase(str2);
        System.out.println("equalsIgnoreCase():" + b2);
        //       boolean startsWith(String):判断是否以给定字符串开头
        //需求:判断字符串str1,是否以字符串"a"开头
        boolean b3 = str1.startsWith("ab");//与abc进行比较
        System.out.println("startsWith:" + b3);
        //       boolean isEmpty():判断字符串是否为空
        String str3 = "";
        boolean b4 = str3.isEmpty();
        System.out.println("isEmpty():" + b4);



    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值