2018-2019 20189203 移动平台开发实践第三周作业

第5、6、8、9章学习

第5章 核心类

  • 封装类
    1.封装类:
    java语言认为一切皆对象。
    8个基本数据类型野应该具备对应的对象。
    通过封装类可以把8个基本类型的值封装对象进行使用。
    从JDK1.5开始,java允许把基本类型的值直接赋值给对应的封装类对象。
    2.封装类的实例:
    int a=10;
    Integer o=new Integer(10);
    8中数据类型的封装类只有int 和char的封装类会改变,Integer 和Character
    3.封装类的作用:
    a.将字符串的值转换为基本类型。int a=new Integer(“100”);
    b.基本类型的值转换成字符串。int a=10; String c=a+“ ”;或者 String b =Integer.toString(100);

  • 装箱和拆箱
    1.装箱和拆箱 →本质是基本类型和其封装类之间能自动进行转换
    定义:装箱指的是把基本数据类型值转换成封装对象,即把栈中的数据封装成对象存放到堆中的过程。拆箱是装箱的反过程。装箱操作是数据由栈道堆,拆箱是数据由堆到栈。

Object
1.object对象类定义在java.lang包中,是所以类的顶级父类,在java体系中,所有类都直接或者间接的继承了object类,所以,任何java对象都可以调用object类中的方法,而且任何类型的对象都可以赋给object类型的变量。
2.equals()方法:判断指定的对象和传入的对象是否相等。
toString()方法:返回当前对象的字符串表示。
“和equals()两者比较,前者比较的地址是否相对,即是否同一个对象,后者比较的是值是否相等
toString()方法要输出对象的详细信息时,需要对toString()方法进行重写,否则会输出代表对象信息的表示字符串。 toString()方法没有参数,可直接返回值需要的信息内容。如,return this.name;
两个引用类型的对象的比较是否相等有两种方式:
a.“
”运算符表示的是两个对象的地址是否相同,即引用的是同一个对象。
b.equals()方法通常用于比较两个对象的内容是否相同。

public class test{
public static void main (String args){

int a=2;
int b=2;
System.out.println("ab:"+(ab)); //→输出结果是:true
System.out.println("a.quals(b):"+(a.quals(b))); // →输出结果是:true

Integer c=new Integer(2);
Integer d=new Integer(2);
System.out.println("cd:"+(cd)); // →输出结果是:false
System.out.println("a.quals(b):"+(a.quals(b))); // →输出结果是:true
}
}

  • 字符串类
    1.String类(字符串常量)→subString是截取字符串的方法。length是字符串长度的方法。int compare(String s)是比较两个字符串的大小,相等返回0,不相等返回不相等字符编码值的差。
    2.StringBuffer类(字符串可以改变,线程安全)→append(String str)在字符串末尾追加一个字符串。char charAt(int index)返回指定下标的字符。intcapacity()表示返回字符串缓冲区容量。
    3.StringBuilder类(字符串可以改变,线程不安全,因此性能比 StringBuffer 好)
    要点:StringBuffer是线程同步的,StringBuilder是异步;对不经常变化的字符串使用String即可。经常变化、正在拼装的字符串不用String。若是全局变量,可能多线程引用,使用StringBuffer;若是局部变量,单线程使用,推荐StringBuilder。 (了解同步和异步就能理解他们的线程区别)

  • Scanner类
    Scanner类是用于接收用户的键盘输入,和对字符串的格式化处理。
    写法:Scanner s=new Scanner(System.in); String s1=s.next();

  • Math和Date类
    1.用作数学运算的类是Math。 Math.random();获取一个随机数
    2.用作日期处理的类是Date。示 例:Date dateNow=new Dtae();得到当前的日期

第6章 数组

Java 中定义数组的语法有两种:
type arrayName[];
type[] arrayName;
type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量。例如:

  1. int demoArray[];
  2. int[] demoArray;
    这两种形式没有区别,使用效果完全一样,读者可根据自己的编程习惯选择。

与C、C++不同,Java在定义数组时并不为数组元素分配内存,因此[ ]中无需指定数组元素的个数,即数组长度。而且对于如上定义的一个数组是不能访问它的任何元素的,我们必须要为它分配内存空间,这时要用到运算符new,其格式如下:
arrayName=new type[arraySize];
其中,arraySize 为数组的长度,type 为数组的类型。如:

  1. demoArray=new int[3];
    为一个整型数组分配3个int 型整数所占据的内存空间。

通常,你可以在定义的同时分配空间,语法为:
type arrayName[] = new type[arraySize];

  • 数组的初始化
    你可以在声明数组的同时进行初始化(静态初始化),也可以在声明以后进行初始化(动态初始化)。
    数组引用
    可以通过下标来引用数组:
    arrayName[index];
    与C、C++不同,Java对数组元素要进行越界检查以保证安全性。

每个数组都有一个length属性来指明它的长度,例如 intArray.length 指明数组 intArray 的长度。

  • 数组的遍历
    实际开发中,经常需要遍历数组以获取数组中的每一个元素。最容易想到的方法是for循环,例如:
  1. int arrayDemo[] = {1, 2, 4, 7, 9, 192, 100};
  2. for(int i=0,len=arrayDemo.length; i<len; i++){
  3. System.out.println(arrayDemo[i] + ", ");
  4. }
    输出结果:
    1, 2, 4, 7, 9, 192, 100,

不过,Java提供了”增强版“的for循环,专门用来遍历数组,语法为:

  1. for( arrayType varName: arrayName ){
  2. // Some Code
  3. }
    arrayType 为数组类型(也是数组元素的类型);varName 是用来保存当前元素的变量,每次循环它的值都会改变;arrayName 为数组名称。

每循环一次,就会获取数组中下一个元素的值,保存到 varName 变量,直到数组结束。即,第一次循环 varName 的值为第0个元素,第二次循环为第1个元素......例如:

  1. int arrayDemo[] = {1, 2, 4, 7, 9, 192, 100};
  2. for(int x: arrayDemo){
  3. System.out.println(x + ", ");
  4. }
    输出结果与上面相同。

这种增强版的for循环也被称为”foreach循环“,它是普通for循环语句的特殊简化版。所有的foreach循环都可以被改写成for循环。

但是,如果你希望使用数组的索引,那么增强版的 for 循环无法做到。

  • 二维数组
    二维数组的声明、初始化和引用与一维数组相似:
  1. int intArray[ ][ ] = { {1,2}, {2,3}, {4,5} };
  2. int a[ ][ ] = new int[2][3];
  3. a[0][0] = 12;
  4. a[0][1] = 34;
  5. // ......
  6. a[1][2] = 93;
    Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。例如:
  7. int intArray[ ][ ] = { {1,2}, {2,3}, {3,4,5} };
  8. int a[ ][ ] = new int[2][ ];
  9. a[0] = new int[3];
  10. a[1] = new int[5];

第8章 错误处理

  • 捕获异常
    使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方。
    try/catch代码块中的代码称为保护代码,使用 try/catch 的语法如下:
    try
    {
    // 程序代码
    }catch(ExceptionName e1)
    {
    //Catch 块
    }
    Catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try 后面的 catch 块就会被检查。
    如果发生的异常包含在 catch 块中,异常会被传递到该 catch 块,这和传递一个参数到方法是一样。
    throws/throw 关键字:
    如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。
    也可以使用 throw 关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。
    finally关键字
    finally 关键字用来创建在 try 代码块后面执行的代码块。
    无论是否发生异常,finally 代码块中的代码总会被执行。
    在 finally 代码块中,可以运行清理类型等收尾善后性质的语句。
    finally 代码块出现在 catch 代码块最后,语法如下:
    try{ // 程序代码 }catch(异常类型1 异常的变量名1){ // 程序代码 }catch(异常类型2 异常的变量名2){ // 程序代码 }finally{ // 程序代码 }

第9章 操作数字

将基本类型转换为一个包装类对象,这叫做装箱;而从一个包装类对象转换为基本类型,叫做拆箱。
数字解析的目的是将一个字符串转换为一个数字基本类型。如果解析失败,例如,由于字符串不是一个数字或者一个超出了指定范围的数字,程序会抛出一个异常。
数字格式化使得数字更有可读性。

原文地址:https://www.cnblogs.com/23du/p/10545939.html