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]+"\t");
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    

原文地址:https://www.cnblogs.com/zhazhaacmer/p/9762160.html

时间: 2024-08-02 12:19:30

Java 类的重载/匿名类的使用/可变形参的相关文章

0607-抽象类、抽象方法、接口、类的重载、类的自加载、对象的克隆

1.抽象类.抽象方法(abstract) 正常定义类(方法)的前面,加上关键字:abstract,就构成抽象类(方法). 抽象类:抽象类就是用来做父类的,可以用来规范一些类的共同特性,不能被实例化,子类继承了它的特性,这就是"规范作用" 抽象方法:抽象方法是一个没有方法体(也不含大括号)的方法定义"头"而已.例如:abstract  function  f1($x1, $y, $m); 抽象类抽象方法细节关系描述: 1.抽象方法只能存在于抽象类. 2.但,一个抽象类

Java笔记十八.内部类和匿名类

内部类和匿名类 转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.内部类 1.定义 在一个类内部定义类,即为嵌套类(内部类).有如下几点特点:(1)嵌套类可以直接访问嵌套它的类的成员(变量和方法),包括private成员.但是,嵌套类的成员却不能被嵌套它的类直接访问.(2)内部类使得程序代码更为紧凑,程序更具模块化. 2.内部类实现方法 (1)类中定义和使用一个内部类 在类中直接定义的嵌套类的使用范围,仅限于这个类的内部.内部类的定义和普通

Java之匿名类讲解

参考https://blog.csdn.net/jiaotuwoaini/article/details/51542059 匿名类,正如名字一样在java中没有名字标识的类,当然了编译后还是会安排一个名字的. 下面是一个关于匿名类的简单例子: public class Client { public static void main(String[] args) throws InterruptedException { Thread t=new Thread(new Runnable() {

匿名类和final外部变量的实现

我们知道,在java中有大量的匿名类使用,而且在匿名类的函数中,我们还可以使用在外部声明的final变量,例如下面的android代码: public class ArrowPopupWindowDemo extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.arrow_po

匿名类和匿名对象

https://blog.csdn.net/qq_39728125/article/details/77119736 匿名类和匿名对象 2017年08月12日 16:19:40 qq_39728125 阅读数:628更多 个人分类: java基础 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_39728125/article/details/77119736 匿名类和匿名对象 在Java中有匿名类和匿名对象的概念,有名字可知他们是因为没有

匿名类使用方法

匿名类的使用将一个类定义在另一个类的里面,对里面那个类就称为匿名类的调用.匿名类的访问特点: 1,匿名类可以直接访问外部类的成员. 2,外部类要访问内部类,必须建立在匿名类的对象.什么时候用? 一般用于类的设计,分析事物时,发现该事物还有事物,并且这个事物还在访问被描述的事物的内容.这时就把还有的事物定义为内部类来描述.内部类也相当与封装.匿名类的修饰符:直接访问外部类中的匿名类的成员: outer.inner in=new outer().new inner();如果匿名类是静态的(内部类成员

关于j使用ava匿名类的好处总结

匿名类,除了只能使用一次,其实还有其他用处,比如你想使用一个类的protected方法时,但是又和这个类不在同一个包下,这个时候匿名类就派上用场了,你可以定义一个匿名类继承这个类,在这个匿名类中定义一个方法,用super调用你想调用的那个protected方法(虽说,你可以定义一个类继承这个类,但是匿名类更加简洁,因为你只是想调用这个protected方法而已). public class TestClass(){ protected void test(){ System.out.printl

Java重载之带有可变形参的方法

如果重载的方法中带有可变形参的方法时,需要注意 public class OverloadVarargsTest { public void test(String msg) { System.out.println("只有一个字符串参数的test方法"); } //带可变形参的重载方法 public void test(String... books) { System.out.println("****形参可变test方法********"); } public

Java通过匿名类来实现回调函数

在C语言中,函数名可以当做函数指针传递给形参从而实现回调 void f1() { printf("f1()\n"); } void f2() { printf("f2()\n"); } void f3() { printf("f3()\n"); } void do_func(void(*f)()) { f(); } int main() { do_func(f1); do_func(f2); do_func(f3); } 在C++11中,实现回调