/**
*1.类的方法的重载
*2.匿名类对象的传递和引用
*3.可变个数的形参(格式:1/对于方法的形参: 数据类型...形参名
* 2/可变个数的形参与同名的方法之间构成重载
* 3/可变个数的形参在调用时,个数从0到很多很多
* 4/可变个数的优势,传入单个或数组 时都可以调用
* 5/一致于数组,数组怎么传递,可变形参就怎么用)
*/
import java.lang.*;
class Car{
String name;
int wheel;
public Car(String name,int w){ //构造类
this.name = name;
this.wheel=w;
}
public Car( ){ //重载构造类
this.name = "####";
this.wheel= 0;
}
public void describeCar(){
System.out.println("{name:"+this.name+" wheelnum:"+this.wheel+"}");
}
}
class Factory{
//制造车
public Factory(){
}
public Car produceCar(String name,int wnum){
Car c=new Car();
c.name=name;
c.wheel=wnum;
return c;
}
public void Tested(Car c){
if(c.name=="####")
System.out.println(c.name+"Test: 发现故障!未初始化!");
else
System.out.println(c.name+" is Ok!");
}
} class SayMore{
public SayMore(){
}
public void say(int ...args){
for(int i=0;i<args.length;i++)
System.out.print(args[i]+"\t");
System.out.println();
}
}
public class Test1 {
public static void main(String args[]){
Factory f=new Factory();
Car c1 = f.produceCar("葱油酱饼",4);
c1.describeCar();
System.out.println("使用匿名类: ");
new Car().describeCar(); f.Tested(new Car()); //检测匿名(空构造的数据)类
f.Tested(c1); //检测实例化有数据的类
System.out.println(" // ///////////////////////////////////////////"); SayMore s=new SayMore();
s.say(666); //可变个数的形参,传递单个/多个
s.say(1,2,3); int arr[]={1,2,3,4555};
s.say(arr);
}
}

运行结果:

{name:葱油酱饼 wheelnum:4}
使用匿名类:
{name:#### wheelnum:0}
####Test: 发现故障!未初始化!
葱油酱饼 is Ok!
// ///////////////////////////////////////////
666
1 2 3
1 2 3 4555

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

  1. [改善Java代码]建议40:匿名类的构造函数很特殊

    建议40: 匿名类的构造函数很特殊 在上一个建议中我们讲到匿名类虽然没有名字,但可以有一个初始化块来充当构造函数,那这个构造函数是否就和普通的构造函数完全一样呢?我们来看一个例子,设计一个计算器,进行 ...

  2. java语言中的匿名类与lambda表达式介绍与总结 (Anonymous Classes and Lambda Expressions)

    2017/6/30 转载写明出处:http://www.cnblogs.com/daren-lin/p/anonymous-classes-and-lambda-expressions-in-java ...

  3. java面向对象类的继承~ 匿名类 ;多态特性;强制类型转换

    类的继承 创建子类语法:     修饰符 class 子类名 extends 父类名{        } 匿名子类语法: 直接实例化,过程中通过匿名类 继承父类,在实例化过程中将子类匿名 <父类 ...

  4. Java内部抽象类的匿名类初始化

    说在前面的话,以前写过一次这个变态代码,后来重构,把那个new的语法简化了,最近又要整,差点都想不起来了,留个文档把 1.下面这个案例更变态,抽象类还有一个个泛型类:首先内部抽象类的定义: /* * ...

  5. Java通过接口实现匿名类的实例

    package com.chase.test; /** * 通过接口实现匿名类的实例 * * @author Chase * * @date 2013-10-18 下午04:28:17 * * @ve ...

  6. Java:匿名类,匿名内部类

    本文内容: 内部类 匿名类 首发日期 :2018-03-25 内部类: 在一个类中定义另一个类,这样定义的类称为内部类.[包含内部类的类可以称为内部类的外部类] 如果想要通过一个类来使用另一个类,可以 ...

  7. Java之匿名类讲解

    参考https://blog.csdn.net/jiaotuwoaini/article/details/51542059 匿名类,正如名字一样在java中没有名字标识的类,当然了编译后还是会安排一个 ...

  8. Java 内部类、成员类、局部类、匿名类等

    Java各种称呼类详解 Java有各种各样类,内部类.嵌套类.成员类.局部类(本地类).静态类.匿名类.文件类以及这些组合起来的称呼类,成员内部类,成员匿名类,成员嵌套类,本地匿名类等,真是多的不行, ...

  9. Java 内部类,成员类,局部类,匿名类等

    根据内部类的位置不同,可将内部类分为 :成员内部类与局部内部类. class outer{ class inner{//成员内部类 } public void method() { class loc ...

随机推荐

  1. linux基础之文件类型与权限

    在终端以root身份登入linux之后,下达 ls -al 会获得如下结果

  2. Node async 控制代码执行顺序

    当你有一个集合,你想循环集合,然后对每个集合按照顺序执行相应的方法你可以使用forEachSeries

  3. js 获取xxxx-xx-xx时间格式

    function getdate() { var now = new Date(), y = now.getFullYear(), m = now.getMonth() + 1, d = now.ge ...

  4. javascript let

    es6支持通过let关键字声明属于单独块{}的变量,更好的管理变量作用屿 funtion foo() { var a=1; if (a>1) { let b=2; //只属于if模块 while ...

  5. 《MIT 6.828 Lab 1 Exercise 8》实验报告

    本实验的网站链接:MIT 6.828 Lab 1 Exercise 8. 题目 Exercise 8. Read through kern/printf.c, lib/printfmt.c, and ...

  6. 【AtCoder】AGC002

    AGC002 A - Range Product #include <bits/stdc++.h> #define fi first #define se second #define p ...

  7. python以不同方式打印输出九九乘法表

    参考:http://www.cnblogs.com/suiy-160428/p/5594389.htmlpython输出 9*9 乘法口诀表 矩形输出九九乘法表: for i in range(1,1 ...

  8. Go语言注意事项

    必须恰当导入需要的包,缺少了必要的包或者导入了不需要的包,程序都无法编译通过.这项严格要求避免了程序开发过程中引入未使用的包(译注:Go语言编译过程没有警告信息,争议特性之一 import 声明必须跟 ...

  9. VS2017生成一个简单的DLL文件 和 LIB文件——C语言

    下面我们将用两种不同的姿势来用VS2017生成dll文件(动态库文件)和lib文件(静态库文件),这里以C语言为例,用最简单的例子,来让读者了解如何生成dll文件(动态库文件) 生成动态库文件 姿势一 ...

  10. 后端排序,debug模式中map的顺序出错

    js中map遍历的顺序是按照插入的顺序来执行的.如果map的来源是字符串转换的,那么就会按照字符串中key值的顺序进行遍历.千万不要被debug中显示的顺序误导,这里应该是为了方便查看对key进行了字 ...