一.封装的描述
封装的概述:封装是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的
封装的原则:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
成员变量使用private关键字修饰,当外部类想要访问,需要已修饰private的类里提供getXxx和setXxx方法
封装好处:通过方法来控制成员变量的操作,提高了代码的安全性把代码用方法进行封装,提高了代码的复用性
1.1 private关键字
private是一种修饰符,它可以修饰成员变量和成员方法
当private修饰了成员变量,则该变量只能在本类进行访问,如果需要被外部类调用,则本类中需要提供getXxx和setXxx方法
public 数据类型getXxx(),用于获取成员变量的值,方法使用public进行修饰
public 数据类型setXxx(),用于设置成员变量的值,方法使用public进行修饰
若开发工具选择IDEA,则可以按ALT+Ins,进而选择Getter和Setter来进行快捷开发
1.2 this关键字
this是一种修饰符,this指向的是成员变量。当传递时,方法的形参和成员变量同名时,使用this指代的成员变量,而不带this指代的是形参;当方法的形参和成员变量不同名,则很好区别了;
二.构造方法
构造方法是一种很特殊的方法,主要用于创建对象
格式:
public class 类名{
修饰符 类名( 参数 ) {//有参构造
}
}
如果没有定义出构造方法,系统默认给出无参构造方法
一上面格式为例,若有参构造不存在 则 默认给出了 public 类名(){//无参构造
内容;
}
如果已存在如格式中的有参构造,则系统不再提供默认的构造方法
有参无参的构造方法使用的就是方法的重载,如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法。
三.String类
3.1 String类概述
String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的时候不需要导包!
3.2String类的特点【理解】
字符串不可变,它们的值在创建后不能被更改(底层是被final修饰)
虽然 String 的值是不可变的,但是它们可以被共享
字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[] )
3.3创建字符串对象两种方式的区别
3.3.1通过构造方法创建
通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同。所以输出结果为false
3.3.2直接赋值方式创建
以""方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,所以结果为true
3.4字符串的比较
总所周知,在基本数据类型中,我们比对俩边值是否一致时都使用了"==",但在引用数据类型中,使用"=="比对的不是俩边的值,而是俩边对应存放的地址值。
那么在字符串比较中,就用到了equals方法,专门用来比对俩边的值
四.StringBuilder类
4.1概述:
StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的
4.2StringBuilder类和String类的区别
String类:内容是不可变的
StringBuilder类:内容是可变的
格式
StringBuilder 变量名 = new StringBuilder(有参/无参);//创建StringBuilder对象
4.3StringBuilder类的添加和反转方法
当创建完对象后,便可以使用 变量名.append(任意类型);来进行添加数据,在返回给本身
也可以通过 变量名.reverse();返回字符的相反序列
4.4StringBuilder和String相互转换
StringBuilder转换为String
public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String
String转换为StringBuilder
public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder