• Java 类的重载/匿名类的使用/可变形参


     1 /**
     2  *1.类的方法的重载
     3  *2.匿名类对象的传递和引用
     4  *3.可变个数的形参(格式:1/对于方法的形参: 数据类型...形参名
     5  *                      2/可变个数的形参与同名的方法之间构成重载
     6  *                      3/可变个数的形参在调用时,个数从0到很多很多
     7  *                      4/可变个数的优势,传入单个或数组 时都可以调用
     8  *                      5/一致于数组,数组怎么传递,可变形参就怎么用)
     9  */
    10 import java.lang.*;
    11 class Car{
    12     String name;
    13     int wheel;
    14     public Car(String name,int w){   //构造类
    15         this.name = name;
    16         this.wheel=w;
    17     }
    18     public Car( ){   //重载构造类
    19         this.name = "####";
    20         this.wheel= 0;
    21     }
    22     public void describeCar(){
    23         System.out.println("{name:"+this.name+" wheelnum:"+this.wheel+"}");
    24     }
    25 }
    26 class Factory{
    27     //制造车
    28     public Factory(){
    29     }
    30     public Car produceCar(String name,int wnum){
    31         Car c=new Car();
    32         c.name=name;
    33         c.wheel=wnum;
    34         return c;
    35     }
    36     public void Tested(Car c){
    37         if(c.name=="####")
    38             System.out.println(c.name+"Test: 发现故障!未初始化!");
    39         else
    40             System.out.println(c.name+" is Ok!");
    41     }
    42 }
    43 
    44 class SayMore{
    45     public SayMore(){
    46     }
    47     public void say(int ...args){
    48         for(int i=0;i<args.length;i++)
    49             System.out.print(args[i]+"	");
    50         System.out.println();
    51     }
    52 }
    53 public class Test1 {
    54     public static void main(String args[]){
    55         Factory f=new Factory();
    56         Car c1 = f.produceCar("葱油酱饼",4);
    57         c1.describeCar();
    58         System.out.println("使用匿名类:  ");
    59         new Car().describeCar();
    60 
    61         f.Tested(new Car());  //检测匿名(空构造的数据)类
    62         f.Tested(c1);         //检测实例化有数据的类
    63         System.out.println(" // ///////////////////////////////////////////");
    64 
    65         SayMore s=new SayMore();
    66         s.say(666);   //可变个数的形参,传递单个/多个
    67         s.say(1,2,3);
    68 
    69         int arr[]={1,2,3,4555};
    70         s.say(arr);
    71     }
    72 }

    运行结果:

    {name:葱油酱饼 wheelnum:4}
    使用匿名类:  
    {name:#### wheelnum:0}
    ####Test: 发现故障!未初始化!
    葱油酱饼 is Ok!
     // ///////////////////////////////////////////
    666    
    1    2    3    
    1    2    3    4555    
  • 相关阅读:
    [EffectiveC++]item22:Declare data members private
    垃圾人定律
    [EffectiveC++]item17:以独立语句将newed对象置入智能指针
    [EffectiveC++]item15:Provide access to raw resources in resource-managing class
    C++ 中operator用法:隐式类型转换
    [EffectiveC++]item13:Use objects to manage resources(RAII)
    为什么拷贝构造函数的参数必须是引用?
    SPF邮件服务器
    raspberry
    bash
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/9762160.html
Copyright © 2020-2023  润新知