面对对象(封装及其字符串操作)

本文介绍了Java中的封装概念,包括构造方法的使用和标准类的制作过程。同时,详细讲解了String对象的特点,如内存分配和比较方法,以及如何遍历字符串。还探讨了StringBuilder类在字符串拼接中的优势,对比了它与String的区别,并提供了相关方法的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

封装

构造方法

构造方法是一种特殊的方法

作用:创建对象

功能:主要是完成对象数据的初始化

public class 类名{

修饰符 类名(参数){

}

}

注意:1.方法名与类名相同

2.在方法名的前面没有返回值类型的声明

3.在方法中不能使用return语句返回一个值,但是可以单独写return语句来作为方法的结束

如果没有定义构造方法,系统将给出一个默认的无参数的构造方法

如果定义了构造方法,系统将步骤提供默认的构造方法,若还要使用无参数构造方法,就必须再写一个无参数构造方法

标准类的制作

1.成员变量

使用private修饰

2.构造方法

提供一个无参构造方法

提供一个带多个参数的构造方法

3.成员方法

提供每一个成员变量对应的setXxx()/getXxx()

提供一个显示对象信息的show()

4.创建对象并未其成员变量赋值的两种方式

无参构造方法创建对象后使用setXxx()赋值

使用带参构造方法直接创建带有属性值的对象

String常见构造方法

public String() 创建一个空白字符串对象,不含有任何内容

public String(char[] chs) 根据字符数组的内容,来创建字符串对象

public Sting(byte[] bys) 根据字节数组的内容,来创建字符串对象

String s="abc" 直接赋值的方式创建字符串对象,内容就是abc

String对象的特点

1)通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同

2)以""方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象,并在字符串池中维护

字符串的比较

使用==做比较

基本类型:比较的是数据值是否相同

引用类型:比较的是地址值是否相同

字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫:equals()

public boolean equals(Object an Object):将此字符串与指定对象继续比较。由于我们比较的是字符串对象,所以参数之间传递一个字符串

例如

public static void main(String[] args) {
        char[] chs = {'a', 'b', 'c'};
        //构造方法的方式得到对象
        String s1 = new String(chs);
        String s2 = new String(chs);
​
        //直接赋值的方式得到对象
        String s3="abc";
        String s4="abc";
​
        //比较字符串对象地址是否相同
        System.out.println(s1==s2);
        System.out.println(s1==s3);
        System.out.println(s3==s4);
​
        //比较字符串内容是否相同
        System.out.println(s1.equals(s2));
        System.out.println(s1.equals(s3));
        System.out.println(s3.equals(s4));
        /*输出内容:
        false
        false
        true
        true
        true
        true
         */
    }

遍历字符串

1.遍历字符串,首先要能获取到字符串中的每一个字符

public char charAt(int index):返回指定索引出的char值,字符串的索引页数从0开始的.

2.其次是能够获取到字符串的长度

public int length():返回次字符串的长度

数组的长度:数组名.length

字符串的长度:字符串对象.length()

3.遍历字符串的通用格式

for(int i=0;i<s.length();i++){
    s.charAt(i);  //就是指定索引处的字符值
}

StringBuilder概述

如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,即耗时,又浪费内存空间。我们可以通过Java提供的StringBuilder类来解决这个问题

StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是StringBulider对象中的内容是可变的

StringBulider和String的区别

String:内容是不可变的

StringBulider:内容是可变的

StringBulider的的构造方法

public StringBulider():创造一个可变空白字符

public StringBulider(String str):根据字符串内容来创建可变字符串对象

示例代码:

StringBuilder sb=new StringBlider();
System.out.println("sb:"+sb);
//输出内容:sb:
StringBuilder sb2=new StringBlider("hello");
System.out.println("sb2:"+sb2);
//输出内容:sb2:hello
​

StringBulider的添加和反转方法

public StringBuilder append(任意类型):添加数据,并返回对象本身

public StringBuilder reverse():返回相反的字符序列

示例代码:

//创建对象
        StringBuilder sb = new StringBuilder();
        StringBuilder sb2 = new StringBuilder();
        
        sb.append("hello");
        sb.append("world");
        sb.append("java");
        System.out.println("sb:" + sb);
//链式编程
        sb2.append("hello").append("world").append("java");
        System.out.println("sb2:" + sb2);
//返回相反的字符序列
        sb.reverse();
        System.out.println("sb:"+sb);
/*
输出内容
sb:helloworldjava
sb2:helloworldjava
sb:avajdlrowolleh
*/

StringBuilder和String相互转换

1.StringBuilder转换为String

public String to String():通过toString()就可以实现把StringBuilder转换为String

2.String转换为StringBulider

public StringBulider(String s):通过构造方法就可以实现把String转换为StringBuilder

示例代码

//将StringBuilder转换为String
StringBuilder sb=new StringBuilder();
sb.append("hello");
String s=sb.toString();
System.out.println(s);
//输出内容:hello
​
//将String转换为StringBuilder
String s2="world";
StringBuilder sb=new StringBuilder(s2);
System.out,println(s2);
//输出内容:world

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值