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);
相关文章推荐
- 黑马程序员—Java基础学习笔记之String&&StringBuffer&&StringBuilder
- java学习笔记StringBuffer/StringBuilder及基本数据类型
- Java学习笔记--String StringBuffer StringBuilder
- Java源码学习 -- java.lang.StringBuilder,java.lang.StringBuffer,java.lang.AbstractStringBuilder
- 黑马程序员java学习笔记——String字符串及StringBubuffer容器
- java学习笔记五--String类与String例子
- 8.2-全栈Java笔记:字符串相关类(String/StringBuilder /StringBuffer)
- Java学习日志(13-2-StringBuffer/StringBuilder与基本数值类型包装类)
- JAVA笔记系列:字符串操作——string stringbuilder stringbuffer
- 黑马程序员_Java学习日记_JAVA中API中对象String和StringBuffer/StringBuilder
- Java基础学习笔记(二)常用类String
- (JAVA SE 学习笔记)Java.SE.第011讲.面向对象之封装.续二(对一些原理机制进行了详细的解释,适合初学者学习)
- Java学习笔记---8.面向对象编程03-String类的重点应用
- Java nio 学习笔记(一) Buffer(缓冲区)与Channel(通道)的相关知识
- Java核心类库——String StringBuffer StringBuilder
- java学习笔记(String类)
- 【Java 学习笔记】 String.split使用心得
- (JAVA SE 学习笔记)Java.SE.第010讲.面向对象之封装.续
- java学习笔记(三十七)java新IO之Buffer
- JNI学习笔记4——本地代码创建Java对象(包括javaString)