Java讨论班第二讲

一、String类

    1、简介:String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。java把String类声明为final类时,不能有类。String类对象创建后不能修改,由0或多个字符组成,包含在一对双引号之间。

    2、String类对象的创建

            1)创建空字符串的String对象                                             

                                 

            2)使用构造方法创建并初始化String对象

                                

            3)使用已知字符串Str1创建String对象

                            

            4)用字符数组value创建一个String对象

                             

            5)将数组中某些元素创建String对象    

                          

      3、String类常用方法

            1)求字符串长度

                        

             2)求字符串某一位置字符

                         

              3)提取子串

                        

               4)字符串比较

                         Java讨论班第二讲_第1张图片

                5)查找单个字符

                         

                 6)大小写替换

                         

                  7)截去字符串两端的空格,但不处理中间的空格

                        

         4、字符串与基本类型的转换

                  1)字符串转换为基本类型  ParseInt,ParseDouble.......

                  2)  基本类型转换为字符串类型 ValueOf

二、数组

        1、什么是数组

               1) 我们先看一个例子:

                            当我们需要编写代码保存4名学生的考试成绩,我们是可以定义四个变量分别保存他们的成绩

                           如果需要编写代码保存400个学生的考试成绩呢?当然最好的办法就不是创建400个变量了,而是创建一个保   存成绩的数组。

                2)理解:数组可以理解为一个巨大的盒子,里面可以按顺序存放多个类型相同的数据,形成变量集合

                                数组中的元素可以通过下标来访问,下标从0开始。

                                Java讨论班第二讲_第2张图片

        2、数组的使用

                            a.声明:数据类型[] 数组名;  或  数据类型 数组名[];  存储学生成绩的数组,类型为整型

                            b.数组的空间分配:数组名 = new 数据类型[数组大小]; 长度为5的整数数组

                            c.声明分配一起来: 数据类型[] 数组名  = new 数据类型[数组大小];

                            d.赋值:分配空间后就可以向数组中存放数据了,数组中元素都是通过下标来访问的 

                            e.处理:我们可以对赋值后的数组进行操作处理  

                            f.另一种直接创建数组的方式    

        3、数组常用方法

                             1)排序 :Arrays.sort(数组名)      需要import java.util.Arrays;

                              2)将数组转换为字符串 :Arrays.toString(数组名)    

         4、遍历数组

                                1)for循环

                                2)foreach循环

         5、二维数组

                              1)二维数组的访问输出同一维数组一样,只是多了个下标

                              2)原理:

                                            例如创建一个二维数组

                                   Java讨论班第二讲_第3张图片

                      也说明了在定义二维数组的时候可以只指定行的个数,然后再为每一刚分别指定列的个数,创建不规则的二维数组

三、对象

        1、用引用操纵对象

                在Java中,一切都被视为对象,操纵的标识符实际上就是对象的一个引用。

                身边有很多得例子,车,狗,人等等,都有自己的状态和行为。拿一条狗来举例子,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴、跑等等。

                   Java讨论班第二讲_第4张图片  Java讨论班第二讲_第5张图片   

                  Java讨论班第二讲_第6张图片引用也只是一个变量值(杯子),一样有东西放进去只不过放进去的是"遥控器"。

                例子:Java讨论班第二讲_第7张图片

        2、对象创建原理

               Java讨论班第二讲_第8张图片

          3、特例:基本类型

                            Java讨论班第二讲_第9张图片

          4、作用域

                       1)作用域是由花括号的位置决定的

                        2)对象的作用域:new 创建一个对象时,对象可以存活在作用域之外

                                        String引用s在作用域终点消失,s指向的String对象依然继续占据内存空间

                                         

                        3)必要结论

                                    a.在Java中,由new创建的对象,只要你需要,就会一直保留下去。

                                    b.它有一个垃圾回收站,用来见识new创建的对象,并辨别出那些不会再被引用的对象,随后释放这些对象的内存空间,给其他的对象使用。

四、类

              1、类是什么?

                           当用户编写自己的Java程序时,主要工作就是编写类。

                            当程序运行时,已声明的类用来创建新对象。由类创建对象的过程称为实例化。每一个对象都是类的新实例。

                            类是一种抽象数据类型,可以说类是对象的抽象,而对象是对象的实例。

              2、创建类

                            我们用关键字class来定义一个新类型

                                        class TypeName{

                                        }

                            即使我们并没有做任何事情,也没有任何行为,但是我们可以用new TypeName()来创建它的对象。

                                        例如:

              3、字段和方法

                            类定义以后,可以在类中设置两种类型元素:字段(属性、数据成员)和方法(行为、成员函数)。

                            1)类中字段变量分为三种:

                                    a.局部变量:在方法、构造函数或者语句块中定义的变量,变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

                                      b.成员变量:成员变量定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化,它可以被类中方法、构造方法和特定类的语句块访问。

                                       c.类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。

                                            静态变量:static类型的变量又是静态变量。静态变量和实例变量是不同的。

                                            静态变量在装载类的时候被分配内存并初始化,因为类只能被装载一次,所以静态变量在内存中也只有一个拷贝。    也就是说它不属于某个实例变量,而是属于类,只要程序加载了类的字节码,不用创建任何实例对象就会被分配空间可以被使用。

                                             实例变量是在创建实例时被分配内存并初始化,所以每个实例都有各自的实例变量。也就是说它必须得创建对象后才可以通过这个对象来使用。

                                              同一个类的实例之间共享静态变量。

                            2)成员方法

                                       a.构造方法

                                             每一个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器会为该类提供一个默认构造方法。

                                              在创建一个对象的时候,至少要调用一个构造方法。一个类可以有多个方法,但必须满足条件:

                                              

                                              默认构造方法:没有参数的构造方法

                                              重载构造方法:有参数的构造方法

                                        b.方法重载

                                                如果有两个方法的方法名相同,但参数不一致,那么就可以说一个方法是另一个方法的重载方法。

                                                    重载必须满足的条件:

                                        c.静态方法与实例方法

                                                    成员方法分为类方法(静态方法)和实例方法。用static修饰的是类方法/静态方法。

                                                    静态方法也和静态变量一样,不需创建类的实例,可以直接通过类名访问。

                                                    静态方法是针对类而不是某个对象实例的调用,所以,静态方法中不允许直接访问实例变量和实例方法。

                                                    访问静态变量:可以通过 类名.静态变量 / 类对象.静态变量 访问

                                                    访问静态方法:可以通过 类名.静态方法 / 类对象.静态方法 访问

                                                    访问实例变量/实例方法:只能通过 类对象.实例变量/实例方法 访问

五、包装类

              1、简介

                            Java语言是一个面向对象的语言,但是Java的基本数据类型却不是面向对象的,在实际使用时存在很多不便,为了解决这个问题,Java为每个基本数据类型设计了一个对应的类去代表它们,这八个和基本数据类型对应的类统称为包装类。

                        Java讨论班第二讲_第10张图片

            2、创建包装类对象

                   

            3、包装类常用方法

                Java讨论班第二讲_第11张图片

            4、自动装箱与拆箱机制

                    装箱:将基本类型转换成包装类型,分为自动装箱和手动装箱

                             

                    拆箱:将包装类型装换成基本类型,分为自动拆箱和手动拆箱

                             

           5、基本类型与其他类型之间的转换

                              

           6、基本类型与字符串类型的转换

                             1)基本类型-->字符串类型

                                        a.String的valueOf()方法

                                        b.空字符串 + 一个基本类型变量

                                        c.包装类的toString()方法

                                       

                             2)字符串类型 --> 基本类型

                                        a.包装类的valueOf()方法

                                        b.包装类的parse...()静态方法

                                        


                                        

                                         

                                                    

                            

                                            

                

                


                           

                

你可能感兴趣的:(java)