/** *1.类的方法的重载 *2.匿名类对象的传递和引用 *3.可变个数的形参(格式:1/对于方法的形参: 数据类型...形参名 * 2/可变个数的形参与同名的方法之间构成重载 * 3/可变个数的形参在调用时,个数从0到很多很多 * 4/可变个数的优势,传入单个或数组 时都可以调用 * 5/一致于数组,数组怎么传递,可变形参就怎么用) */ import java.lang.*; class Car{ String name; int wheel; public Car(String name…
建议40: 匿名类的构造函数很特殊 在上一个建议中我们讲到匿名类虽然没有名字,但可以有一个初始化块来充当构造函数,那这个构造函数是否就和普通的构造函数完全一样呢?我们来看一个例子,设计一个计算器,进行加减乘除运算,代码如下: // 定义一个枚举,限定操作符 enum Ops { ADD, SUB } class Calculator { private int i, j, result; // 无参构造 public Calculator() { } // 有参构造 public Calcula…
2017/6/30 转载写明出处:http://www.cnblogs.com/daren-lin/p/anonymous-classes-and-lambda-expressions-in-java.html 本来在查看官方文档中的collection介绍,介绍到如何遍历(traverse)一个容器时提到一个方法是聚合操作(Aggregate Operations),感觉这个写法比较简洁,而且从来没接触过,于是进一步了解.而为了了解Aggregate Operations,必须复习总结一下本文…
类的继承 创建子类语法:     修饰符 class 子类名 extends 父类名{        } 匿名子类语法: 直接实例化,过程中通过匿名类 继承父类,在实例化过程中将子类匿名 <父类类名>  实例名 = new 父类名()  { 匿名类代码逻辑.... } 自定义类默认继承了Object类: 自定义类默认隐藏式继承了Object类    class Cat {    ...    }    等价于如下    class Cat extends Object{    ........…
说在前面的话,以前写过一次这个变态代码,后来重构,把那个new的语法简化了,最近又要整,差点都想不起来了,留个文档把 1.下面这个案例更变态,抽象类还有一个个泛型类:首先内部抽象类的定义: /* * * Created by stone * * */ package net.stoneapp.quanshi.qsand.application; import android.app.Application; import android.util.Log; import android.widg…
package com.chase.test; /** * 通过接口实现匿名类的实例 * * @author Chase * * @date 2013-10-18 下午04:28:17 * * @version V1.0 */ interface I1 { void print(); void eat(); } public class AnonymousClass { public static String excute(I1 c){ System.err.println("excute方法…
本文内容: 内部类 匿名类 首发日期 :2018-03-25 内部类: 在一个类中定义另一个类,这样定义的类称为内部类.[包含内部类的类可以称为内部类的外部类] 如果想要通过一个类来使用另一个类,可以定义为内部类.[比如苹果手机类,苹果手机类中的黄金版的是特别定制的] 内部类的外部类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外部类中的方法.[不论是静态还是非静态的,内部类都可以直接调用外部类中的属性,] 内部类的类体中不可以声明类变量和类方法. 内部类可以由外部类使用外部类中在函数中…
参考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() {…
Java各种称呼类详解 Java有各种各样类,内部类.嵌套类.成员类.局部类(本地类).静态类.匿名类.文件类以及这些组合起来的称呼类,成员内部类,成员匿名类,成员嵌套类,本地匿名类等,真是多的不行,但有些其实是一个意思,在这里好好理一理. 声明 1.注意,这些称呼都是翻译过来的,但是同一个英文单词或一个词组翻译过来可能有不同叫法,比如local nested class,local有局部.本地意思,其实是一个意思,local nested class翻译过来就是局部嵌套类(本地嵌套类),又因为…
根据内部类的位置不同,可将内部类分为 :成员内部类与局部内部类. class outer{ class inner{//成员内部类 } public void method() { class local_inner{ //局部内部类 } } } 1.成员内部类 (1)访问格式: 外部类名.内部类名 对象名=外部类对象.内部类对象 //注意不要用中文全角空格,否则会出错!编译不通过!class outer{ class inner{public void show()          {   …
1.外部类监听 package com.yfs.javase; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; //外部类监听 public class FrameDemo1 extends Fra…
可以将一个类的定义放在另一个类的内部定义,这样的类就被称为嵌套类,包含嵌套类的类被称为外部类(outer class),也可以叫做封闭类. 嵌套类可以分为两种: 静态嵌套类(Static Nested Classes):使用static声明,一般称为嵌套类(Nested Classes): 非静态嵌套类(Non-static Nested Classes):非static声明,一般称为内部类(Inner Classes): 嵌套类是它的外部类的成员.非静态嵌套类(内部类)可以访问外部类的其他成员…
匿名类是一种特殊的内部类,它是在一个表达式内部包含一个完整的类定义.内部类是在一个类的内部嵌套定义的类,它可以是其它类的成员也可以在一个语句块的内部定义还可以在表达式内部匿名定义匿名类与其他类的不同就在于匿名,也就是没有名称. Java中允许创建子类对象时除了使用父类的构造方法外还可以用类体匿名类就是一个没有类申明的类体,因为没有名称,所有匿名类不可以申明对象,但却可以使用类体创建对象.例如:A是一个子类,那么下面的代码就是A的一个子类(匿名类)创建对象.   new A(){    匿名类的类…
匿名类,除了只能使用一次,其实还有其他用处,比如你想使用一个类的protected方法时,但是又和这个类不在同一个包下,这个时候匿名类就派上用场了,你可以定义一个匿名类继承这个类,在这个匿名类中定义一个方法,用super调用你想调用的那个protected方法(虽说,你可以定义一个类继承这个类,但是匿名类更加简洁,因为你只是想调用这个protected方法而已). public class TestClass(){ protected void test(){ System.out.printl…
内部类 一个类内部定义的类称为内部类. 内部类允许把逻辑相关的类组织在一起,并控制内部代码的可视性. 内部类与外部类的结构层次如下. 顶层类:最外层的类 外部类:内部类所在的类 内部类:类内部定义的类 客户类:访问其他类的类 内部类的基本语法 可访问性不同. 顶层类只能处于public和默认访问级别 内部类可以是:public.protected.private和默认 package com.basicjava.innerclass; class Outer { // 如果把public改为pr…
在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中,实现回调…
Java基础(深入了解概念为主) 匿名类 定义 Java匿名类很像局部或内联系,只是没有明细.我们可以利用匿名类,同时定义并实例化一个类.只有局部类仅被使用一次时才应该这么做. 匿名类不能有显式定义的构造函数,相反,每一个匿名类都隐含定义了一个匿名构造函数 创建匿名类 理解代码的最好方法就是先阅读,所以我们首先来看看代码. 扩展已有的类(可以是抽象类,也可以是具体类) 创建接口 interface Football { void kick(); } class AnnonymousClass {…
在实际的项目中看到一个很奇怪的现象,Java可以直接new一个接口,然后在new里面粗暴的加入实现代码.就像下面这样.那么问题来了,new出来的对象没有实际的类作为载体,这不是很奇怪吗? 思考以下代码的输出是什么? Runnable x = new Runnable() { @Override public void run() { System.out.println(this.getClass()); } }; x.run(); 实际答案是出现xxxx$1这样一个类名,它是编译器给定的名称.…
在看CometD的示例代码时发现了许多有意思的代码,但说实话看别人的代码确实是件很累的事情,所以就看到这个知识点做一下记录吧.   先看一段代码: 代码1   这段代码中有一个new的操作,而且是在方法参数中进行的,这给了我一个好奇的点.此时首先想到的是C#中的匿名类,于是网上找了找资料,确实是类似的语法特性.继续看代码就发现一个问题:   ConfigurableServerChannel是一个接口,而且Initializer是ConfigurableServerChannel中的一个内部嵌套…
java中的匿名类有一个倍儿神奇的用法,见下面代码示例: package contract; public interface ISay { void sayHello(); } 上面是一个简单的接口,下面是如何使用: package jimmy; import contract.ISay; public class Program { public static void main(String[] args) { ISay say = new ISay() { public void say…
paip.java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型 作者Attilax 艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/attilax /////6.1    常量类型 idx = "book.txt".find("txt")     public static <T> T $(T t) {              return t;   …
我们知道接口一般用于定义一种规范或操作协议,然后子类实现接口的所有功能.如下面的简单代码: 定义IMessage接口 package org.lyk.entities; public interface IMessage { public abstract void print(); } 定义Message类实现IMessage接口 package org.lyk.entities; public class Message implements IMessage { @Override pub…
本文内容分转自博客:http://www.cnblogs.com/mengdd/archive/2013/02/08/2909307.html 将相关的类组织在一起,从而降低了命名空间的混乱. 一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分. Java中的内部类共分为四种: 静态内部类static inner class (also called nested class) 成员内部类member inner class 局部内部类local inner cla…
建议39: 使用匿名类的构造函数 阅读如下代码,看看是否可以编译: public class Client { public static void main(String[] args) { List l1 = new ArrayList(); List l2 = new ArrayList(){}; List l3 = new ArrayList(){{}}; System.out.println(l1.getClass() == l2.getClass()); System.out.pri…
代码(test.java): interface ie{ public void print(); } class outer{} public class test{ public class inner{} public void test(ie e){ e.print(); } public static void main(String[] args){ new test().test(new ie(){ public void print(){ System.out.println("…
package com.tn.treeSet; public class Student { private String name; private int age; public Student(){} public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(S…
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. 42.lambda表达式优于匿名类 在Java 8中,添加了函数式接口,lambda表达式和方法引用,以便更容易地创建函数对象. Stream API随着其他语言的修改一同…
   Java内部类(Inner Class),类似的概念在C++里也有,那就是嵌套类(Nested Class),乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那么显著,但是随着对它的深入了解,你会发现Java的设计者在内部类身上的确是用心良苦.学会使用内部类,是掌握Java高级编程的一部分,它可以让你更优雅地设计你的程序结构.下面从以下几个方面来介绍: 第一次见面 public interface Contents {    int value();} public inter…
package com.aa; import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; //内部类,和接口的实现 import javax.swing.*; //现在实现用鼠标点击一下,画一个圆 class Circle extends JFrame { int x, y; public Circle() { ini…
高阶函数与接口混入和java匿名类. 高阶函数中的组件(参量)函数相当于面向对象中的混入(接口)类. public abstract class Bird { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public abstract int fly();} public static void main(S…