首页 > 代码库 > 面向对象基础(四)

面向对象基础(四)

1. 函数的重载

2. 构造函数的作用

 

1. 函数的重载

    Chongzai.java

    class Chongzai{
      void funA(){
          System.out.println("没有参数的funA函数");
      }
      void funA(int i){
          System.out.println("拥有整形参数的funA函数");
      }
  }

    Test.java

    public class Test{
      public static void main(String args []){
          Chongzai a = new Chongzai();
          a.funA();
          a.funA(10);
      }    
   }

      

       跟现实世界对应起来, funA可理解为"洗", 洗衣服、洗澡、洗脚都可以

       重载的定义:

      <1>两个或者多个函数在同一个类当中

      <2>函数名相同

      <3>参数列表不同

 

2. 构造函数的作用

     <1>生成对象

            Chongzai.java

             class Chongzai{

                    Chongzai(){     //编译器会自动生成

                    }                      //这就是构造函数, 名字和类名一样
            }

              加入我们在构造函数中添加一句成为下面这样

             Chongzai.java

             class Chongzai{

 

                    Chongzai(){  

                              Syetem.out.println("我就是构造函数");

 

                    }                    
            }

 

             Test.java

       public class Test{
                   public static void main(String args []){
                            Chongzai a = new Chongzai();
                     }    
            }

            这样就会打印出上面那句话.               

   <2>   给成员变量赋初始值

            Person.java

            public class Person{
                      Person(){                         //此时不能省略不写, 相当于低保, 下面有钱则不发钱,没有才帮你补贴
                      }
    
                      Person(String n, int a){     //与上面构成重载
                              name = n ;
                               age = a ;
                      }
                      String name;
                      int age;
             }

             Test.java

             public class Test{

                      public static void main(String args []){

                               Person person1 =  new Person("zhangsan",10);

                               Person person2 =  new Person("lisi",20);

                       }

             }