您的位置:首页 > 产品设计 > UI/UE

Java学习笔记(四)--封装 String类 StringBuffer StringBuilder

2017-04-06 01:01 495 查看

封装

1.封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

2.好处:

-提高了代码的复用性

-提高了安全性

3.体现:将不需要对外提供的内容都隐藏起来。

4.做法:把属性隐藏,提供公共方法对其访问。

5.修饰符关键字:private

-私有的意思

-可以修饰成员变量和成员方法

-特点:被private访问。修饰的内容,只能在本类中。

6.封装加入private后的标准代码:

-成员变量用private修饰
-针对每一个成员变量给出get/set方法


this关键字

就近原则:

局部变量如果有一个变量和成员变量一致,那么优先使用局部变量。


造成一个结果:

局部变量隐藏了成员变量。


为了解决这种情况,java提供了一个代表本类对象的关键字:this。this这个关键字指代本类中的一个对象,谁调用this,this指代谁。

需求:定义一个学生类。

public static class Student{
//私有化成员变量
private String name;
private int age;
//对外提供get/set函数
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
//功能性方法
public void study(){
System.out.println("学生需要学习");
}
public void sleep(){
System.out.println("学生需要睡觉");
}
}


构造方法

1.构造方法:给对象的数据进行初始化。

2.构造方法特点:

-方法名与类名相同
-无返回值类型
-无返回值
-如果你没有提供构造方法,系统会默认给出无参构造方法
-构造方法可以重载


3.标准代码:

第一步:私有化成员变量;
第二步:为私有化成员变量提供set/get方法;
第三步:构造无参和有参构造方法
第四步:写功能性方法


需求:写一个标准手机类:

成员变量:

brand,price,color

构造方法:

无参,带参

成员方法:

getXxx()/setXxx()

功能性方法:

show(),call()

public class Phone{
//私有化成员变量
private String brand;
private int price;
private String color;
//为私有化成员变量提供set/get方法
public void setBrand(String brand){
this.brand=brand;
}
public String getBrand(){
return brand;
}
public void setPrice(int price){
this.price=price;
}
public String getPrice(){
return price;
}
public void setColor(String color){
this.color=color;
}
public String getColor(){
return color;
}
//构造无参和有参构造方法
public void Phone(){}
public void Phone(String brand,int price,String color){
this.brand=brand;
this.price=price;
this.color=color;
}
//功能性方法
public void show(){
System.out.println("show这个手机");
}
public void call(){
show(),call("手机可以打电话");
}
}


需求:定义一个类MyMath,提供基本的加减乘除功能,然后进行测试。

add(int a,int b)

sub(int a,int b)

mul(int a,int b)

div(int a,int b)

public class MyMath{
public int add(int a,int b){
return a+b;  //加法
}
public int sub(int a,int b){
return a-b;  //减法
}
public int mul(int a,int b){
return a*b;  //乘法
}
public int div(int a,int b){
return a/b;  //除法
}
}


需求:定义一个长方形类,定义求周长和面积的方法。

public class Rectangle{
public int perimeter(int length,int width){
return 2*(length+width);
}
public int area(int length,int width){
return length*width;
}
}


需求:定义一个测试类Test,进行测试长方形类。

public class Test{
Rectangle r = new Rectangle();
int perimeter = r.rectangle(10,20);
System.out.println(perimeter);
int area = r.area(10,20);
System.out.println(area);
}


static关键字

1.作用:可以修饰成员变量和成员方法。

2.特点:

-随着类的加载而加载
-优先于对象而存在
-被类的所有对象共享
-可以通过类名调用
--非静态的:创建对象访问
--静态的:可以通过类名,也可以通过对象访问


例如:

饮水机:static
水杯:特有的内容


3.注意事项;

-static方法中没有this关键字,因为静态的内容通过累的加载而加载,this是随着对象的创建而存在。
-静态方法只能访问静态的
a93c
成员。


String类

1.由多个字符组成的一串数据(字符序列)。字符串可以看做一个字符数组。

2.构造方法:

public String():无参构造方法
public String(byte[] bytes):把字节数组转换为字符串
public String(char[] value):把字符数组转换为字符串
publicString(char[] value,int offset,int count):把字符数组的一部分转换为字符串
public String(String original):把字符串转换为字符串


需要利用到的一个成员方法:

public int length() //返回此字符串长度


3.特点:

-字符串是常量,字符串的内容不能发生改变,但是字符串引用的指向是可以发生改变的。

-变量相加,先开空间,再加。

常量相加,先加,找是否有这样的数据空间,如果没有才开空间。

4.String类的成员方法(判断功能):

boolean equals(Object obj):比较两个字符串的内容是否相同,严格区分大小写。
boolean equalsIgnoreCase(String str):比较两个字符串的内容是否相同,不区分大小写。
boolean contains(String str):判断字符串中是否包含一个子串。
boolean startsWith(String str):判断是否以指定的字符串开头。
boolean endsWith(String str):判断是否以指定的字符串结尾
boolean isEmpty():判断字符串的内容是否为空。


String类的成员方法(获取功能):

int length():返回字符串的长度。其实就是字符的个数。
char charAt(int index):返回字符串中指定索引处的字符。
int indexOf(int ch):返回指定的字符在字符串中第一次出现的索引。
int indexOf(String str):返回指定的字符串在字符串中第一次出现的索引。
String substring(int start):截取从start开始到末尾的字符串。
String substring(int start,int end):截取从start开始到end结束的字符串。


String类的成员方法(转换功能):

byte[] getBytes():把字符串转换为字节数组
char[] toCharArray():把字符串转换为字符数组
static String valueOf(char[] chs):把字符数组转换为字符串
static String valueOf(int i):把int类型的数据转换为字符串
valueOf():可以把任意类型的数据转换为字符串。
String toLowerCase():把字符串转成小写
String toUpperCase():把字符串转成大写
String concat(String str):拼接字符串


String类的成员方法(替换功能):

String replace(char old,char new)
String replace(String old,String new)


String类的成员方法(去除字符两端的空格):

String trim()


StringBuffer和StringBuilder

1.StringBuffer:线程安全的可变字符序列。

与String区别:

String内容不可变
StringBuffer内容可变


与StringBuilder区别:

String 线程安全,效率低
StringBuffer 线程不安全,效率高


2.构造方法:

StringBuffer():构造一个其中不带字符的字符串缓冲区,其初始容量为16个字符。
StringBuffer(Int Capacity):构造一个其中不带字符的字符串缓冲区,其初始容量为capacity个字符。
StringBuffer(String str):构造一个其中带字符的字符串缓冲区。


3.成员方法:

public int length():返回长度(字符数),实际值。
public int capacity():返回当前容量,理论值。
-添加功能:添加元素,并返回本身的对象。
--public StringBuffer append(String str):追加数据,在末尾添加
--public StringBuffer insert(int offset,String str):插入数据,在指定位置添加
-删除功能:
--public StringBuffer deleteCharAt(int index):删除指定索引处的字符
--public StringBuffer delete(int start,int end):删除从start开始到end结束的数据,包左不包右
-替换功能:
public StringBuffer replace(int start,int end,String str):用str替换从start到end的数据
-反转功能:
public StringBuffer reverse()
-截取功能:返回值类型是String类型,本身没有发生改变
--public String substring(int start)
--public String substring(int start,int end)


5.相互转换:

-String – StringBuffer

String s = "hello";
// 方式1
StringBuffer sb1 = new StringBuffer(s);
// 方式2
StringBuffer sb2 = new StringBuffer();
sb2.append(s);


-StringBuffer – String

StringBuffer sb = new StringBuffer("world");
//方式1
String s1 = sb.substring(0);
//方式2
String s2 = sb.toString();
//方式3
String s3 = new String(sb);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: