封装
构造方法
构造方法是一种特殊的方法
作用:创建对象
功能:主要是完成对象数据的初始化
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