变量

来源:互联网 发布:网络黑白 花无涯 pdf 编辑:程序博客网 时间:2024/06/10 08:26

4.2方法

*递归方法一般由两部分组成:1、递归体:递归的方式;2、递归出口:递归终止的条件。

*Java语言允许在一个类中定义几个同名的方法,但要求这些方法具有不同的参数特征,这种做法称为方法的重载

(overloaded)。

1、参数个数/2、参数类型/3、参数次序

注意:返回值类型不是重载的依据。

*重载方法的调用:当类中有多个重载的方法,调用该类的某个重载方法时,Java能够根据实参表的不同区分实际调

用的是哪一个方法。

Eg. 重载方法中有一个可变长度的形参。

     Public void test(Stringmsg);

     Public void test(String… books);

     则

      olv.test();//调用test(String,,, books);

      olv.test(“aa”,”bb”);//调用test(String…books);

      olv.test(“aa”);//调用test(String msg);

如只传入一个参数,有需要调用参数长度可变的方法,则可采用如下调用形势:olv.test(new String[]{“aa”});

4.3变量

*变量的分类

变量:成员变量和局部变量

成员变量:实例变量(不用static修饰);类变量(使用static修饰)。

局部变量:形参;方法内定义的局部变量;代码块中定义的局部变量。

注意变量名的命名规则:从语法角度看,是一个可发的标识符;从程序可读性角度看,是多个有意义的单词组合而成,其中第一个单词首字母小写,后面每个单词首字母大写。

*成员变量:在类范围里定义的变量。

1、类变量:定义时使用static修饰的成员变量

(1)它从这个类的准备阶段起开始存在,直到系统完全销毁这个类时消亡---与类共存亡。

(2)访问类变量:类名.类变量名

2、实例变量:定义时不使用static修饰的成员变量

(1)它从这个类的实例被创建开始起存亡,直到系统完全销毁这个实例---与实例共存亡。

(2)访问实例变量:实例名.实例变量名。

注意:虽然也可以通过实例名访问类变量,但是这个实例访问的并不是这个实例的变量,依然访问的是对应类的变

量。

*局部变量

1、形参:在定义方法首部时定义的变量,在整个方法内有效,方法结束时消失。

2、方法局部变量:在方法体内定义的局部变量,从定义该变量的地方生效,到该方法结束时失效。

3、代码块局变量:在代码块中定义的局部变量,只在该代码块内有效。

注意:(1)局部变量除形参外,都必须显示初始化。

           (2)允许局部变量和成员变量名同名,可使用this或类名作为访问者来限定访问成员变量。

4.4隐藏和封装

*封装:(Encapsulation)是面向对象三大特征之一(封装、继承、多态),它指的是将对象的状态信息隐藏在内

部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。

对一个类或对象实现良好的封装,可以实现以下目的:

(1)      隐藏类的实现细节。

(2)      让使用者只能通过事先预定的方法访问数据,从而可以在该方法里加入控制逻辑,限制对属性不合理访问。

(3)      可进行数据检查,从而有利于保证对象信息的完整性。

(4)      便于修改,提高代码的可维护性。


  Eg.定义Person类,实现良好的封装。

     Publicclass Person

      {

         Private String name;

         Private int age;

         public void setName(String name)

         {   

               If(name length()>6||namelength()<2)

                          {System.out.println(“您设置的人名不符合要求”);}

               Else

                         {this.name=name;}

         }

        Public String getName()

               {return this.name;}

       Public void setAge(int age)

       {

             If(age>100||age<0)

                       {System.out.println(“您设置的年龄不合法”);}

            else

                      {this.age=age;}

    }

            public int getAge()

                    {return this.age;}

   }

原创粉丝点击