学习目标:

                >.  可变个数的形参方法

                >.  Java的值传递机制

                >.  面向对象的特征一:封装性

                >.  构造器


              ##. 可变个数的形参方法:

                        1.格式:对于方法的形参,数据类型...形参名

                        2.可变个数的形参的方法与同名方法之间构成重载

                        3.可变个数的形参在调用时。个数从0开始,到无穷多个都可以。

                        4.使用可变多个形参的方法与方法的形参使用数组是一致的。

                        5.若方法中存在可变个数的形参,那么一定要声明在方法形参的最后

                        6. 在一个方法中,最多声明一个可变个数的形参 

                        例子:

                            public void sayHello(String[] args){

                                for( int i=0 ; i < args.length ; i++ ){

                                     System.out.println( args[i] + "$" );

                                 }

                             }

                             //方法调用时,必须使用数组声明参数,也只能使用数组声明参数

                              TestArgs t = new  TestArgs( );

                               t.sayHello( new String[ ]{ "hello China", "hello Beijing" });

                            //使用可变形参列表时,不止可以使用数组声明参数,空参调用也可以,来看代码

                                t.sayHello( )

                                t.sayHello( new String[ ]{ "hello China", "hello Beijing" });

                                t.sayHello( "hello China", "hello Beijing" );

                                public void sayHello( String ... args ){

                                     for( int i=0; i< args.length; i++ ){

                                           System.out.println( args[i] + "$" );

                                      }

                                 }

                                 

                                public void sayHello( int i ,String ... args ){

                                     System.out.pintln( i );

                                     for( int i=0 ; i< args.length ;  i++ ){

                                           System.out.println( args[i] + "$" );

                                      }

                                 }

                          ##. java的值传递机制(基础,必须掌握)

                                >. 基本数据类型的

                                >. 引用数据类型的

                          ##. 面向对象的特征一: 封装与隐藏

                                问题:当创建了类的对象以后,如果直接通过"对象.属性"的方式对相应的对象属性赋值的话,

                                          可能会出现不满足实际情况的意外,考虑不让对象来直接作用属性,

                                          而是通过“对象.方法”的形式,来控制对象对属性的访问。

                                          实际情况中,对属性的要求就可以通过方法来体现。

                                解决的方法: (封装性的思想) ①.将类的属性私有化,②.提供公共的方法(setter & getter)来实现调用。

                                例子:

                                            private int  legs;     

                                            /*这是定义动物类里面的动物腿的条数声明,不能把腿数声明为负数或者奇数,

                                               也就是不能让其他人调用"对象.属性"的方式随意修改,可以提供set和get方法

                                                进行判断设置以后,才可以公开的通过“对象.方法”的方式调用这个被私有化的属性。*/

                                            //设置类的属性

                                             public void  setLegs(int l){

                                                  if( l > 0 && l%2 == 0){

                                                      legs = l;

                                                   }else{

                                                        System.out.println("输入的数据错误...")

                                                    }

                                              }                               

                                            //获取类的属性

                                            public int getLegs(){

                                                return legs;

                                             }

                          ##.类的构造器:

                                构造器的作用:①. 创建对象  ②. 给创建对象的属性赋值

                                >. 设计类时,若不显示声明类的构造器的话,程序会默认提供一个空参构造器

                                >.  一旦显示的定义类的构造器, 那么默认的构造器就不再提供。

                                >.  如何声明类的构造器。格式: 权限修饰符 类名(形参){ }

                                >.  类的多个构造器之间构成重载