201711671212 《JAVA程序设计》第八周学习总结

教材学习内容总结

本周学习内容:第7章 内部类与异常类 ,第8章 常用实用类。

第七章:

1.内部类:在一个类中定义另一个类。而包含内部类的类成为内部类的外嵌类。

  • 内部类中的方法可以调用外嵌类中的方法;内部类的类体中不可以声明类变量和类方法;其他类不可以用某各类的内部类声明对象。
  • 内部类对应的字节码文件的名字格式是“外嵌类名$内部类名”。
  • 内部类可以被修饰为static内部类,但static内部类不能操作外嵌类中的实例成员变量。

2.匿名类:一个子类去掉类声明后的类体。

  • 它是一个子类,不可以声明对象,但是可以用匿名类创建一个对象。
  • 可以继承或改写父类方法。
  • 匿名类一定是内部类。
  • 不可以声明static成员变量和static方法。
  • 匿名类没有类名,所以使用匿名类创建对象时,要直接使用父类的构造方法。
new Bank() {
        匿名类的类体
};
  • 直接用接口名和一个类体创建一个匿名对象,实现了Computable接口的类去掉类声明后的类体;
new Computable() {
    实现接口的匿名类的类体
};

3.异常类

(1)try-catch语句:try部分抛出一场对象,或调用某个可能抛出异常对象的方法,则try立刻结束执行,转向执行相应的catch部分

try {
包含可能发生异常的语句
}
catch(ExceptionSubClass e) {
...
}
catch(ExcptionSubClass e)  {
...
}
 
  • 各个catch参数中的异常类都是Exception的某个子类,这些子类不能有父子关系,否则保留一个含有父类参数的catch即可。

(2)自定义异常类

  •  throw关键字的作用是抛出异常。
  • throw和throws是两个不同的关键字。

(3)断言

  • 一般用于程序不准备通过捕获异常来处理的错误。
  • 格式:
assert booleanExpression;
assert booleanExpression:messageException;
  • 启用断言语句:-ea
  • 例如:java -ea mainClass

(4)带finally子语句的try-catch语句

try{}
catch (ExceptionSubClass e){}
finally{}
  • 执行ry-catch语句后,执行finally语句。
  • 如果在try-catch语句中执行了return语句,finally子语句仍然会被执行
  • 如果执行了程序退出代码(System.exit(0);),则不执行finally语句以及其后的所有语句。

第八章:

一、String类 

  1. 用于处理字符序列的类
  2. String类是被定义为final类,即String类不可以有子类。
  3. 构造String类
String s=new String("we are students");//第一种构造方法。

char a[]={'j','a','v','a'};
String s=new String(a);                //第二中构造方法:相当于 String s= new String("Java");


char a[]={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
String s=new String(a,2,4);            //第三种构造方法

                                        //相当于 String s=new String("贰叁肆伍");

       引用String常量

二、字符串

1.String使用“+”号进行并置运算 ,可得一个新的String对象

String you="你";
String hi="好";
String testOne;

testOne=you+hi;

    例子8_1

public class Example8_1 {
	public static void main(String args[]) {
		String hello="你好";
		String testOne="你"+"好";
		System.out.println(hello==testOne);		//ture	
		System.out.println("你好"==testOne);		//ture
		System.out.println("你好"==hello);		//ture
		String you="你";
		String hi="好";
		String testTwo=you+hi;
		System.out.println(hello==testTwo);		//输出结果是false
		String testThree=you+hi;
		System.out.println(testTwo==testThree);	//输出结果是false
	}
}

2.String类的常用方法

public int length() 

public boolean equals(String s)

public boolean startWith(String s)、public boolean endsWith(String s)

public int compareTo (String s)

public boolean contains(String s)

public String substring(int startpoint)

public String trim()

3.对象的字符串表示: 创建对象的类的名字@对象的引用的字符串表示

4.正则表达式课查阅java.util.regex包中的Pattern类,元字符重要,需谨记。

5.字符串的替换:String对象调用public String replaceAll(String regex,String replacement)方法。

字符串的分解:String对象调用public String[] split(String regex)方法。

三、StringTokenizer类

1.该类有两个常用的构造方法

  • StringTokenizer (String s):为String对象s构造一个分析器,使用默认分隔标记。
  • StringTokenizer (String s,String delim):为String对象s构造一个分析器,参数delim的字符序列中的字符的任意排列被作为分隔标记。
  • 用空间换取速度
StringTokenizer fenxi = new StringTokenizer("You are welcome");
StringTokenizer fenxi = new StringTokenizer("you#*are*##welcome","#*");

2.空格符、换行符、回车符、Tab符、进纸符为默认的分隔标记。

四、Scanner类

  • Scanner对象可以调用方法useDelimiter(正则表达式):把与正则表达式匹配的字符序列作为分隔标记。
  • 用速度换取空间

五、StringBuffer类

  1. 构造方法:StringBuffer();StringBuffer(int size); StringBuffer(String  s)。
  2. String类的对象的字符序列的字符不能被修改、删除;而StringBuffer类的对象的实体的内存空间可以自动改变大小。 

参考资料

  • Java 2 实用教程(第5版)

猜你喜欢

转载自blog.csdn.net/Lum_0813/article/details/82728307
今日推荐