java第九课(object类,final关键字,String类)

1.object类

在我们平时创建一个类的时候往往我们明明什么内容都没有写,但是他缺有很多的方法?其实我们所书写的所有类都默认继承了一个类,这个类就是Object类。

object类又叫万类之祖,因为在java中如果没有写继承的话,那么就默认这个类继承Object类,例如,以下定义完全相同。

class Person { }

class Person extends Object { }

使用Object可以接收所有对象。

public class cat {
    int legs=4;
    String fur="黄色";
    int eyes=2;
    public void run(){
        System.out.println("猫跑的飞快");
    }
    public void accompany(){
        System.out.println("猫能陪我好久");
    }

    public static void main(String[] args) {
       Object a =new cat();
    }
    
}

Object 类属于java.lang包,此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入。

接下来将Object类常用的几个方法。

1.1tostring()

该方法用得比较多,一般子类都有覆盖,来获取对象的信息,在idea中可以使用快捷键alt和insert快速生成,直接调用生成的是元素的地址信息。

public class cat {
    int age=10;
    String s ="猫";

    @Override
    public String toString() {
        return "cat{" +
                "age=" + age +
                ", s='" + s + '\'' +
                '}';
    }

    public static void main(String[] args) {
        cat c =new cat();
        System.out.println(c.toString());
    }
}

1.2equals()

用来比较两个对象的内容是否相等。

1.3hashCode()

该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。对象的一个唯一值,用来快速定位内存地址

1.4finalize()

对象被JVM回收的一定会自动调用。当对象已满时自动调用。

2.final关键字

2.1修饰变量

final int num = 10;
num = 20;

这段代码是错误的当num被fianl修饰后,后面他的值就不能在被修改,否则就会报错。

2.2修饰方法

使用final修饰的方法表示该方法不能被子类重写。从写的话就会报错。

2.3修饰类

使用final修饰的类表示该类不能被继承。

总的来说,final关键字用来表示最终的、不可改变的内容,包括不可继承的类、不可重写的方法和不可修改的常量。

3.String类

3.1String类并不是基本数据类型

String 并不是基础的数据类型,而是一个引用类型。String 类属于引用数据类型,因为其实际上是一个对象,而不是原始数据。在 Java 中,字符串(String)是一种特殊的对象,可以通过使用双引号来创建字符串实例,而不需要使用 new 关键字。因此,在 Java 中,String 不是基础的数据类型,而是引用数据类型。基础的数据类型有doublelongfloat,Int,short,byte,char,boolean八种。

3.2String和StringBuilder的区别

String和Stringbuilder都是字符串处理的类,String 类是不可变的,意味着一旦创建了一个 String 对象,它的值就不能被修改。任何对 String 对象的操作都会创建一个新的 String 对象,而原始的 String 对象保持不变。

String b="1";

b="3";

第一次对b赋值1,此时b的地址为1,第二次为b赋值时,就会开辟新的空间,地址为1的空间的值还是1,第二次开辟的空间为2,给这个空间的值为2.

StringBuilder 类是可变的,可以通过调用方法来更改 StringBuilder 实例中的内容,而不会创建新的对象。这样可以提高效率,特别适用于需要频繁修改字符串的情况。

String类效率没有Stringbuilder高。

3.3String常用的几种方法

public static void main(String[] args) {
    String s= "wwww";
    System.out.println(s.hashCode());//对象的一个唯一值,用来快速定位内存地址
    System.out.println(s.equals("wwww"));//用来判断两个字符串是否相等
    String t=String.valueOf(1234);//将其他类型转换为String类型
    System.out.println(s);
    char[] arr={'a','b','c'};
    s=String.valueOf(arr,0,3);//将字符拼接成字符串
    System.out.println(s);
    System.out.println(s.toUpperCase());//字符串大写
    System.out.println(s.toLowerCase());//字符串小写
    System.out.println(s.toString());
    s+="       ";
    System.out.println(s.trim());//清除前后空格
    s="abcdefghijklmn";
    System.out.println(s.substring(3, 10));//字符串的截取
    System.out.println(s.lastIndexOf("e"));//字符串的查找
    s="abc.def.ghi";
    s.replace(".","*");
    System.out.println(s.replace(".","*"));//字符串的替换
    String[] a=s.split("b");//字符串的分割
    for (int i = 0; i < a.length; i++) {
        System.out.println(a[i]);
    }


}

这是这段代码的运行结果。

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值